Konfigurieren der Authentifizierung in einem Beispiel einer ASP.NET-Webanwendung mithilfe von Azure AD B2C

In diesem Artikel wird anhand einer ASP.NET-Beispielwebanwendung veranschaulicht, wie Sie Ihren Webanwendungen die Authentifizierung von Azure Active Directory B2C (Azure AD B2C) hinzufügen.

Wichtig

Auf die in diesem Artikel verwiesene ASP.NET-Beispiel-Web-App kann nicht zum Aufrufen einer REST-API verwendet werden, weil sie ein ID-Token, aber kein Zugriffstoken zurückgibt. Informationen zu einer Web-App, die eine REST-API aufrufen kann, finden Sie unter Sichern einer Web-API, die mit ASP.NET Core mithilfe von Azure AD B2C erstellt wurde.

Übersicht

OpenID Connect (OIDC) ist ein Authentifizierungsprotokoll, das auf OAuth 2.0 basiert. Sie können OIDC verwenden, um Benutzer sicher bei einer Anwendung anzumelden. Für dieses Web-App-Beispiel wird Microsoft Identity Web verwendet. Bei Microsoft Identity Web handelt es sich um eine Reihe von ASP.NET Core-Bibliotheken, die das Hinzufügen von Authentifizierungs- und Autorisierungsunterstützung zu Web-Apps vereinfachen.

Der Anmeldeflow umfasst die folgenden Schritte:

  1. Benutzer navigieren zur Web-App und wählen Anmelden aus.
  2. Die App löst eine Authentifizierungsanforderung aus und leitet Benutzer an Azure AD B2C um.
  3. Benutzer registrieren oder melden sich an und setzen das Kennwort zurück. Alternativ können sie sich mit einem Social Media-Konto anmelden.
  4. Nachdem die Benutzer sich erfolgreicher angemeldet haben, gibt Azure AD B2C ein ID-Token an die App zurück.
  5. Die App überprüft das ID-Token, liest die Ansprüche und gibt eine sichere Seite an die Benutzer zurück.

Wenn das ID-Token abgelaufen ist oder die App-Sitzung ungültig wird, initiiert die App eine neue Authentifizierungsanforderung und leitet die Benutzer zu Azure AD B2C um. Wenn die Azure AD B2C-SSO-Sitzung aktiv ist, gibt Azure AD B2C ein Zugriffstoken aus, ohne die Benutzer zur erneuten Anmeldung aufzufordern. Wenn die Azure AD B2C-Sitzung abläuft oder ungültig wird, werden die Benutzer aufgefordert, sich erneut anzumelden.

Abmelden

Der Abmeldeflow umfasst die folgenden Schritte:

  1. In der App melden sich Benutzer ab.
  2. Die App löscht ihre Sitzungsobjekte, und die Authentifizierungsbibliothek leert ihren Tokencache.
  3. Die App leitet den Benutzer zum Azure AD B2C-Abmeldeendpunkt, um die Azure AD B2C-Sitzung zu beenden.
  4. Benutzer werden zurück zur App geleitet.

Voraussetzungen

Ein Computer mit einem der folgenden Betriebssysteme ausgeführt wird:

Schritt 1: Konfigurieren Ihres Benutzerflows

Wenn Benutzer versuchen, sich bei Ihrer App anzumelden, startet die App über einen Benutzerflow eine Authentifizierungsanforderung an den Autorisierungsendpunkt. Der Benutzerflow definiert und kontrolliert die Benutzeroberfläche. Nachdem Benutzer den Benutzerflow abgeschlossen haben, generiert Azure AD B2C ein Token und leitet den Benutzer anschließend wieder zurück zu Ihrer Anwendung.

Falls noch nicht geschehen, erstellen Sie einen Benutzerflow oder eine benutzerdefinierte Richtlinie. Wiederholen Sie die Schritte, um drei separate Benutzerflows wie folgt zu erstellen:

  • Kombinierter Benutzerflow für Registrierung und Anmeldung, z. B. susi. Dieser Benutzerflow unterstützt auch die Umgebung Kennwort vergessen.
  • Benutzerflow für die Profilbearbeitung, z. B. edit_profile.
  • Benutzerflow für die Kennwortzurücksetzung, z. B. reset_password.

Azure AD B2C stellt B2C_1_ dem Benutzerflownamen voran. susi wird beispielsweise zu B2C_1_susi.

Schritt 2: Registrieren einer Webanwendung

Damit sich Ihre Anwendung mit Azure AD B2C anmelden kann, müssen Sie Ihre App im Azure AD B2C-Verzeichnis registrieren. Durch das Registrieren Ihrer App wird eine Vertrauensstellung zwischen der App und Azure AD B2C eingerichtet.

Bei der App-Registrierung geben Sie den Umleitungs-URI an. Der Umleitungs-URI ist der Endpunkt, an den die Benutzer von Azure AD B2C umgeleitet werden, nachdem sie sich mit Azure AD B2C authentifiziert haben. Beim App-Registrierungsprozess wird eine Anwendungs-ID generiert, die auch als Client-ID bezeichnet wird und Ihre App eindeutig identifiziert. Nachdem Ihre App registriert wurde, verwendet Azure AD B2C sowohl die Anwendungs-ID als auch den Umleitungs-URI, um Authentifizierungsanforderungen zu erstellen.

Gehen Sie zum Erstellen der Web-App-Registrierung folgendermaßen vor:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wenn Sie Zugriff auf mehrere Mandanten haben, wählen Sie das Symbol Einstellungen im Menü oben, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C Mandanten zu wechseln.

  3. Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.

  4. Wählen Sie App-Registrierungen aus, und wählen Sie dann Registrierung einer neuen Anwendung aus.

  5. Geben Sie unter Name einen Namen für die Anwendung ein, (z. B. webapp1).

  6. Wählen Sie unter Unterstützte Kontotypen die Option Konten in einem beliebigen Identitätsanbieter oder Organisationsverzeichnis (zum Authentifizieren von Benutzern mit Benutzerflows) aus.

  7. Wählen Sie unter Umleitungs-URI die Option Web aus, und geben Sie https://localhost:44316/signin-oidc in das URL-Feld ein.

  8. Wählen Sie unter "Verwalten" die Option "Authentifizierung" aus, wechseln Sie zu "Implizite Erteilung" und "Hybridflüsse", aktivieren Sie das Kontrollkästchen "ID-Token" (verwendet für implizite und Hybridflüsse).

  9. Aktivieren Sie unter Berechtigungen das Kontrollkästchen Administratoreinwilligung für OpenID- und Offlinezugriffsberechtigungen erteilen.

  10. Wählen Sie Registrieren.

  11. Wählen Sie Übersicht.

  12. Notieren Sie sich die Anwendungs- bzw. Client-ID, die Sie später beim Konfigurieren der Webanwendung verwenden.

    Screenshot: Seite „Übersicht“ der Web-App zum Aufzeichnen Ihrer Webanwendungs-ID

Schritt 3: Herunterladen des Web-App-Beispiels

Laden Sie die ZIP-Datei herunter, oder klonen Sie die Beispielwebanwendung von GitHub.

git clone https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2

Extrahieren Sie die Beispieldatei in einen Ordner, bei dem die Gesamtlänge des Pfads 260 oder weniger Zeichen oder umfasst.

Schritt 4: Konfigurieren der Beispiel-Web-App

Öffnen Sie im Beispielordner in dem Ordner 1-WebApp-OIDC/1-5-B2C/ das Projekt WebApp-OpenIDConnect-DotNet.csproj mit Visual Studio oder Visual Studio Code.

Öffnen Sie die Datei appsettings.json in dem Projektstammordner. Diese Datei enthält Informationen zu Ihrem Azure AD B2C-Identitätsanbieter. Aktualisieren Sie die folgenden Eigenschaften der App-Einstellungen:

`Section` Key Wert
AzureAdB2C Instanz Der erste Teil Ihres Azure AD B2C-Mandantennamens (z. B. https://contoso.b2clogin.com).
AzureAdB2C Domain Der vollständige Name Ihres Azure AD B2C-Mandanten (z. B. contoso.onmicrosoft.com).
AzureAdB2C ClientId Die Web-App-Anwendungs-ID (Client) aus Schritt 2.
AzureAdB2C SignUpSignInPolicyId Die Benutzerflows oder die benutzerdefinierte Richtlinie, die Sie in Schritt 1 erstellt haben.

Die endgültige Konfigurationsdatei sollte wie die folgende JSON aussehen:

"AzureAdB2C": {
  "Instance": "https://contoso.b2clogin.com",
  "Domain": "contoso.onmicrosoft.com",
  "ClientId": "<web-app-application-id>",
  "SignedOutCallbackPath": "/signout/<your-sign-up-in-policy>",
  "SignUpSignInPolicyId": "<your-sign-up-in-policy>"
}

Schritt 5: Ausführen der Beispiel-Web-App

  1. Erstellen Sie das Projekt, und führen Sie es aus.

  2. Gehe zu https://localhost:44316.

  3. Wählen Sie Registrieren/Anmelden aus.

    Screenshot: Schaltfläche zum Registrieren und Anmelden auf der Willkommensseite des Projekts

  4. Schließen Sie den Registrierungs- oder Anmeldevorgang ab.

Nach der erfolgreichen Authentifizierung wird Ihr Anzeigename in der Navigationsleiste angezeigt. Wenn Sie die Ansprüche anzeigen möchten, die das Azure AD B2C-Token an Ihre App zurückgibt, wählen Sie Ansprüche aus.

Ein Screenshot, der die Token-Ansprüche der Web-App zeigt.

Bereitstellen der Anwendung

In einer Produktionsanwendung handelt es sich bei dem Umleitungs-URI der App-Registrierung in der Regel um einen öffentlich zugänglichen Endpunkt, an dem Ihre App ausgeführt wird, z. B. https://contoso.com/signin-oidc.

Sie können Umleitungs-URIs in Ihren registrierten Anwendungen jederzeit hinzufügen und ändern. Für Umleitungs-URIs gelten die folgenden Einschränkungen:

  • Die Antwort-URL muss mit dem Schema https beginnen.
  • Bei der Antwort-URL muss die Groß-/Kleinschreibung beachtet werden. Die Groß-/Kleinschreibung muss der Groß-/Kleinschreibung des URL-Pfads Ihrer ausgeführten Anwendung entsprechen.

Nächste Schritte