Hinzufügen von AD FS als OpenID Connect-Identitätsanbieter mithilfe von benutzerdefinierten Richtlinien in Azure Active Directory B2C
Vorbereitung: Wählen Sie mithilfe des Selektors Richtlinientyp auswählen den Typ der einzurichtenden Richtlinie aus. 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.
Voraussetzungen
- Erstellen Sie einen Benutzerflow, damit sich Benutzer bei Ihrer Anwendung registrieren und anmelden können.
- Registrieren Sie eine Webanwendung.
- Führen Sie die unter Erste Schritte mit benutzerdefinierten Richtlinien in Active Directory B2C beschriebenen Schritte aus.
- Registrieren Sie eine Webanwendung.
Erstellen einer AD FS-Anwendung
Um Benutzern mit einem AD FS-Konto die Anmeldung bei Azure Active Directory B2C (Azure AD B2C) zu ermöglichen, erstellen Sie eine Anwendungsgruppe in Ihrer AD FS-Instanz. Weitere Informationen finden Sie unter Erstellen einer Webanwendung mithilfe von OpenID Connect mit AD FS 2016 und höher.
Führen Sie die folgenden Schritte aus, um eine Anwendungsgruppe zu erstellen:
- Wählen Sie im Server-Manager zunächst Tools und dann AD FS-Verwaltung aus.
- Klicken Sie in „AD FS-Verwaltung“ mit der rechten Maustaste auf Anwendungsgruppen, und wählen Sie Anwendungsgruppe hinzufügen aus.
- Gehen Sie auf dem Bildschirm Willkommen des Assistenten für Anwendungsgruppen folgendermaßen vor:
- Geben Sie den Namen Ihrer Anwendung ein. Beispiel: Azure AD B2C-Anwendung.
- Wählen Sie unter Client/Server-Anwendungen die Vorlage Webbrowser mit Zugriff auf eine Webanwendung aus.
- Wählen Sie Weiter aus.
- Gehen Sie auf dem Bildschirm Native Anwendung des Assistenten für Anwendungsgruppen folgendermaßen vor:
- Kopieren Sie den Wert für den Clientbezeichner. Der Clientbezeichner ist die Anwendungs-ID Ihrer AD FS-Instanz. Sie benötigen die Anwendungs-ID weiter unten in diesem Artikel.
- Geben Sie
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
in Umleitungs-URI ein, und klicken Sie dann auf Hinzufügen. Bei Verwendung einer benutzerdefinierten Domäne geben Siehttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
ein. Ersetzen Sieyour-tenant-name
durch den Namen Ihres Mandanten undyour-domain-name
durch Ihre benutzerdefinierte Domäne. - Wählen Sie dreimal nacheinander Weiter aus, um den Assistenten für die App-Registrierung abzuschließen.
- Klicken Sie auf Schließen.
Konfigurieren der App-Ansprüche
In diesem Schritt konfigurieren Sie die Ansprüche, die eine AD FS-Anwendung an Azure AD B2C zurückgibt.
Wählen Sie unter Anwendungsgruppen die von Ihnen erstellte Anwendung aus.
Wählen Sie im Fenster mit den Anwendungseigenschaften unter Anwendungen den Eintrag Webanwendung aus. Klicken Sie dann auf Bearbeiten.
Wählen Sie die Registerkarte Ausstellungstransformationsregeln und dann Regel hinzufügen aus.
Wählen Sie in Anspruchsregelvorlage die Option LDAP-Attribute als Ansprüche senden und dann Weiter aus.
Geben Sie einen Anspruchsregelnamen an. Wählen Sie als Attributspeicher die Option Active Directory aus, und fügen Sie die folgenden Ansprüche hinzu.
LDAP-Attribut Typ des ausgehenden Anspruchs Benutzerprinzipalname upn Surname family_name Vorname given_name Anzeigename name Beachten Sie, dass einige dieser Namen in der Dropdownliste der Typen für ausgehende Ansprüche nicht angezeigt werden. Sie müssen sie manuell eingeben (die Dropdownliste kann bearbeitet werden).
Wählen Sie Fertig stellen aus.
Wählen Sie Übernehmen und dann OK aus.
Wählen Sie erneut OK aus, um den Vorgang abzuschließen.
Konfigurieren von AD FS als Identitätsanbieter
Melden Sie sich beim Azure-Portal als globaler Administrator Ihres Azure AD B2C-Mandanten an.
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.
Wählen Sie links oben im Azure-Portal die Option Alle Dienste aus, suchen Sie nach Azure AD B2C, und wählen Sie dann diese Option aus.
Wählen Sie Identitätsanbieter und dann Neuer OpenID Connect-Anbieter aus.
Geben Sie einen Namen ein. Zum Beispiel Contoso.
Geben Sie bei Metadaten-URL die URL des AD FS-OpenID Connect-Konfigurationsdokuments ein. Zum Beispiel:
https://adfs.contoso.com/adfs/.well-known/openid-configuration
Geben Sie für Client-ID die zuvor notierte Anwendungs-ID ein.
Geben Sie für den Bereich das
openid
ein.Wählen Sie als Antworttyp die Option id_token aus. Der Wert des geheimen Clientschlüssels ist also nicht erforderlich. Erfahren Sie mehr über die Verwendung von Client-ID und Geheimnis beim Hinzufügen eines generischen OpenID Connect-Identitätsanbieters.
(Optional) Geben Sie als Domänenhinweis die Zeichenfolge
contoso.com
ein. Weitere Informationen finden Sie unter Einrichten einer direkten Anmeldung mit Azure Active Directory B2C.Wählen Sie unter Zuordnung von Identitätsanbieteransprüchen die folgenden Ansprüche aus:
- Benutzer-ID:
upn
- Anzeigename:
unique_name
- Vorname:
given_name
- Nachname:
family_name
- Benutzer-ID:
Wählen Sie Speichern aus.
Hinzufügen des AD FS-Identitätsanbieters zu einem Benutzerflow
Der AD FS-Identitätsanbieter (Contoso) ist jetzt eingerichtet, aber noch auf keiner der Anmeldeseiten verfügbar. So fügen Sie den AD FS-Identitätsanbieter einem Benutzerflow hinzu:
- Wählen Sie in Ihrem Azure AD B2C-Mandanten die Option Benutzerflows aus.
- Wählen Sie den Benutzerflow aus, dem Sie den AD FS-Identitätsanbieter (Contoso) hinzufügen möchten.
- Wählen Sie unter Soziales Netzwerk als Identitätsanbieter die Option Contoso aus.
- Wählen Sie Speichern aus.
- Um die Richtlinie zu testen, wählen Sie Benutzerflow ausführen aus.
- Wählen Sie für Anwendung die Webanwendung testapp1 aus, die Sie zuvor registriert haben. Als Antwort-URL sollte
https://jwt.ms
angezeigt werden. - Wählen Sie die Schaltfläche Benutzerflow ausführen aus.
- Wählen Sie auf der Registrierungs- oder Anmeldeseite die Option Contoso aus, um sich mit dem Contoso-Konto anzumelden.
Wenn der Anmeldevorgang erfolgreich verlaufen ist, wird der Browser an https://jwt.ms
umgeleitet und dadurch der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt.
Konfigurieren von AD FS als Identitätsanbieter
Damit Benutzer sich mit einem AD FS-Konto anmelden können, müssen Sie die AD FS-Instanz als Anspruchsanbieter definieren, mit dem Azure AD B2C über einen Endpunkt kommunizieren kann.
Öffnen Sie die Datei TrustFrameworkExtensions.xml.
Suchen Sie nach dem Element ClaimsProviders. Falls das Element nicht vorhanden sein sollte, fügen Sie es unter dem Stammelement hinzu.
Fügen Sie ein neues ClaimsProvider-Element wie folgt hinzu:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://your-adfs-domain/adfs/.well-known/openid-configuration</Item> <Item Key="response_types">id_token</Item> <Item Key="response_mode">form_post</Item> <Item Key="scope">openid</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <!-- Update the Client ID below to the Application ID --> <Item Key="client_id">Your AD FS application ID</Item> </Metadata> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="upn" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="unique_name" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Geben Sie bei Metadaten-URL die URL des AD FS-OpenID Connect-Konfigurationsdokuments ein. Zum Beispiel:
https://adfs.contoso.com/adfs/.well-known/openid-configuration
Legen Sie client_id auf die Anwendungs-ID aus der Anwendungsregistrierung fest.
Speichern Sie die Datei .
Hinzufügen einer User Journey
Der Identitätsanbieter wurde nun eingerichtet, aber er ist noch auf keiner der Anmeldeseiten verfügbar. Wenn Sie nicht über eine eigene benutzerdefinierte User Journey verfügen, erstellen Sie ein Duplikat einer vorhandenen User Journey-Vorlage, und fahren Sie andernfalls mit dem nächsten Schritt fort.
- Öffnen Sie die Datei TrustFrameworkBase.xml aus dem Starter Pack.
- Suchen und kopieren Sie den gesamten Inhalt des UserJourney-Elements, das
Id="SignUpOrSignIn"
enthält. - Öffnen Sie die Datei TrustFrameworkExtensions.xml, und suchen Sie nach dem UserJourneys-Element. Wenn das Element nicht vorhanden ist, fügen Sie ein solches hinzu.
- Fügen Sie den gesamten Inhalt des kopierten UserJourney-Element als untergeordnetes Element des UserJourneys-Elements ein.
- Benennen Sie die ID der User Journey um. Beispiel:
Id="CustomSignUpSignIn"
.
Hinzufügen des Identitätsanbieters zu einer User Journey
Nachdem Sie nun über eine User Journey verfügen, fügen Sie den neuen Identitätsanbieter der User Journey hinzu. Fügen Sie zunächst eine Anmeldeschaltfläche hinzu, und verknüpfen Sie dann die Schaltfläche mit einer Aktion. Die Aktion ist das technische Profil, das Sie zuvor erstellt haben.
Suchen Sie nach dem Orchestrierungsschrittelement, das
Type="CombinedSignInAndSignUp"
enthält, oderType="ClaimsProviderSelection"
in der User Journey. Dies ist in der Regel der erste Orchestrierungsschritt. Das ClaimsProviderSelections-Element enthält eine Liste mit Identitätsanbietern, mit denen sich ein Benutzer anmelden kann. Die Reihenfolge der Elemente gibt die Reihenfolge der Anmeldeschaltflächen vor, die dem Benutzer angezeigt werden. Fügen Sie ein ClaimsProviderSelection-XML-Element hinzu. Legen Sie für TargetClaimsExchangeId einen Anzeigenamen fest.Fügen Sie im nächsten Orchestrierungsschritt ein ClaimsExchange-Element hinzu. Legen Sie die ID auf den Wert der Zielanspruchs-Austausch-ID fest. Ändern Sie den Wert von TechnicalProfileReferenceId in die ID des technischen Profils, das Sie zuvor erstellt haben.
Der folgende XML-Code veranschaulicht die ersten beiden Orchestrierungsschritte einer User Journey 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-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Konfigurieren einer Richtlinie für die vertrauende Seite
Die Richtlinie für die vertrauende Seite (z. B. SignUpSignIn.xml) gibt die User Journey an, die Azure AD B2C ausführt. Suchen Sie das DefaultUserJourney-Element in Vertrauende Seite. Aktualisieren Sie ReferenceId auf die ID der User Journey, in der Sie den Identitätsanbieter hinzugefügt haben.
Im folgenden Beispiel wird die ReferenceId für die User Journey CustomSignUpSignIn
auf CustomSignUpSignIn
festgelegt:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Hochladen der benutzerdefinierten Richtlinie
- Melden Sie sich beim Azure-Portal an.
- Wählen Sie auf der Symbolleiste des Portals das Symbol Verzeichnis und Abonnement aus, und wählen Sie dann das Verzeichnis aus, das Ihren Azure AD B2C-Mandanten enthält.
- Suchen Sie im Azure-Portal nach Azure AD B2C, und wählen Sie diese Option dann aus.
- Wählen Sie unter Richtlinien die Option Identity Experience Framework aus.
- Wählen Sie Benutzerdefinierte Richtlinie hochladen aus, und laden Sie dann die beiden geänderten Richtliniendateien in der folgenden Reihenfolge hoch: zuerst die Erweiterungsrichtlinie (z. B.
TrustFrameworkExtensions.xml
) und dann die Richtlinie für die vertrauende Seite (z. B.SignUpSignIn.xml
).
Testen der benutzerdefinierten Richtlinie
- Wählen Sie die Richtliniendatei für die vertrauende Seite aus, z. B.
B2C_1A_signup_signin
. - Wählen Sie für Anwendung eine Webanwendung aus, die Sie zuvor registriert haben. Als Antwort-URL sollte
https://jwt.ms
angezeigt werden. - Wählen Sie die Schaltfläche Jetzt ausführen aus.
- Wählen Sie auf der Registrierungs- oder Anmeldeseite die Option Contoso aus, um sich mit dem Contoso-Konto anzumelden.
Wenn der Anmeldevorgang erfolgreich verlaufen ist, wird der Browser an https://jwt.ms
umgeleitet und dadurch der Inhalt des von Azure AD B2C zurückgegebenen Tokens angezeigt.
Nächste Schritte
Erfahren Sie, wie Sie das AD FS-Token an Ihre Anwendung übergeben.