Was ist die Authentifizierung?
Warnung
Dieser Inhalt gilt für den älteren v1.0-Endpunkt von Azure AD. Verwenden Sie Microsoft Identity Platform für neue Projekte.
Authentifizierung ist der Vorgang, eine Partei um legitime Zugangsdaten aufzufordern und die Grundlage für die Erstellung eines Sicherheitsobjekts für die Identitäts- und Zugriffssteuerung bereitzustellen. Einfach ausgedrückt, ist es der Prozess, zu beweisen, dass Sie die Person sind, für die Sie sich ausgeben. Authentifizierung wird manchmal verkürzt als AuthN bezeichnet.
Autorisierung ist der Prozess, einem authentifizierten Sicherheitsprinzipal die Berechtigung zu erteilen, bestimmte Handlungen auszuführen. Es gibt an, auf welche Daten Sie zugreifen dürfen und was Sie damit tun können. Autorisierung wird manchmal verkürzt als AuthZ bezeichnet.
Azure Active Directory für Entwickler (v1.0) (Azure AD) vereinfacht die Authentifizierung für Anwendungsentwickler, indem identitätsbasierte Dienste bereitgestellt werden, wobei Branchenstandardprotokolle wie OAuth 2.0 und OpenID Connect sowie Open Source-Bibliotheken für verschiedene Plattformen unterstützt werden, damit Sie schnell mit dem Codieren beginnen können.
Es gibt zwei primäre Anwendungsfälle im Azure AD-Programmiermodell:
- Während eines OAuth 2.0-Autorisierungserteilungsflusses – wenn der Ressourcenbesitzer die Autorisierung für die Clientanwendung gewährt, sodass der Client auf die Ressourcen des Ressourcenbesitzers zugreifen kann.
- Während des Ressourcenzugriffs durch den Client, wie es vom Ressourcenserver implementiert wird, werden die im Zugriffstoken vorhandenen Anspruchswerte verwendet, um Entscheidungen zur Zugriffskontrolle zu treffen.
Authentifizierungsgrundlagen in Azure AD
Berücksichtigen Sie das einfachste Szenario, in dem Identität erforderlich ist: Ein Benutzer in einem Webbrowser muss sich bei einer Webanwendung authentifizieren. Das folgende Diagramm zeigt dieses Szenario:
Hier erfahren Sie, was Sie über die verschiedenen Komponenten im Diagramm wissen müssen:
- Azure AD ist der Identitätsanbieter. Der Identitätsanbieter ist für die Überprüfung der Identität von Benutzern und Anwendungen verantwortlich, die im Verzeichnis einer Organisation vorhanden sind, und gibt Sicherheitstoken bei erfolgreicher Authentifizierung dieser Benutzer und Anwendungen aus.
- Eine Anwendung, die die Authentifizierung an Azure AD auslagern möchte, muss in Azure Active Directory (Azure AD) registriert sein. Azure AD registriert und identifiziert die App im Verzeichnis eindeutig.
- Entwickler können die Open-Source-Azure AD-Authentifizierungsbibliotheken verwenden, um die Authentifizierung zu vereinfachen, indem Sie die Protokolldetails für Sie behandeln. Weitere Informationen finden Sie unter Microsoft Identity Platform v2.0-Authentifizierungsbibliotheken und v1.0-Authentifizierungsbibliotheken.
- Nachdem ein Benutzer authentifiziert wurde, muss die Anwendung das Sicherheitstoken des Benutzers überprüfen, um sicherzustellen, dass die Authentifizierung erfolgreich war. Sie finden Schnellstarts, Lernprogramme und Codebeispiele in einer Vielzahl von Sprachen und Frameworks, die zeigen, was die Anwendung tun muss.
- Informationen zum schnellen Erstellen einer App und Hinzufügen von Funktionen wie das Abrufen von Token, das Aktualisieren von Token, das Anmelden eines Benutzers, das Anzeigen einiger Benutzerinformationen und vieles mehr finden Sie im Abschnitt Schnellstarts der Dokumentation.
- Um detaillierte szenariobasierte Verfahren für wichtige Aufgaben von Authentifizierungsentwicklern wie das Abrufen von Zugriffstokens und deren Verwendung in Aufrufen der Microsoft Graph-API und anderer APIs zu erhalten, sowie die Implementierung der Anmeldung mit Microsoft über eine herkömmliche browserbasierte App mit OpenID Connect, und mehr zu erfahren, schauen Sie im Abschnitt Tutorials der Dokumentation nach.
- Um Codebeispiele herunterzuladen, wechseln Sie zu GitHub-.
- Der Fluss von Anforderungen und Antworten für den Authentifizierungsprozess wird durch das verwendete Authentifizierungsprotokoll bestimmt, z. B. OAuth 2.0, OpenID Connect, WS-Federation oder SAML 2.0. Weitere Informationen zu Protokollen finden Sie im Abschnitt Konzepte > Authentifizierungsprotokolls Abschnitt der Dokumentation.
Im obigen Beispielszenario können Sie die Apps gemäß den folgenden beiden Rollen klassifizieren:
- Apps, die sicher auf Ressourcen zugreifen müssen
- Apps, die die Rolle der Ressource selbst spielen
So emittiert jeder Fluss Token und Codes
Je nachdem, wie Ihr Client erstellt wird, kann er einen (oder mehrere) Authentifizierungsflüsse verwenden, die von Azure AD unterstützt werden. Diese Flüsse können eine Vielzahl von Token (id_tokens, Aktualisierungstoken, Zugriffstoken) sowie Autorisierungscodes erzeugen und unterschiedliche Token erfordern, damit sie funktionieren. Dieses Diagramm bietet eine Übersicht:
Fließen | Erfordert | id_token | Zugriffstoken | Aktualisierungstoken | Autorisierungscode |
---|---|---|---|---|---|
Autorisierungscodefluss | x | x | x | x | |
impliziten Fluss | x | x | |||
Hybrid-OIDC-Fluss | x | x | |||
Aktualisierungstokeneinlösung | Aktualisierungstoken | x | x | x | |
Stellvertretungsfluss | Zugriffstoken | x | x | x | |
Clientanmeldeinformationen | x (nur App) |
Token, die über den impliziten Modus ausgegeben werden, weisen eine Längenbeschränkung auf, da sie über die URL zurück an den Browser übergeben werden (wobei response_mode
query
oder fragment
ist). Einige Browser haben einen Grenzwert für die Größe der URL, die in die Browserleiste gesetzt werden kann, und schlagen fehl, wenn sie zu lang ist. Daher haben diese Token keine Ansprüche auf groups
oder wids
.
Nachdem Sie nun eine Übersicht über die Grundlagen haben, lesen Sie weiter, um das Identitäts-App-Modell und die API zu verstehen, wie die Bereitstellung in Azure AD funktioniert, und Links zu detaillierten Informationen zu den gängigen Szenarien, die Azure AD unterstützt.
Anwendungsmodell
Azure AD stellt Anwendungen dar, die einem bestimmten Modell folgen, das für die Erfüllung von zwei Hauptfunktionen konzipiert ist:
Identifizieren Sie die App gemäß den Authentifizierungsprotokollen, die sie unterstützt, – Dies umfasst das Aufzählen aller Bezeichner, URLs, geheimen Schlüssel und verwandter Informationen, die zur Authentifizierungszeit benötigt werden. Hier, Azure AD:
- Enthält alle Daten, die zur Unterstützung der Authentifizierung zur Laufzeit erforderlich sind.
- Enthält alle Daten für die Entscheidung, auf welche Ressourcen eine App zugreifen muss, und ob eine bestimmte Anforderung erfüllt werden soll und unter welchen Umständen.
- Stellt die Infrastruktur zum Implementieren der App-Bereitstellung innerhalb des Mandanten des App-Entwicklers sowie für jeden anderen Azure AD-Mandanten bereit.
Verwaltung der Benutzereinwilligung während der Token-Anforderungsphase und Erleichterung der dynamischen Bereitstellung von Apps über verschiedene Mandanten hinweg – Hier, Azure AD:
- Ermöglicht Benutzern und Administratoren das dynamische Erteilen oder Verweigern der Zustimmung für die App für den Zugriff auf Ressourcen in ihrem Auftrag.
- Ermöglicht Administratoren zu entscheiden, welche Aktionen Apps ausführen dürfen und welche Benutzer bestimmte Apps verwenden können und wie auf die Ressourcen des Verzeichnisses zugegriffen wird.
In Azure AD beschreibt ein Anwendungsobjekt eine Anwendung als abstrakte Entität. Entwickler arbeiten mit Anwendungen. Zur Bereitstellungszeit verwendet Azure AD ein bestimmtes Anwendungsobjekt als Blueprint, um einen Dienstprinzipalzu erstellen, der eine konkrete Instanz einer Anwendung innerhalb eines Verzeichnisses oder Mandanten darstellt. Es ist der Dienstprinzipal, der definiert, was die App tatsächlich in einem bestimmten Zielverzeichnis tun kann, wer es verwenden kann, auf welche Ressourcen sie zugreifen kann usw. Azure AD erstellt einen Dienstprinzipal aus einem Anwendungsobjekt mit Einwilligung.
Das folgende Diagramm zeigt einen vereinfachten Azure AD-Bereitstellungsfluss, der durch Zustimmung gesteuert wird. Darin sind zwei Mandanten vorhanden (A und B), wobei Mandant A die Anwendung besitzt, und mandant B die Anwendung über einen Dienstprinzipal instanziiert.
In diesem Bereitstellungsprozess:
- Ein Benutzer von Mandant B versucht, sich mit der App anzumelden, der Autorisierungsendpunkt fordert ein Token für die Anwendung an.
- Die Benutzeranmeldeinformationen werden für die Authentifizierung erworben und überprüft.
- Der Benutzer wird aufgefordert, der App die Zustimmung zu erteilen, um Zugriff auf Mandanten B zu erhalten.
- Azure AD verwendet das Anwendungsobjekt im Mandanten A als Vorlage, um ein Dienstprinzipalobjekt in Mandanten B zu erstellen.
- Der Benutzer empfängt das angeforderte Token.
Sie können diesen Vorgang beliebig oft für andere Mandanten (C, D usw.) wiederholen. Mandant A behält die Blaupause für die Anwendung (Anwendungsobjekt). Benutzer und Administratoren aller anderen Mandanten, in denen die Anwendung Zustimmung erhält, behalten die Kontrolle darüber, was die Anwendung über das entsprechende Dienstprinzipalobjekt in jedem Mandanten ausführen darf. Weitere Informationen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Identity Platform.
Ansprüche in Sicherheitstokens von Azure AD
Sicherheitstoken (Zugriffs- und ID-Token), die von Azure AD ausgestellt wurden, enthalten Behauptungen oder Angaben zu Informationen über das Subjekt, das authentifiziert wurde. Anwendungen können Ansprüche für verschiedene Aufgaben verwenden, einschließlich:
- Überprüfen des Tokens
- Identifizieren Sie den Verzeichnismandanten des Subjekts
- Anzeigen von Benutzerinformationen
- Die Berechtigung des Subjekts bestimmen
Die Ansprüche, die in einem bestimmten Sicherheitstoken vorhanden sind, sind vom Tokentyp, dem Typ der Anmeldeinformationen, die zum Authentifizieren des Benutzers und zur Anwendungskonfiguration verwendet werden, abhängig.
Eine kurze Beschreibung der einzelnen Von Azure AD ausgegebenen Anspruchstypen finden Sie in der folgenden Tabelle. Ausführlichere Informationen finden Sie in den von Azure AD ausgestellten -Zugriffstoken und -ID-Token.
Anspruch | BESCHREIBUNG |
---|---|
Anwendungs-ID | Identifiziert die Anwendung, die das Token verwendet. |
Publikum | Identifiziert die Empfängerressource, für die das Token vorgesehen ist. |
Anwendungsauthentifizierungskontextklassenreferenz | Gibt an, wie der Client authentifiziert wurde (öffentlicher Client oder vertraulicher Client). |
Sofortauthentifizierung | Zeichnet das Datum und die Uhrzeit des Auftretens der Authentifizierung auf. |
Authentifizierungsmethode | Gibt an, wie der Gegenstand des Tokens authentifiziert wurde (Passwort, Zertifikat usw.). |
Vorname | Stellt den angegebenen Namen des Benutzers bereit, der in Azure AD festgelegt ist. |
Gruppen | Enthält Objekt-IDs von Azure AD-Gruppen, bei denen der Benutzer Mitglied ist. |
Identitätsanbieter | Zeichnet den Identitätsanbieter auf, der das Subjekt des Tokens authentifiziert hat. |
Ausgestellt am | Zeichnet die Uhrzeit auf, zu der das Token ausgegeben wurde, häufig zur Gewährleistung der Aktualität des Tokens verwendet. |
Emittent | Identifiziert den STS, der das Token ausgibt, sowie den Azure AD-Mandanten. |
Last Name (Nachname) | Stellt den Nachnamen des Benutzers wie in Azure AD festgelegt bereit. |
Name | Ein menschenlesbarer Wert, der das Subjekt des Tokens identifiziert. |
Objekt-ID | Enthält einen unveränderlichen eindeutigen Bezeichner des Betreffs in Azure AD. |
Rollen | Enthält benutzerfreundliche Namen von Azure AD-Anwendungsrollen, die dem Benutzer zugewiesen wurden. |
Umfang | Gibt die Berechtigungen an, die der Clientanwendung gewährt werden. |
Betreff | Gibt die Hauptperson an, über die das Token Informationen angibt. |
Mandanten-ID | Enthält einen unveränderlichen eindeutigen Bezeichner des Verzeichnismandanten, der das Token ausgestellt hat. |
Tokengültigkeitsdauer | Definiert das Zeitintervall, innerhalb dessen ein Token gültig ist. |
Benutzerprinzipalname | Enthält den Benutzerprinzipalnamen des Betreffs. |
Version | Enthält die Versionsnummer des Tokens. |
Nächste Schritte
- Erfahren Sie mehr über die Anwendungstypen und Szenarien, die in Microsoft Identity Platform unterstützt werden