Anmelden von Benutzern bei einer exemplarischen ASP.NET Core-Web-App in einem externen Mandanten

In dieser Schrittanleitung wird eine exemplarische ASP.NET Core-Web-App verwendet, um die Grundlagen der modernen Authentifizierung mithilfe der Microsoft-Authentifizierungsbibliothek für .NET und des Microsoft Identity Web für ASP.NET Core zur Verarbeitung der Authentifizierung zu veranschaulichen.

In diesem Artikel registrieren Sie eine Webanwendung im Microsoft Entra Admin Center und erstellen einen Anmelde- und Abmeldebenutzerflow. Sie ordnen Ihre Web-App dem Benutzerflow zu, laden eine exemplarische ASP.NET Core-Web-App herunter und aktualisieren sie mit den Details Ihres eigenen externen Mandanten. Abschließend führen Sie die Beispielwebanwendung aus und testen Sie sie.

Voraussetzungen

  • Obwohl jede IDE, die ASP.NET Core-Anwendungen unterstützt, verwendet werden kann, wird in dieser Anleitung Visual Studio Code verwendet. Sie können sie auf der Seite Downloads herunterladen.
  • .NET 7.0 SDK.
  • Externer Mandant. Falls Sie noch nicht über die Anwendung verfügen, können Sie sich für eine kostenlose Testversion registrieren.

Registrieren der Web-App

Damit Ihre Anwendung Benutzer mit Microsoft Entra anmelden kann, muss Microsoft Entra External ID auf die von Ihnen erstellte Anwendung aufmerksam gemacht werden. Durch die App-Registrierung wird eine Vertrauensstellung zwischen der Anwendung und Microsoft Entra eingerichtet. Wenn Sie eine Anwendung registrieren, generiert External ID einen eindeutigen Bezeichner, die Anwendungs-ID (Client). Dieser Wert wird zum Identifizieren Ihrer Anwendung beim Erstellen von Authentifizierungsanforderungen verwendet.

Die folgenden Schritte veranschaulichen, wie Sie Ihre Anwendung im Microsoft Entra Admin Center registrieren:

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Anwendungsentwickler an.

  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Einstellungen-Symbol im oberen Menü, um über das Menü Verzeichnisse + Abonnements zu Ihrem externen Mandanten zu wechseln.

  3. Navigieren Sie zu Identität>Anwendungen>App-Registrierungen.

  4. Wählen Sie + Neue Registrierung aus.

  5. Auf der Seite Anwendung registrieren die angezeigt wird.

    1. Geben Sie im Abschnitt Name einen aussagekräftigen Anwendungsnamen ein, der den Benutzern der Anwendung angezeigt wird (z. B. ciam-client-app).
    2. Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis aus.
  6. Wählen Sie Registrieren.

  7. Der Bereich Übersicht der Anwendung wird bei erfolgreicher Registrierung angezeigt. Notieren Sie sich die Anwendungs-ID (Client), die im Quellcode Ihrer Anwendung verwendet werden sollen.

Definieren der Plattform und der URLs

Führen Sie die folgenden Schritte aus, um den Anwendungstyp für Ihre Anwendungsregistrierung anzugeben:

  1. Wählen Sie unter Verwalten die Option Authentifizierung aus.
  2. Wählen Sie auf der Seite Plattformkonfigurationen die Option Plattform hinzufügen und dann die Option Web aus.
  3. Geben Sie unter Umleitungs-URLs den Wert https://localhost:7274/signin-oidc ein.
  4. Geben Sie unter URL für Front-Channel-Abmeldung den Wert https://localhost:7274/signout-callback-oidc ein, um sich abzumelden.
  5. Wählen Sie Konfigurieren aus, um Ihre Änderungen zu speichern.

Aktivieren impliziter und hybrider Flows

Die Anwendung, die Sie erstellen, verwendet den impliziten Flow, der aktiviert werden muss.

  1. Wählen Sie im Abschnitt Implizite Genehmigung und Hybridflows die Option ID-Token aus.
  2. Wählen Sie Speichern.

Hinzufügen eines geheimen Clientschlüssels für die Anwendung

Erstellen Sie einen geheimen Clientschlüssel für die registrierte Anwendung. Die Anwendung verwendet den geheimen Clientschlüssel beim Anfordern von Token als Identitätsnachweis.

  1. Wählen Sie auf der Seite App-Registrierungen die von Ihnen erstellte Anwendung (z. B. ciam-client-app) aus, um ihre Seite Übersicht zu öffnen.
  2. Wählen Sie unter Verwalten die Option Zertifikate und Geheimnisse aus.
  3. Wählen Sie Neuer geheimer Clientschlüssel.
  4. Geben Sie im Feld Beschreibung eine Beschreibung für das Clientgeheimnis ein (z. B. Ciam-App-Clientgeheimnis).
  5. Wählen Sie unter Gültig bis einen Gültigkeitszeitraum für den geheimen Schlüssel (gemäß den jeweiligen Sicherheitsregeln Ihrer Organisation) und dann Hinzufügen aus.
  6. Notieren Sie den Wert des Geheimnisses. Dieser Wert wird in einem späteren Schritt für die Konfiguration verwendet. Der Wert des Geheimnisses wird nicht noch mal angezeigt und kann nicht anderweitig abgerufen werden, nachdem Sie die Seite Zertifikate & Geheimnisse verlassen haben. Notieren Sie sich diesen daher unbedingt.

Gewähren von API-Berechtigungen

  1. Wählen Sie auf der Seite App-Registrierungen die von Ihnen erstellte Anwendung (z. B. ciam-client-app) aus, um ihre Seite Übersicht zu öffnen.

  2. Wählen Sie unter Verwalten die Option API-Berechtigungen.

  3. Wählen Sie unter Konfigurierte Berechtigungen die Option Berechtigung hinzufügen aus.

  4. Wählen Sie die Registerkarte Microsoft-APIs aus.

  5. Wählen Sie unter Häufig verwendete Microsoft-APIs die Option Microsoft Graph aus.

  6. Wählen Sie Delegierte Berechtigungen aus.

  7. Suchen Sie im Abschnitt Berechtigungen auswählen die Berechtigungen openid und offline_access, und wählen Sie beide aus.

  8. Wählen Sie die Schaltfläche Berechtigungen hinzufügen aus.

  9. An diesem Punkt haben Sie die Berechtigungen ordnungsgemäß zugewiesen. Da der Mandant jedoch der Mandant eines Kunden ist, können die Consumer-Benutzer selbst diesen Berechtigungen nicht zustimmen. Als Administrator müssen Sie im Namen aller Benutzer im Mandanten diesen Berechtigungen zustimmen:

    1. Wählen Sie Administratorzustimmung für <Name Ihres Mandanten> erteilen und dann Ja aus.
    2. Wählen Sie Aktualisieren aus, und vergewissern Sie sich, dass für beide Bereiche unter Status der Status Erteilt für <Name Ihres Mandanten> angezeigt wird.

Erstellen eines Benutzerflows

Führen Sie die folgenden Schritte aus, um einen Benutzerflow zu erstellen, den ein Kunde zum Anmelden oder Registrieren für eine Anwendung verwenden kann.

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens mit der Rolle Administrator für Benutzerflows mit externer ID an.

  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Einstellungen-Symbol im oberen Menü, um über das Menü Verzeichnisse + Abonnements zu Ihrem externen Mandanten zu wechseln.

  3. Browsen Sie zu Identität>External Identities>Benutzerflows.

  4. Wählen Sie + Neuer Benutzerflow aus.

  5. Gehen Sie auf der Seite Erstellen folgendermaßen vor:

    1. Geben Sie einen Namen für den Benutzerflow ein, z. B. SignInSignUpSample.

    2. Wählen Sie in der Liste Identitätsanbieter die Option Email-Konten aus. Dieser Identitätsanbieter bietet Benutzern die Möglichkeit, sich mit ihrer Email-Adresse anzumelden oder zu registrieren.

      Hinweis

      Weitere Identitätsanbieter werden hier nur aufgeführt, nachdem ein Verbund mit ihnen eingerichtet wurde. Wenn Sie beispielsweise einen Verbund mit Google oder Facebook einrichten, können Sie diese zusätzlichen Identitätsanbieter hier auswählen.

    3. Unter Email-Konten können Sie eine der beiden Optionen auswählen. Wählen Sie für dieses Tutorial Email mit Kennwort aus.

      • Email mit Kennwort: Ermöglicht es neuen Benutzern, sich mit einer E-Mail-Adresse als Anmeldenamen und einem Kennwort als ersten Faktor der Anmeldeinformationen zu registrieren und anzumelden.
      • Email mit Einmal-Passcode: Ermöglicht es neuen Benutzern, sich mit einer E-Mail-Adresse als Anmeldenamen und einem Einmal-Passcode als ersten Faktor der Anmeldeinformationen zu registrieren und anzumelden. Email mit Einmal-Passcode muss auf Mandantenebene (Alle Identitätsanbieter>Email mit Einmal-Passcode) aktiviert sein, damit diese Option auf Benutzerflowebene verfügbar ist.
    4. Wählen Sie unter Benutzerattribute die Attribute aus, die Sie vom Benutzer bei der Registrierung erfassen möchten. Wenn Sie Mehr anzeigen auswählen, können Sie Attribute und Ansprüche für Land/Region, Anzeigename und Postleitzahl auswählen. Klicken Sie auf OK. (Benutzer werden nur zur Eingabe von Attributen aufgefordert, wenn sie sich zum ersten Mal registrieren.)

  6. Klicken Sie auf Erstellen. Der neue Benutzerflow wird in der Liste Benutzerflows angezeigt. Aktualisieren Sie die Seite bei Bedarf.

Führen Sie die Schritte im Artikel Aktivieren der Self-Service-Kennwortzurücksetzung aus, um die Self-Service-Kennwortzurücksetzung zu aktivieren.

Zuordnen der Webanwendung zum Benutzerflow

Obwohl ihrem Benutzerflow viele Anwendungen zugeordnet werden können, kann eine einzelne Anwendung nur einem Benutzerflow zugeordnet werden. Ein Benutzerflow ermöglicht die Konfiguration der Benutzeroberfläche für bestimmte Anwendungen. Sie können beispielsweise einen Benutzerflow konfigurieren, bei dem sich Benutzer und Benutzerinnen mit einer E-Mail-Adresse anmelden oder registrieren müssen.

  1. Wählen Sie im Menü der Seitenleiste die Option Identität aus.

  2. Wählen Sie External Identities und dann Benutzerflows aus.

  3. Wählen Sie auf der Seite Benutzerflows den zuvor erstellten Benutzerflownamen aus, z. B. SignInSignUpSample.

  4. Wählen Sie unter Verwenden die Option Anwendungen aus.

  5. Wählen Sie Anwendung hinzufügen aus.

  6. Wählen Sie die Anwendung in der Liste aus, z. B. ciam-client-app, oder verwenden Sie das Suchfeld, um die Anwendung zu suchen, und wählen Sie dann die Anwendung aus.

  7. Klicken Sie auf Auswählen.

Klonen oder Herunterladen der Beispiel-Webanwendung

Um die Beispielanwendung zu erhalten, können Sie sie entweder von GitHub klonen oder als ZIP-Datei herunterladen.

  • Öffnen Sie zum Klonen des Beispiels eine Eingabeaufforderung, navigieren Sie zu der Stelle, an der Sie das Projekt erstellen möchten, und geben Sie den folgenden Befehl ein:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    
  • ZIP-Datei herunterladen. Extrahieren Sie sie an einem Dateipfad, dessen Name weniger als 260 Zeichen umfasst.

Konfigurieren der Anwendung

  1. Navigieren Sie zum Stammordner des heruntergeladenen Beispiels und zum Verzeichnis, das die ASP.NET Core-Beispiel-App enthält:

    cd 1-Authentication\1-sign-in-aspnet-core-mvc
    
  2. Öffnen Sie die Datei appsettings.json.

  3. Suchen Sie in Autorität nach Enter_the_Tenant_Subdomain_Here, und ersetzen Sie den Platzhalter durch die Unterdomäne Ihres Mandanten. Wenn Ihre primäre Mandantendomäne beispielsweise caseyjensen@onmicrosoft.com lautet, müssen Sie den Wert casyjensen eingeben.

  4. Suchen Sie den Wert Enter_the_Application_Id_Here, und ersetzen Sie ihn durch die Anwendungs-ID (clientId) der App, die Sie im Microsoft Entra Admin Center registriert haben.

  5. Ersetzen Sie Enter_the_Client_Secret_Here durch den Wert des geheimen Clientschlüssels, den Sie in geheimer App-Clientschlüssel hinzufügen) eingerichtet haben.

Ausführen des Codebeispiels

  1. Führen Sie die folgenden Befehle über die Shell oder die Befehlszeile aus:

    dotnet run
    
  2. Öffnen Sie Ihren Webbrowser, und navigieren Sie zu https://localhost:7274.

  3. Melden Sie sich mit Konto an, das beim externen Mandanten registriert ist.

  4. Nach der Anmeldung wird der Anzeigename neben der Schaltfläche Abmelden angezeigt, wie im folgenden Screenshot dargestellt.

    Screenshot : Anmeldung bei einer ASP.NET Core-Web-App

  5. Um sich von der Anwendung abzumelden, wählen Sie die Schaltfläche Abmelden aus.

Weitere Informationen