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.
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.
Opmerking
In Azure Active Directory B2C is aangepast beleid voornamelijk bedoeld om met complexe scenario's om te gaan. Voor de meeste scenario's wordt aangeraden ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.
Vereiste voorwaarden
- Maak een gebruikersstroom, zodat gebruikers zich bij uw toepassing kunnen registreren en aanmelden.
- Registreer een web-app.
- 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.
- Registreer een web-app.
Een LinkedIn-applicatie maken
Als u aanmelding wilt inschakelen voor gebruikers met een LinkedIn-account in Azure Active Directory B2C (Azure AD B2C), moet u een toepassing maken op de LinkedIn Developers-website. Als je nog geen LinkedIn-account hebt, kun je je aanmelden op https://www.linkedin.com/.
- Meld u aan bij de LinkedIn Developers-website met de gegevens van uw LinkedIn-account.
- Selecteer Mijn apps en klik vervolgens op App maken.
- Voer de app-naam, de LinkedIn-pagina, de URL van het privacybeleid en het app-logo in.
- Ga akkoord met de gebruiksvoorwaarden van de LinkedIn API en klik op App maken.
- Selecteer het tabblad Verificatie . Kopieer onder Verificatiesleutels de waarden voor Client-ID en Clientgeheim. Je hebt ze allebei nodig om LinkedIn te configureren als een identiteitsprovider in je tenant. Client Secret is een belangrijke beveiligingsreferentie.
- Selecteer het bewerkingspotlood naast Geautoriseerde omleidings-URL's voor uw app en selecteer vervolgens Omleidings-URL toevoegen. Voer
https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp
in. Als u een aangepast domein gebruikt, voert u het volgende inhttps://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
. Vervangyour-tenant-name
door de naam van uw tenant enyour-domain-name
door uw aangepaste domein. U moet alle kleine letters gebruiken bij het invoeren van uw tenantnaam, zelfs als de tenant is gedefinieerd met hoofdletters in Azure AD B2C. Kies Bijwerken. - Uw LinkedIn-app is standaard niet goedgekeurd voor scopes die verband houden met inloggen. Als u een beoordeling wilt aanvragen, selecteert u het tabblad Producten en selecteert u vervolgens Aanmelden met LinkedIn met behulp van OpenID Connect. Wanneer de beoordeling is voltooid, worden de vereiste scopes aan uw aanvraag toegevoegd.
Opmerking
U kunt de bereiken bekijken die momenteel zijn toegestaan voor uw app op het tabblad Verificatie in de sectie OAuth 2.0-bereiken .
LinkedIn configureren als identiteitsprovider
- Meld u aan bij Azure Portal met een account met ten minste beheerdersbevoegdheden voor externe id-providers .
- 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.
- Ga op de pagina Portalinstellingen | Directory's en abonnementen naar uw Azure AD B2C-directory in de lijst Directorynaam en selecteer vervolgens Wisselen.
- Kies Alle services in de linkerbovenhoek van Azure Portal, zoek en selecteer Azure AD B2C.
- Selecteer Id-providers en selecteer vervolgens Nieuwe OpenID Connect-provider.
- Voer een naam in. Bijvoorbeeld LinkedIn-OIDC.
- Voer voor de metagegevens-URLhttps://www.linkedin.com/oauth/.well-known/openid-configuration in.
- Voer bij de client-ID de client-ID in van de LinkedIn-applicatie die u eerder hebt gemaakt.
- Voer voor het clientgeheim het clientgeheim in dat u hebt vastgelegd.
- Voer voor het bereikhet e-mailadres van het openid-profiel in.
- Voer bij het type Antwoordde code in.
- Voer het e-mailadres in voor de gebruikers-ID.
- Voer de naam in voor de weergavenaam.
- Voer bij Voornaam het veld given_name in.
- Vul bij de achternaamfamily_name in.
- Voer voor de e-mailhet e-mailadres in.
- Selecteer Opslaan.
LinkedIn-identiteitsprovider toevoegen aan een gebruikersstroom
Op dit moment is de LinkedIn-identiteitsprovider ingesteld, maar deze is nog niet beschikbaar op een van de aanmeldingspagina's. De LinkedIn-identiteitsprovider toevoegen aan een gebruikersstroom:
- Selecteer gebruikersstromen in uw Azure AD B2C-tenant.
- Klik op de gebruikersstroom waaraan u de LinkedIn-identiteitsprovider wilt toevoegen.
- Selecteer onder de aangepaste identiteitsprovidersde optie LinkedIn-OIDC.
- Selecteer Opslaan.
- Selecteer Gebruikersstroom uitvoeren om uw beleid te testen.
- Selecteer voor Toepassing de webtoepassing met de naam testapp1 die u eerder hebt geregistreerd. De antwoord-URL moet
https://jwt.ms
weergeven. - Klik op de knop Voer gebruikersstroom uit.
- Selecteer op de aanmeldings- of aanmeldingspagina LinkedIn-OIDC om u aan te melden met een LinkedIn-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.
Een beleidssleutel maken
U moet het clientgeheim opslaan dat u eerder hebt vastgelegd 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.
- Ga op de pagina Portalinstellingen | Directory's en abonnementen naar uw Azure AD B2C-directory in de lijst Directorynaam en selecteer vervolgens Wisselen.
- 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
Manual
. - Voer een naam in voor de beleidssleutel. Bijvoorbeeld:
LinkedInSecret
. Het voorvoegsel B2C_1A_ wordt automatisch toegevoegd aan de naam van uw sleutel. - Voer in het geheim het clientgeheim in dat u eerder hebt opgenomen.
- Voor sleutelgebruik selecteert u
Signature
. - Klik op Create.
LinkedIn configureren als identiteitsprovider
Als u gebruikers in staat wilt stellen zich aan te melden met een LinkedIn-account, moet u het account definiëren als een claimprovider waarmee Azure AD B2C kan communiceren via een eindpunt. Het eindpunt biedt een set claims die worden gebruikt door Azure AD B2C om te controleren of een specifieke gebruiker is geverifieerd.
Definieer een LinkedIn-account als een claimprovider door het toe te voegen aan het element ClaimsProviders in het uitbreidingsbestand van uw polis.
Open het bestand SocialAndLocalAccounts/TrustFrameworkExtensions.xml in uw editor. Dit bestand maakt deel uit van het startpakket voor aangepast beleid dat u hebt gedownload als onderdeel van een van de vereisten.
Zoek het element ClaimsProviders . Als deze niet bestaat, voegt u deze toe onder het hoofdelement.
Voeg als volgt een nieuwe ClaimsProvider toe:
<ClaimsProvider> <Domain>linkedin.com</Domain> <DisplayName>LinkedIn-OIDC</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="LinkedIn-OIDC"> <DisplayName>LinkedIn</DisplayName> <Protocol Name="OpenIdConnect" /> <Metadata> <Item Key="METADATA">https://www.linkedin.com/oauth/.well-known/openid-configuration</Item> <Item Key="scope">openid profile email</Item> <Item Key="HttpBinding">POST</Item> <Item Key="response_types">code</Item> <Item Key="UsePolicyInRedirectUri">false</Item> <Item Key="client_id">Your LinkedIn application client ID</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_LinkedInSecret" /> </CryptographicKeys> <InputClaims /> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="linkedin.com" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Vervang de waarde van client_id door de client-ID van de LinkedIn-toepassing die u eerder hebt opgenomen.
Sla het bestand op.
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="LinkedInExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="LinkedInExchange" TechnicalProfileReferenceId="LinkedIn-OIDC" />
</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 aangepaste beleid testen
- 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 aanmeldings- of aanmeldingspagina LinkedIn-OIDC om u aan te melden met een LinkedIn-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.
Migratie van v1.0 naar v2.0
LinkedIn heeft onlangs hun API's bijgewerkt van v1.0 naar v2.0. Als u uw bestaande configuratie wilt migreren naar de nieuwe configuratie, gebruikt u de informatie in de volgende secties om de elementen in het technische profiel bij te werken.
Items in de metagegevens vervangen
Werk in het bestaande metagegevenselement van het TechnicalProfile de volgende itemelementen bij:
<Item Key="ClaimsEndpoint">https://api.linkedin.com/v1/people/~:(id,first-name,last-name,email-address,headline)</Item>
<Item Key="scope">r_emailaddress r_basicprofile</Item>
Aan:
<Item Key="ClaimsEndpoint">https://api.linkedin.com/v2/me</Item>
<Item Key="scope">r_emailaddress r_liteprofile</Item>
Items toevoegen aan de metagegevens
Voeg in de metagegevens van het TechnicalProfile de volgende itemelementen toe:
<Item Key="external_user_identity_claim_id">id</Item>
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
<Item Key="ResolveJsonPathsInJsonTokens">true</Item>
De OutputClaims bijwerken
Werk in de bestaande OutputClaims van het TechnicalProfile de volgende OutputClaim-elementen bij van:
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName" />
Aan:
<OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="firstName.localized" />
<OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="lastName.localized" />
Nieuwe OutputClaimsTransformation-elementen toevoegen
Voeg in de OutputClaimsTransformations van het TechnicalProfile de volgende OutputClaimsTransformation-elementen toe:
<OutputClaimsTransformation ReferenceId="ExtractGivenNameFromLinkedInResponse" />
<OutputClaimsTransformation ReferenceId="ExtractSurNameFromLinkedInResponse" />
Definieer de nieuwe claimtransformaties en het claimtype
In de laatste stap hebt u nieuwe claimtransformaties toegevoegd die moeten worden gedefinieerd. Als u de claimtransformaties wilt definiëren, voegt u ze toe aan de lijst met ClaimsTransformations. Als u geen ClaimTransformations-element hebt gedefinieerd in uw bestand, voegt u de bovenliggende XML-elementen toe, zoals hieronder wordt weergegeven. De claimtransformaties hebben ook een nieuw claimtype nodig dat is gedefinieerd met de naam nullStringClaim.
Het element BuildingBlocks moet bovenaan het bestand worden toegevoegd. Zie de TrustframeworkBase.xml als voorbeeld.
<BuildingBlocks>
<ClaimsSchema>
<!-- Claim type needed for LinkedIn claims transformations -->
<ClaimType Id="nullStringClaim">
<DisplayName>nullClaim</DisplayName>
<DataType>string</DataType>
<AdminHelpText>A policy claim to store unuseful output values from ClaimsTransformations. This claim should not be used in a TechnicalProfiles.</AdminHelpText>
<UserHelpText>A policy claim to store unuseful output values from ClaimsTransformations. This claim should not be used in a TechnicalProfiles.</UserHelpText>
</ClaimType>
</ClaimsSchema>
<ClaimsTransformations>
<!-- Claim transformations needed for LinkedIn technical profile -->
<ClaimsTransformation Id="ExtractGivenNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="ExtractSurNameFromLinkedInResponse" TransformationMethod="GetSingleItemFromJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="surname" TransformationClaimType="inputJson" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="nullStringClaim" TransformationClaimType="key" />
<OutputClaim ClaimTypeReferenceId="surname" TransformationClaimType="value" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>
Verkrijg een e-mailadres
Als onderdeel van de LinkedIn-migratie van v1.0 naar v2.0 is een extra aanroep naar een andere API vereist om het e-mailadres te verkrijgen. Als u het e-mailadres nodig heeft tijdens het aanmelden, gaat u als volgt te werk:
Voer de bovenstaande stappen uit om Azure AD B2C toe te staan federatie te vormen met LinkedIn zodat de gebruiker zich kan aanmelden. Als onderdeel van de federatie ontvangt Azure AD B2C het toegangstoken voor LinkedIn.
Sla het LinkedIn-toegangstoken op in een claim. Bekijk hier de instructies.
Voeg de volgende claimprovider die het verzoek indient, toe aan de API van
/emailAddress
LinkedIn. Om dit verzoek te autoriseren, hebt u het LinkedIn-toegangstoken nodig.<ClaimsProvider> <DisplayName>REST APIs</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="API-LinkedInEmail"> <DisplayName>Get LinkedIn email</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="ServiceUrl">https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))</Item> <Item Key="AuthenticationType">Bearer</Item> <Item Key="UseClaimAsBearerToken">identityProviderAccessToken</Item> <Item Key="SendClaimsIn">Url</Item> <Item Key="ResolveJsonPathsInJsonTokens">true</Item> </Metadata> <InputClaims> <InputClaim ClaimTypeReferenceId="identityProviderAccessToken" /> </InputClaims> <OutputClaims> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="elements[0].handle~.emailAddress" /> </OutputClaims> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Voeg de volgende indelingsstap toe aan uw gebruikersreis, zodat de API-claimprovider wordt geactiveerd wanneer een gebruiker zich aanmeldt met LinkedIn. Zorg ervoor dat u het nummer op de juiste manier bijwerkt
Order
. Voeg deze stap toe direct na de orkestratiestap die het technische LinkedIn-profiel activeert.<!-- Extra step for LinkedIn to get the email --> <OrchestrationStep Order="3" Type="ClaimsExchange"> <Preconditions> <Precondition Type="ClaimsExist" ExecuteActionsIf="false"> <Value>identityProvider</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> <Precondition Type="ClaimEquals" ExecuteActionsIf="false"> <Value>identityProvider</Value> <Value>linkedin.com</Value> <Action>SkipThisOrchestrationStep</Action> </Precondition> </Preconditions> <ClaimsExchanges> <ClaimsExchange Id="GetEmail" TechnicalProfileReferenceId="API-LinkedInEmail" /> </ClaimsExchanges> </OrchestrationStep>
Het verkrijgen van het e-mailadres van LinkedIn tijdens het aanmelden is optioneel. Als u ervoor kiest om de e-mail niet van LinkedIn te ontvangen, maar er wel een nodig heeft tijdens het aanmelden, moet de gebruiker het e-mailadres handmatig invoeren en valideren.
Zie het startpakket voor aangepast beleid voor een volledig voorbeeld van een beleid dat gebruikmaakt van de LinkedIn-identiteitsprovider.
Migratie van v1.0 naar v2.0
LinkedIn heeft onlangs hun API's bijgewerkt van v1.0 naar v2.0. Als onderdeel van de migratie kan Azure AD B2C alleen de volledige naam van de LinkedIn-gebruiker verkrijgen tijdens de aanmelding. Als een e-mailadres een van de kenmerken is die tijdens het aanmelden wordt verzameld, moet de gebruiker het e-mailadres handmatig invoeren en valideren.