Freigeben über


Einrichten der Registrierung und Anmeldung mit SAML-Identitätsanbietern mithilfe von Azure Active Directory B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

Azure Active Directory B2C (Azure AD B2C) unterstützt den Partnerverbund mit SAML 2.0-Identitätsanbietern. In diesem Artikel wird erläutert, wie Sie die Anmeldung mit einem SAML-Identitätsanbieterbenutzerkonto aktivieren, sodass sich Benutzer mit ihren vorhandenen sozialen oder Unternehmensidentitäten wie ADFS und Salesforce anmelden können.

Bevor Sie beginnen, verwenden Sie die Auswahl eines Richtlinientyps oben auf dieser Seite, um den Typ der Richtlinie auszuwählen, die Sie einrichten. Azure Active Directory B2C bietet zwei Methoden zum Definieren der Benutzerinteraktion mit Ihren Anwendungen: vordefinierte Benutzerflows oder vollständig konfigurierbare benutzerdefinierte Richtlinien. Die Schritte, die in diesem Artikel erforderlich sind, unterscheiden sich für jede Methode.

Dieses Feature ist nur für benutzerdefinierte Richtlinien verfügbar. Wählen Sie für Setupschritte im vorherigen Selektor die Option "Benutzerdefinierte Richtlinie " aus.

Beschreibung des Szenarios

Sie können Azure AD B2C so konfigurieren, dass Benutzende sich mit Anmeldeinformationen von externen SAML-Identitätsanbietern für soziale Netzwerke oder Unternehmen bei Ihrer Anwendung anmelden können. Wenn Azure AD B2C mit einem SAML-Identitätsanbieter föderiert, fungiert es als Dienstanbieter, der eine SAML-Anforderung an den SAML-Identitätsanbieter initiiert und auf eine SAML-Antwort wartet. Im folgenden Diagramm:

  1. Die Anwendung initiiert eine Autorisierungsanforderung für Azure AD B2C. Die Anwendung kann eine OAuth 2.0 - oder OpenId Connect-Anwendung oder ein SAML-Dienstanbieter sein.
  2. Auf der Azure AD B2C-Anmeldeseite wählt der Benutzer die Anmeldung mit einem SAML-Identitätsanbieterkonto (z. B. Contoso) aus. Azure AD B2C initiiert eine SAML-Autorisierungsanforderung und leitet den Benutzer zum SAML-Identitätsanbieter, um die Anmeldung abzuschließen.
  3. Der SAML-Identitätsanbieter gibt eine SAML-Antwort zurück.
  4. Azure AD B2C überprüft das SAML-Token, extrahiert Ansprüche, stellt ein eigenes Token aus und führt den Benutzer zurück zur Anwendung.

Anmelden mit dem SAML-Identitätsanbieter-Flow

Voraussetzungen

Komponenten der Lösung

Für dieses Szenario sind die folgenden Komponenten erforderlich:

  • Ein SAML-Identitätsanbieter mit der Möglichkeit zum Empfangen, Decodieren und Beantworten von SAML-Anforderungen von Azure AD B2C.
  • Ein öffentlich verfügbarer SAML-Metadatenendpunkt für Ihren Identitätsanbieter.
  • Einen Azure AD B2C-Mandanten.

Von Bedeutung

Ihre Endpunkte müssen die Azure AD B2C-Sicherheitsanforderungen erfüllen. Ältere TLS-Versionen und Verschlüsselungen sind veraltet. Weitere Informationen finden Sie unter Azure AD B2C TLS- und Verschlüsselungssuiteanforderungen.

Richtlinienschlüssel erstellen

Um eine Vertrauensstellung zwischen Azure AD B2C und Ihrem SAML-Identitätsanbieter herzustellen, müssen Sie ein gültiges X509-Zertifikat mit dem privaten Schlüssel bereitstellen. Azure AD B2C signiert die SAML-Anforderungen mithilfe des privaten Schlüssels des Zertifikats. Der Identitätsanbieter überprüft die Anforderung mithilfe des öffentlichen Schlüssels des Zertifikats. Auf den öffentlichen Schlüssel kann über technische Profilmetadaten zugegriffen werden. Alternativ können Sie die .cer Datei manuell in Ihren SAML-Identitätsanbieter hochladen.

Ein selbstsigniertes Zertifikat ist für die meisten Szenarien akzeptabel. Für Produktionsumgebungen wird empfohlen, ein X509-Zertifikat zu verwenden, das von einer Zertifizierungsstelle ausgestellt wird. Wie weiter unten in diesem Dokument beschrieben, können Sie die SAML-Signatur auch für eine Nichtproduktionsumgebung auf beiden Seiten deaktivieren.

Beschaffung eines Zertifikats

Wenn Sie noch nicht über ein Zertifikat verfügen, können Sie ein selbstsigniertes Zertifikat verwenden. Ein selbstsigniertes Zertifikat ist ein Sicherheitszertifikat, das nicht von einer Zertifizierungsstelle (ZS) signiert ist und nicht die Sicherheitsgarantien eines Zertifikats bietet, das von einer Zertifizierungsstelle signiert wurde.

Verwenden Sie unter Windows das Cmdlet New-SelfSignedCertificate in PowerShell, um ein Zertifikat zu generieren.

  1. Führen Sie den folgenden PowerShell-Befehl aus, um ein selbstsigniertes Zertifikat zu generieren. Ändern Sie das Argument -Subject entsprechend Ihrer Anwendung und dem Azure AD B2C-Mandantennamen, z. B. contosowebapp.contoso.onmicrosoft.com. Sie können auch das -NotAfter-Datum anpassen, um einen anderen Ablaufzeitpunkt für das Zertifikat anzugeben.

    New-SelfSignedCertificate `
        -KeyExportPolicy Exportable `
        -Subject "CN=yourappname.yourtenant.onmicrosoft.com" `
        -KeyAlgorithm RSA `
        -KeyLength 2048 `
        -KeyUsage DigitalSignature `
        -NotAfter (Get-Date).AddMonths(12) `
        -CertStoreLocation "Cert:\CurrentUser\My"
    
  2. Suchen sie auf Windows-Computern nach Benutzerzertifikaten, und wählen Sie "Benutzerzertifikate verwalten" aus.

  3. Wählen Sie unter Zertifikate – Aktueller BenutzerPersönliche>Zertifikate>yourappname.yourtenant.onmicrosoft.com aus.

  4. Wählen Sie das Zertifikat aus und dann Aktion>Alle Aufgaben>Exportieren.

  5. Wählen Sie "Weiter> Ja" aus, exportieren Sie den privaten Schlüssel>"Weiter".

  6. Übernehmen Sie die Standardwerte für das Exportdateiformat, und wählen Sie dann "Weiter" aus.

  7. Option "Kennwort aktivieren", geben Sie ein Kennwort für das Zertifikat ein, und wählen Sie dann "Weiter" aus.

  8. Wenn Sie einen Speicherort angeben möchten, an dem Ihr Zertifikat gespeichert werden soll, wählen Sie " Durchsuchen" aus, und navigieren Sie zu einem Verzeichnis Ihrer Wahl.

  9. Geben Sie im Fenster "Speichern unter " einen Dateinamen ein, und wählen Sie dann " Speichern" aus.

  10. Wählen Sie "Nächstes>Ende" aus.

Damit das Kennwort für die PFX-Datei in Azure AD B2C akzeptiert wird, muss es statt mit „AES256-SHA256“ mit der Option „TripleDES-SHA1“ im Exporthilfsprogramm des Windows-Zertifikatspeichers verschlüsselt werden.

Hochladen des Zertifikats

Sie müssen Ihr Zertifikat in Ihrem Azure AD B2C-Mandanten speichern.

  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 aus, um über das Menü Verzeichnisse + Abonnements zu Ihrem Azure AD B2C-Mandanten zu wechseln.
  3. Wählen Sie "Alle Dienste " in der oberen linken Ecke des Azure-Portals aus, und suchen Sie dann nach Azure AD B2C, und wählen Sie sie aus.
  4. Wählen Sie auf der Seite "Übersicht" die Option "Identity Experience Framework" aus.
  5. Wählen Sie "Richtlinienschlüssel" und dann "Hinzufügen" aus.
  6. Wählen Sie unter "Optionen" die Option Uploadaus.
  7. Geben Sie einen Namen für den Richtlinienschlüssel ein. Beispiel: SAMLSigningCert. Das Präfix B2C_1A_ wird automatisch dem Namen Des Schlüssels hinzugefügt.
  8. Navigieren Sie mit dem privaten Schlüssel zu Ihrer PFX-Zertifikatdatei, und wählen Sie sie aus.
  9. Klicken Sie auf "Erstellen".

Konfigurieren des technischen SAML-Profils

Definieren Sie den SAML-Identitätsanbieter, indem Sie ihn dem ClaimsProviders-Element in der Erweiterungsdatei Ihrer Richtlinie hinzufügen. Die Anspruchsanbieter enthalten ein technisches SAML-Profil, das die Endpunkte und die Protokolle bestimmt, die für die Kommunikation mit dem SAML-Identitätsanbieter erforderlich sind. So fügen Sie einen Anspruchsanbieter mit einem technischen SAML-Profil hinzu:

  1. Öffnen Sie die Datei TrustFrameworkExtensions.xml.

  2. Suchen Sie das ClaimsProviders-Element . Wenn sie nicht vorhanden ist, fügen Sie es unter dem Stammelement hinzu.

  3. Fügen Sie einen neuen ClaimsProvider wie folgt hinzu:

    <ClaimsProvider>
      <Domain>Contoso.com</Domain>
      <DisplayName>Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-SAML2">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your SAML identity provider account</Description>
          <Protocol Name="SAML2"/>
          <Metadata>
            <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/>
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" />
            <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" />
            <OutputClaim ClaimTypeReferenceId="email"  />
            <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

Aktualisieren Sie die folgenden XML-Elemente mit dem relevanten Wert:

XML-Element Wert
ClaimsProvider\Domäne Der Domänenname, der für die direkte Anmeldung verwendet wird. Geben Sie den Domänennamen ein, den Sie in der direkten Anmeldung verwenden möchten. Beispiel: Contoso.com.
TechnicalProfile\Anzeigename Dieser Wert wird auf der Anmeldeschaltfläche auf dem Anmeldebildschirm angezeigt. Beispiel: Contoso.
Metadaten\PartnerEntity URL der Metadaten des SAML-Identitätsanbieters. Alternativ können Sie die Metadaten des Identitätsanbieters kopieren und innerhalb des CDATA-Elements <![CDATA[Your IDP metadata]]>hinzufügen.

Zuordnen der Ansprüche

Das OutputClaims-Element enthält eine Liste der Ansprüche, die vom SAML-Identitätsanbieter zurückgegeben werden. Ordnen Sie den Namen des in Ihrer Richtlinie definierten Anspruchs dem Namen der Assertion zu, die für den Identitätsanbieter definiert wurde. Überprüfen Sie Ihren Identitätsanbieter auf die Liste der Ansprüche (Assertionen). Weitere Informationen finden Sie unter Anspruchszuordnung.

Im obigen Beispiel enthält Contoso-SAML2 die ansprüche, die von einem SAML-Identitätsanbieter zurückgegeben werden:

  • Der AssertionSubjectName-Anspruch wird dem issuerUserId-Anspruch zugeordnet.
  • Der first_name Anspruch wird dem GivenName-Anspruch zugeordnet.
  • Der Anspruch last_name wird dem Nachnamenanspruch zugeordnet.
  • Der http://schemas.microsoft.com/identity/claims/displayname Anspruch wird dem displayName-Anspruch zugeordnet.
  • Dem Anspruch email wird kein Name zugeordnet.

Das technische Profil gibt auch Ansprüche zurück, die vom Identitätsanbieter nicht zurückgegeben werden:

  • Der Identitätsanbieteranspruch , der den Namen des Identitätsanbieters enthält.
  • Der Anspruch authenticationSource enthält als Standardwert socialIdpAuthentication.

Hinzufügen des technischen Profils der SAML-Sitzung

Wenn Sie noch nicht über das technische Profil der SM-Saml-idp SAML-Sitzung verfügen, fügen Sie eins zu Ihrer Erweiterungsrichtlinie hinzu. Suchen Sie den <ClaimsProviders> Abschnitt, und fügen Sie den folgenden XML-Codeausschnitt hinzu. Wenn Ihre Richtlinie bereits das SM-Saml-idp technische Profil enthält, fahren Sie mit dem nächsten Schritt fort. Weitere Informationen finden Sie unter Sitzungsverwaltung für einmaliges Anmelden.

<ClaimsProvider>
  <DisplayName>Session Management</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="SM-Saml-idp">
      <DisplayName>Session Management Provider</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="IncludeSessionIndex">false</Item>
        <Item Key="RegisterServiceProviders">false</Item>
      </Metadata>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Hinzufügen einer Benutzerreise

Zum jetzigen Zeitpunkt wurde der Identitätsanbieter eingerichtet, ist aber noch nicht auf einer der Anmeldeseiten verfügbar. Wenn Sie nicht über eine eigene benutzerdefinierte Benutzerreise verfügen, erstellen Sie ein Duplikat einer vorhandenen Benutzerreise für Vorlagen, andernfalls fahren Sie mit dem nächsten Schritt fort.

  1. Öffnen Sie die TrustFrameworkBase.xml Datei aus dem Startpaket.
  2. Suchen und kopieren Sie den gesamten Inhalt des UserJourney-Elements, das Id="SignUpOrSignIn" enthält.
  3. Öffnen Sie TrustFrameworkExtensions.xml und finden Sie das UserJourneys-Element. Wenn das Element nicht vorhanden ist, fügen Sie eins hinzu.
  4. Fügen Sie den gesamten Inhalt des UserJourney-Elements ein, das Sie als untergeordnetes Element des UserJourneys-Elements kopiert haben .
  5. Benennen Sie die ID der User Journey um. Beispiel: Id="CustomSignUpSignIn".

Fügen Sie den Identitätsanbieter zu einem Benutzerablauf hinzu

Nachdem Sie nun über eine Benutzerreise verfügen, fügen Sie den neuen Identitätsanbieter zur Benutzerreise hinzu. Sie fügen zuerst eine Anmeldeschaltfläche hinzu und verknüpfen dann die Schaltfläche mit einer Aktion. Die Aktion ist das technische Profil, das Sie zuvor erstellt haben.

  1. Suchen Sie nach dem Orchestrierungsschrittelement, das Type="CombinedSignInAndSignUp" enthält, oder Type="ClaimsProviderSelection" in der User Journey. Es ist in der Regel der erste Orchestrierungsschritt. Das ClaimsProviderSelections-Element enthält eine Liste von Identitätsanbietern, mit denen sich ein Benutzer anmelden kann. Die Reihenfolge der Elemente steuert die Reihenfolge der Anmeldeschaltflächen, die dem Benutzer angezeigt werden. Fügen Sie ein ClaimsProviderSelection-XML-Element hinzu. Legen Sie den Wert von TargetClaimsExchangeId auf einen benutzerfreundlichen Namen fest.

  2. Fügen Sie im nächsten Orchestrierungsschritt ein ClaimsExchange-Element hinzu. Legen Sie die ID auf den Wert der Zielansprücheaustausch-ID fest. Aktualisieren Sie den Wert von TechnicalProfileReferenceId auf die ID des zuvor erstellten technischen Profils.

Der folgende XML-Code veranschaulicht die ersten beiden Orchestrierungsschritte einer Benutzerreise mit dem Identitätsanbieter:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-SAML2" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurieren einer Richtlinie für die vertrauende Seite

Die Richtlinie der vertrauenden Seite, z. B. SignUpSignIn.xml, gibt die Benutzerreise an, die Azure AD B2C ausführt. Suchen Sie das DefaultUserJourney-Element in Vertrauende Seite. Aktualisieren Sie die ReferenceId so, dass sie mit der Benutzerreise-ID übereinstimmt, in der Sie den Identitätsanbieter hinzugefügt haben.

Im folgenden Beispiel wird für den CustomSignUpSignIn Benutzerablauf die ReferenceId auf CustomSignUpSignIn festgelegt.

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Hochladen der benutzerdefinierten Richtlinie

  1. Melden Sie sich beim Azure-Portal an.
  2. Wählen Sie auf der Portalsymbolleiste das Symbol "Verzeichnis + Abonnement " und dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.
  3. Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
  4. Wählen Sie unter "Richtlinien" die Option "Identity Experience Framework" aus.
  5. Wählen Sie "Benutzerdefinierte Richtlinie hochladen" aus, und laden Sie dann die beiden geänderten Richtliniendateien in der folgenden Reihenfolge hoch: die Erweiterungsrichtlinie, z.B. TrustFrameworkExtensions.xml, dann die Richtlinie der vertrauenden Seite, z.B. SignUpSignIn.xml.

Konfigurieren Ihres SAML-Identitätsanbieters

Nachdem Ihre Richtlinie konfiguriert wurde, müssen Sie Ihren SAML-Identitätsanbieter mit den Azure AD B2C SAML-Metadaten konfigurieren. Die SAML-Metadaten sind Informationen, die im SAML-Protokoll verwendet werden, um die Konfiguration Ihrer Richtlinie, des Dienstanbieters, verfügbar zu machen. Er definiert den Speicherort der Dienste, z. B. Anmeldung und Abmelden, Zertifikate, Anmeldemethoden und vieles mehr.

Jeder SAML-Identitätsanbieter verfügt über unterschiedliche Schritte zum Festlegen eines Dienstanbieters. Einige SAML-Identitätsanbieter fragen nach den Azure AD B2C-Metadaten, während andere erfordern, dass Sie die Metadatendatei manuell durchlaufen und die Informationen bereitstellen. Eine Anleitung finden Sie in der Dokumentation Ihres Identitätsanbieters.

Das folgende Beispiel zeigt eine URL-Adresse für die SAML-Metadaten eines technischen Azure AD B2C-Profils:

https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Wenn Sie eine benutzerdefinierte Domäne verwenden, verwenden Sie das folgende Format:

https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>

Ersetzen Sie die folgenden Werte:

  • your-tenant-name durch den Namen Ihres Mandanten, z. B. Ihr-Mandant.onmicrosoft.com.
  • Ihr Domänenname mit Ihrem benutzerdefinierten Domänennamen, z. B. login.contoso.com.
  • Ihre Richtlinie mit Ihrem Richtliniennamen. Beispiel: B2C_1A_signup_signin_adfs.
  • Ihr technisches Profil mit dem Namen Ihres SAML-Identitätsanbieters. Beispiel: Contoso-SAML2.

Öffnen Sie einen Browser, und navigieren Sie zur URL. Stellen Sie sicher, dass Sie die richtige URL eingeben und zugriff auf die XML-Metadatendatei haben.

Testen der benutzerdefinierten Richtlinie

  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 aus, 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 unter "Richtlinien" die Option "Identity Experience Framework" aus.
  5. Wählen Sie die Richtliniendatei für die vertrauende Seite aus, z. B. B2C_1A_signup_signin.
  6. Wählen Sie für "Anwendung" eine Webanwendung aus, die Sie zuvor registriert haben. Als Antwort-URL sollte https://jwt.ms angezeigt werden.
  7. Wählen Sie die Schaltfläche " Jetzt ausführen " aus.
  8. Wählen Sie auf der Registrierungs- oder Anmeldeseite Contoso aus, um sich mit dem Contoso-Konto anzumelden.

Wenn der Anmeldevorgang erfolgreich ist, wird Ihr Browser zu https://jwt.ms umgeleitet, wo der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt wird.

Nächste Schritte