Nutzer mit Microsoft anmelden
In diesem Dokument erfahren Sie, wie Sie Nutzer mit Identity Platform bei Microsoft anmelden. Es werden sowohl persönliche Microsoft-Konten als auch Azure Active Directory-Konten (Azure AD) unterstützt.
Hinweis
In dieser Anleitung wird davon ausgegangen, dass Sie Identity Platform bereits aktiviert und eine einfache Webanwendung erstellt haben, die mit HTML und JavaScript geschrieben wurde. Weitere Informationen dazu finden Sie in der Kurzanleitung.
Microsoft als Anbieter konfigurieren
So konfigurieren Sie Microsoft als Identitätsanbieter:
Rufen Sie in der Google Cloud Console die Seite Identitätsanbieter auf.
Klicken Sie auf Anbieter hinzufügen.
Wählen Sie Microsoft aus der Liste aus.
Geben Sie die App-ID und das App-Secret für Microsoft ein. Wenn Sie noch keine ID und kein Secret haben, führen Sie die Schritte unter Kurzanleitung: Anwendung mit dem Azure AD v2.0-Endpunkt registrieren aus, um eine zu erhalten.
Dieser Endpunkt unterstützt sowohl private Microsoft- als auch Azure AD-Konten. Weitere Informationen finden Sie in der Microsoft Identity Platform (v2.0) – Übersicht um mehr über Azure AD zu erfahren.
Konfigurieren Sie den unter Microsoft konfigurieren aufgeführten URI als gültigen OAuth-Weiterleitungs-URI für Ihre Microsoft-App. Wenn Sie in der Identity Platform eine benutzerdefinierte Domain konfiguriert haben, aktualisieren Sie den Weiterleitungs-URI in der Konfiguration Ihrer Microsoft-App, damit die benutzerdefinierte Domain anstelle der Standarddomain verwendet wird. Ändern Sie beispielsweise
https://myproject.firebaseapp.com/__/auth/handler
zuhttps://auth.myownpersonaldomain.com/__/auth/handler
.Klicken Sie unter Autorisierte Domains auf Domain hinzufügen, um die Domains Ihrer Anwendung zu registrieren. Für Entwicklungszwecke ist
localhost
bereits standardmäßig aktiviert.Klicken Sie unter Anwendung konfigurieren auf Einrichtungsdetails. Kopieren Sie das Snippet in den Code Ihrer Anwendung, um das Identity Platform Client SDK zu initialisieren.
Klicken Sie auf Speichern.
Nutzer mit dem Client SDK anmelden
Erstellen Sie eine Instanz des Objekts
OAuthProvider
und übergeben Siemicrosoft.com
als Anbieter-ID:JavaScript
var provider = new firebase.auth.OAuthProvider('microsoft.com');
Optional: Fügen Sie OAuth-Bereiche hinzu. Die Bereiche legen fest, welche Daten Sie von Microsoft anfordern. Für sensiblere Daten sind möglicherweise spezielle Bereiche erforderlich. Informationen dazu, welche Bereiche Ihre Anwendung benötigt, finden Sie in der Dokumentation von Microsoft.
JavaScript
provider.addScope('mail.read'); provider.addScope('calendars.read');
Optional: Geben Sie zusätzliche benutzerdefinierte OAuth-Parameter an. Sie gelten speziell für Microsoft und werden meist verwendet, um das Authentifizierungserlebnis anzupassen.
JavaScript
provider.setCustomParameters({ // Force re-consent. prompt: 'consent', // Target specific email with login hint. login_hint: 'user@firstadd.onmicrosoft.com' });
Mit dem Parameter
mkt
können Sie die Sprache des Authentifizierungsablaufs anpassen. Beispiel:provider.setCustomParameters({ mkt: 'fr' });
Mit dem Attribut
tenant
können Sie den Zugriff auf Nutzer außerhalb einer bestimmten Azure AD-Domain beschränken. Geben Sie entweder den Anzeigenamen der Mandanten oder seine GUID-Kennung an. Nutzer, die nicht zu dieser Domain gehören, können sich nicht anmelden. Beispiel:provider.setCustomParameters({ // Optional "tenant" parameter in case you are using an Azure AD tenant. // eg. '8eaef023-2b34-4da1-9baa-8bc8c9d6a490' or 'contoso.onmicrosoft.com' // or "common" for tenant-independent tokens. // The default value is "common". tenant: 'TENANT_ID' });
Weitere Informationen finden Sie in der Microsoft OAuth-Dokumentation. finden Sie eine vollständige Liste der von Microsoft unterstützten Parameter. Beachten Sie, dass Sie keine von OAuth oder Identity Platform reservierten Parameter übergeben können.
Verwenden Sie das Objekt
OAuthProvider
, um den Nutzer anzumelden. Sie können entweder ein Pop-up-Fenster öffnen oder die aktuelle Seite weiterleiten. Für Nutzer von Mobilgeräten ist die Weiterleitung einfacher.Rufen Sie
signInWithPopup()
auf, um ein Pop-up-Fenster einzublenden:JavaScript
firebase.auth().signInWithPopup(provider) .then((result) => { // IdP data available in result.additionalUserInfo.profile. // ... /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // OAuth access and id tokens can also be retrieved: var accessToken = credential.accessToken; var idToken = credential.idToken; }) .catch((error) => { // Handle error. });
Rufen Sie zum Weiterleiten der Seite zuerst
signInWithRedirect()
auf:Folgen Sie den Best Practices für die Verwendung von
signInWithRedirect
,linkWithRedirect
oderreauthenticateWithRedirect
.JavaScript
firebase.auth().signInWithRedirect(provider);
Rufen Sie dann das Microsoft-Token beim Laden der Seite ab. Dazu rufen Sie
getRedirectResult()
auf:JavaScript
firebase.auth().getRedirectResult() .then((result) => { // IdP data available in result.additionalUserInfo.profile. // ... /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // OAuth access and id tokens can also be retrieved: var accessToken = credential.accessToken; var idToken = credential.idToken; }) .catch((error) => { // Handle error. });
Sobald Sie ein Zugriffstoken haben, können Sie damit die Microsoft Graph API aufrufen. Zum Beispiel:
REST
curl -i -H "Authorization: Bearer [ACCESS_TOKEN]" https://graph.microsoft.com/v1.0/me
Anders als andere von Identity Platform unterstützte Anbieter stellt Microsoft keine Foto-URL für Nutzer bereit. Stattdessen müssen Sie die Graph API verwenden, um Binärdaten für das Foto anzufordern.
Neben dem Zugriffstoken können Sie auch das Microsoft ID-Token eines Nutzers abrufen.
Die Anforderung oid
für dieses Token enthält eine eindeutige ID für den Nutzer. Sie können diese mit der ID unter user.providerData[0].uid
vergleichen. Wenn sich Ihre Nutzer mit einem Azure AD-Mandanten anmelden, stimmen diese Felder genau überein. Ist dies nicht der Fall, wird das Feld mit Nullen aufgefüllt. Die föderierte ID 4b2eabcdefghijkl
wird beispielsweise als 00000000-0000-0000-4b2e-abcdefghijkl
angezeigt.
Verwenden Sie die sub
-Anforderung nicht zum Vergleichen von Nutzer-IDs. Die Anforderung sub
ist anwendungsspezifisch und stimmt nicht mit der von Microsoft verwendeten ID überein.
Nutzer manuell anmelden
Bei einigen anderen Identity Platform-Anbietern wie Google, Facebook und Twitter können Sie Nutzer manuell durch Aufrufen von signInWithCredential()
anmelden.
Diese Funktion wird für Microsoft nicht unterstützt. Identity Platform kann die Zielgruppe von Microsoft OAuth-Zugriffstoken nicht überprüfen. Dies ist eine wichtige Sicherheitsanforderung.
Wenn Sie Nutzer nicht mit dem Identity Platform-Client-SDK anmelden können, müssen Sie eine OAuth-Bibliothek eines Drittanbieters für die Authentifizierung bei Microsoft verwenden. Anschließend können Sie die benutzerdefinierte Authentifizierung verwenden, um die Microsoft-Anmeldedaten gegen ein benutzerdefiniertes Token auszutauschen.
Nächste Schritte
- Weitere Informationen zu Identity Platform-Nutzern
- Nutzer mit anderen Identitätsanbietern anmelden