Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Vanaf 1 mei 2025 is Azure AD B2C niet meer beschikbaar voor nieuwe klanten. Meer informatie vindt u in onze veelgestelde vragen.
Azure Active Directory B2C (Azure AD B2C) ondersteunt federatie met SAML 2.0-id-providers. In dit artikel leest u hoe u aanmelding kunt inschakelen met een gebruikersaccount van de SAML-id-provider, zodat gebruikers zich kunnen aanmelden met hun bestaande sociale of zakelijke identiteiten, zoals ADFS en Salesforce.
Voordat u begint, gebruikt u de selector Een beleidstype kiezen boven aan deze pagina om het type beleid te kiezen dat u instelt. U kunt in Azure Active Directory B2C op twee manieren definiëren hoe gebruikers met uw toepassingen communiceren: via vooraf gedefinieerde gebruikersstromen of via volledig configureerbaar aangepast beleid. De stappen die in dit artikel zijn vereist, verschillen voor elke methode.
Deze functie is alleen beschikbaar voor aangepast beleid. Voor installatiestappen selecteert u Aangepast beleid in de voorgaande selector.
Overzicht van scenario
U kunt Azure AD B2C configureren om gebruikers toe te staan zich aan te melden bij uw applicatie met referenties van externe sociale of zakelijke SAML-id-providers (IdP). Wanneer Azure AD B2C federatief is met een SAML-id-provider, fungeert deze als serviceprovider die een SAML-aanvraag initieert bij de SAML-id-provider en wacht op een SAML-antwoord. In het volgende diagram:
- De toepassing initieert een autorisatieaanvraag voor Azure AD B2C. De toepassing kan een OAuth 2.0 - of OpenId Connect-toepassing of een SAML-serviceprovider zijn.
- Op de aanmeldingspagina van Azure AD B2C kiest de gebruiker ervoor om zich aan te melden met een SAML-id-provideraccount (bijvoorbeeld Contoso). Azure AD B2C initieert een SAML-autorisatieaanvraag en brengt de gebruiker naar de SAML-id-provider om de aanmelding te voltooien.
- De SAML-id-provider retourneert een SAML-antwoord.
- Azure AD B2C valideert het SAML-token, extraheert claims, geeft een eigen token uit en brengt de gebruiker terug naar de toepassing.
Vereiste voorwaarden
- Voltooi de stappen in Aan de slag met aangepaste policies in Active Directory B2C. In deze zelfstudie leert u hoe u aangepaste beleidsbestanden bijwerkt voor het gebruik van uw Azure AD B2C-tenantconfiguratie.
- Als u geen web-app hebt geregistreerd, registreert u er een met behulp van de stappen in het registreren van een webtoepassing.
Onderdelen van de oplossing
De volgende onderdelen zijn vereist voor dit scenario:
- Een SAML-id-provider met de mogelijkheid om SAML-aanvragen van Azure AD B2C te ontvangen, decoderen en erop te reageren.
- Een openbaar beschikbaar SAML-metagegevenseindpunt voor uw id-provider.
- Een Azure AD B2C-tenant.
Belangrijk
Uw eindpunten moeten voldoen aan de beveiligingsvereisten van Azure AD B2C. Oudere TLS-versies en coderingen zijn afgeschaft. Zie vereisten voor Azure AD B2C TLS en coderingssuites voor meer informatie.
Een beleidssleutel maken
Als u een vertrouwensrelatie tot stand wilt brengen tussen Azure AD B2C en uw SAML-id-provider, moet u een geldig X509-certificaat opgeven met de persoonlijke sleutel. Azure AD B2C ondertekent de SAML-aanvragen met behulp van de persoonlijke sleutel van het certificaat. De id-provider valideert de aanvraag met behulp van de openbare sleutel van het certificaat. De openbare sleutel is toegankelijk via metagegevens van technische profielen. U kunt het .cer-bestand ook handmatig uploaden naar uw SAML-id-provider.
Een zelfondertekend certificaat is acceptabel voor de meeste scenario's. Voor productieomgevingen is het raadzaam om een X509-certificaat te gebruiken dat is uitgegeven door een certificeringsinstantie. Zoals verderop in dit document wordt beschreven, kunt u de SAML-ondertekening aan beide zijden uitschakelen voor een niet-productieomgeving.
Een certificaat verkrijgen
Als u nog geen certificaat hebt, kunt u een zelfondertekend certificaat gebruiken. Een zelfondertekend certificaat is een beveiligingscertificaat dat niet is ondertekend door een certificeringsinstantie (CA) en geen beveiligingsgaranties biedt van een certificaat dat is ondertekend door een CA.
Gebruik in Windows de cmdlet New-SelfSignedCertificate in PowerShell om een certificaat te genereren.
Voer de volgende PowerShell-opdracht uit om een zelfondertekend certificaat te genereren. Wijzig indien van toepassing het argument
-Subject
voor uw toepassing en de Azure AD B2C-tenantnaam, zoalscontosowebapp.contoso.onmicrosoft.com
. U kunt ook de-NotAfter
-datum aanpassen om een andere vervaldatum voor het certificaat op te geven.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"
Ga op een Windows-computer naar Gebruikerscertificaten beheren en selecteer dit
Selecteer onder Certificaten - huidige gebruiker de optie Persoonlijk>Certificaten>yourappname.yourtenant.onmicrosoft.com.
Selecteer het certificaat en vervolgens Actie>Alle taken>Exporteren.
Selecteer Volgende>Ja, exporteer de persoonlijke sleutel>Volgende.
Accepteer de standaardwaarden voor Exportbestandsindeling en selecteer vervolgens Volgende.
Schakel de optie Wachtwoord in, voer een wachtwoord in voor het certificaat en selecteer vervolgens Volgende.
Als u een locatie wilt opgeven om uw certificaat in op te slaan, selecteert u Bladeren en navigeert u naar de gewenste map.
Voer in het venster Opslaan als een bestandsnaam in en selecteer vervolgens Opslaan.
Selecteer Volgende>Voltooien.
Azure AD B2C accepteert alleen het PFX-bestandswachtwoord als het wachtwoord is versleuteld met de TripleDES-SHA1-optie in het hulpprogramma voor het exporteren vanuit het Windows-certificaatarchief, in plaats van AES256-SHA256.
Het certificaat uploaden
U moet uw certificaat opslaan in uw Azure AD B2C-tenant.
- Meld u aan bij het Azure-portaal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
- Kies Alle services in de linkerbovenhoek van de Azure Portal en zoek naar en selecteer Azure AD B2C.
- Selecteer Identity Experience Framework op de pagina Overzicht.
- Selecteer Beleidssleutels en selecteer vervolgens Toevoegen.
- Kies voor Opties de optie
Upload
. - Voer een naam in voor de beleidssleutel. Bijvoorbeeld:
SAMLSigningCert
. Het voorvoegselB2C_1A_
wordt automatisch toegevoegd aan de naam van uw sleutel. - Blader naar en selecteer het PFX-bestand van uw certificaat met de persoonlijke sleutel.
- Klik op Create.
Het technische SAML-profiel configureren
Definieer de SAML-id-provider door deze toe te voegen aan het element ClaimsProviders in het extensiebestand van uw beleid. De claimproviders bevatten een technisch SAML-profiel waarmee de eindpunten en de protocollen worden bepaald die nodig zijn om te communiceren met de SAML-id-provider. Een claimsprovider toevoegen met een SAML-technisch profiel.
Open de TrustFrameworkExtensions.xml.
Zoek het element ClaimsProviders . Als deze niet bestaat, voegt u deze toe onder het hoofdelement.
Voeg als volgt een nieuwe ClaimsProvider toe:
<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>
Werk de volgende XML-elementen bij met de relevante waarde:
XML-element | Waarde |
---|---|
ClaimsProvider\Domein | De domeinnaam die wordt gebruikt voor directe aanmelding. Voer de domeinnaam in die u wilt gebruiken in de directe aanmelding. Bijvoorbeeld Contoso.com. |
TechnicalProfile\DisplayName | Deze waarde wordt weergegeven op de aanmeldingsknop op het aanmeldingsscherm. Bijvoorbeeld Contoso. |
Metagegevens\PartnerEntity | URL van de metagegevens van de SAML-id-provider. U kunt ook de metagegevens van de id-provider kopiëren en toevoegen in het CDATA-element <![CDATA[Your IDP metadata]]> . |
De claims in kaart brengen
Het element OutputClaims bevat een lijst met claims die worden geretourneerd door de SAML-id-provider. Wijs de naam van de claim die in uw beleid is gedefinieerd toe aan de naam van de assertie die is gedefinieerd in de id-provider. Controleer uw id-provider voor de lijst met claims (asserties). Zie claims-mapping voor meer informatie.
In het bovenstaande voorbeeld bevat Contoso-SAML2 de claims die worden geretourneerd door een SAML-id-provider:
- De claim assertionSubjectName wordt toegewezen aan de claim issuerUserId.
- De voornaam-eigenschap is gemapt naar de gegevenNaam-eigenschap.
- De last_name claim wordt toegewezen aan de achternaam claim.
- De
http://schemas.microsoft.com/identity/claims/displayname
claim is gemapt op de displayName claim. - De e-mail claim zonder naamtoewijzing.
Het technische profiel retourneert ook claims die niet worden geretourneerd door de id-provider:
- De identityProvider-claim die de naam van de id-provider bevat.
- De authenticationSource-claim met een standaardwaarde van socialIdpAuthentication.
Het technische profiel van de SAML-sessie toevoegen
Als u het technische profiel van de SM-Saml-idp
SAML-sessie nog niet hebt, voegt u er een toe aan uw extensiebeleid. Zoek de <ClaimsProviders>
sectie en voeg het volgende XML-fragment toe. Als uw beleid al het SM-Saml-idp
technische profiel bevat, gaat u verder met de volgende stap. Zie Sessiebeheer voor eenmalige aanmelding voor meer informatie.
<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>
Een gebruikerstraject toevoegen
Op dit moment is de id-provider ingesteld, maar deze is nog niet beschikbaar op een van de aanmeldingspagina's. Als u geen eigen aangepast gebruikerstraject hebt, maakt u een duplicaat van een bestaand sjabloongebruikerstraject. Ga anders verder met de volgende stap.
- Open het bestandTrustFrameworkBase.xml vanuit het starterspakket.
- Zoek en kopieer de volledige inhoud van het UserJourney-element waarin
Id="SignUpOrSignIn"
voorkomt. - Open de TrustFrameworkExtensions.xml en zoek het element UserJourneys . Als het element niet bestaat, voegt u er een toe.
- Plak de volledige inhoud van het UserJourney-element dat u hebt gekopieerd als een kind van het element UserJourneys .
- Wijzig de naam van de ID van de gebruikersreis. Bijvoorbeeld:
Id="CustomSignUpSignIn"
.
De id-provider toevoegen aan een gebruikerstraject
Nu u een gebruikerstraject hebt, voegt u de nieuwe id-provider toe aan het gebruikerstraject. U voegt eerst een aanmeldingsknop toe en koppelt vervolgens de knop aan een actie. Het technische profiel dat u eerder hebt gedefinieerd is de actie.
Zoek het orkestratiestap-element dat
Type="CombinedSignInAndSignUp"
ofType="ClaimsProviderSelection"
bevat in de gebruiksreis. Dit is meestal de eerste orkestratiestap. Het element ClaimsProviderSelections bevat een lijst met id-providers waarmee een gebruiker zich kan aanmelden. De volgorde van de elementen bepaalt de volgorde van de aan de gebruiker gepresenteerde aanmeldingsknoppen. Voeg een XML-element ClaimsProviderSelection toe. Stel de waarde van TargetClaimsExchangeId in op een vriendelijke naam.Voeg in de volgende orkestratiestap een ClaimsExchange-element toe. Stel de id in op de waarde van de exchange-id van de doelclaims. Werk de waarde van TechnicalProfileReferenceId bij naar de id van het technische profiel dat u eerder hebt gemaakt.
In de volgende XML ziet u de eerste twee indelingsstappen van een gebruikerstraject met de id-provider:
<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>
Het vertrouwende partij-beleid configureren
Het relying party-beleid, bijvoorbeeld SignUpSignIn.xml, geeft het gebruikerstraject op dat Door Azure AD B2C wordt uitgevoerd. Zoek het element DefaultUserJourney in relying party. Werk de ReferenceId bij zodat deze overeenkomt met de ID van de gebruikersreis, waarin u de identity provider hebt toegevoegd.
In het volgende voorbeeld is de CustomSignUpSignIn
voor het gebruikerstraject ingesteld opCustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Het aangepaste beleid uploaden
- Meld u aan bij het Azure-portaal.
- Selecteer het pictogram Directory + Abonnement in de portalwerkbalk en selecteer vervolgens de map die uw Azure AD B2C-tenant bevat.
- Zoek en selecteer Azure AD B2C in de Azure-portal.
- Selecteer onder Beleidde optie Identity Experience Framework.
- Selecteer Aangepast beleid uploaden en upload vervolgens de twee beleidsbestanden die u hebt gewijzigd, in de volgende volgorde: het extensiebeleid, bijvoorbeeld
TrustFrameworkExtensions.xml
, en vervolgens het relying party-beleid, zoalsSignUpSignIn.xml
.
Uw SAML-id-provider configureren
Nadat uw beleid is geconfigureerd, moet u uw SAML-id-provider configureren met de Azure AD B2C SAML-metagegevens. De SAML-metagegevens zijn informatie die wordt gebruikt in het SAML-protocol om de configuratie van uw beleid, de serviceprovider, beschikbaar te maken. Hiermee definieert u de locatie van de services, zoals aanmelden en afmelden, certificaten, aanmeldingsmethode en meer.
Elke SAML-id-provider heeft verschillende stappen voor het instellen van een serviceprovider. Sommige SAML-id-providers vragen om de Azure AD B2C-metagegevens, terwijl andere vereisen dat u het metagegevensbestand handmatig doorloopt en de informatie opgeeft. Raadpleeg de documentatie van uw id-provider voor hulp.
In het volgende voorbeeld ziet u een URL-adres voor de SAML-metagegevens van een technisch azure AD B2C-profiel:
https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Wanneer u een aangepast domein gebruikt, gebruikt u de volgende indeling:
https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Vervang de volgende waarden:
- uw tenantnaam met uw eigen tenantnaam, zoals your-tenant.onmicrosoft.com.
- uw domeinnaam met uw aangepaste domeinnaam, zoals login.contoso.com.
- uw beleid met uw beleidsnaam. Bijvoorbeeld B2C_1A_signup_signin_adfs.
- uw technische profiel met de naam van het technische profiel van uw SAML-id-provider. Bijvoorbeeld Contoso-SAML2.
Open een browser en navigeer naar de URL. Zorg ervoor dat u de juiste URL typt en dat u toegang hebt tot het XML-metagegevensbestand.
Uw aangepaste beleid testen
- Meld u aan bij het Azure-portaal.
- Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het hoofdmenu om over te schakelen naar uw Azure AD B2C-tenant vanuit het menu Mappen + abonnementen.
- Zoek en selecteer Azure AD B2C in de Azure-portal.
- Onder Beleid selecteert u Identity Experience Framework
- Selecteer uw relying party-beleid, bijvoorbeeld
B2C_1A_signup_signin
. - Selecteer voor Toepassing een webtoepassing die u eerder hebt geregistreerd. De antwoord-URL moet
https://jwt.ms
weergeven. - Selecteer de knop Nu uitvoeren .
- Selecteer Op de registratie- of aanmeldingspagina Contoso om u aan te melden met het Contoso-account.
Als het aanmeldingsproces is geslaagd, wordt uw browser omgeleid naar https://jwt.ms
, waarin de inhoud van het token wordt weergegeven dat wordt geretourneerd door Azure AD B2C.