Delen via


Registreren en aanmelden met algemene OpenID-Verbinding maken instellen met behulp van Azure Active Directory B2C

Voordat u begint, gebruikt u de selector Een beleidstype kiezen 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.

OpenID Verbinding maken is een verificatieprotocol dat is gebouwd boven op OAuth 2.0, dat kan worden gebruikt voor beveiligde aanmelding van gebruikers. De meeste id-providers die dit protocol gebruiken, worden ondersteund in Azure AD B2C.

In dit artikel wordt uitgelegd hoe u aangepaste OpenID-Verbinding maken id-providers kunt toevoegen aan uw gebruikersstromen.

Belangrijk

Uw eindpunten moeten voldoen aan de Azure AD B2C-beveiligingsvereisten. Oudere TLS-versies en -coderingen zijn afgeschaft. Zie Vereisten voor Azure AD B2C TLS en suites met coderingsmethoden voor meer informatie.

Vereisten

De id-provider toevoegen

  1. Meld u aan bij Azure Portal als globale beheerder van de Azure AD B2C-tenant.
  2. Als u toegang hebt tot meerdere tenants, selecteert u het pictogram Instellingen in het bovenste menu om over te schakelen naar uw Azure AD B2C-tenant in het menu Mappen en abonnementen.
  3. Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.
  4. Selecteer Id-providers en selecteer vervolgens Nieuwe OpenID Connect-provider.
  5. Voer bij Naam een naam in. Voer bijvoorbeeld Contoso in.

Definieer de OpenId Verbinding maken id-provider door deze toe te voegen aan het element ClaimsProviders in het extensiebestand van uw beleid.

  1. Open het bestand TrustFrameworkExtensions.xml.

  2. Ga naar het element ClaimsProviders. Als dit niet voorkomt, voegt u het toe onder het hoofdelement.

  3. Voeg als volgt een nieuwe ClaimsProvider toe:

    <ClaimsProvider>
      <Domain>contoso.com</Domain>
      <DisplayName>Login with Contoso</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Contoso-OpenIdConnect">
          <DisplayName>Contoso</DisplayName>
          <Description>Login with your Contoso account</Description>
          <Protocol Name="OpenIdConnect"/>
          <Metadata>
            <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item>
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
          </Metadata>
          <!-- <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/>
          </CryptographicKeys> -->
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/>
            <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/>
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
            <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/>
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/>
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/>
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/>
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/>
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/>
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    

De id-provider configureren

Elke OpenID Verbinding maken id-provider beschrijft een metagegevensdocument met de meeste informatie die nodig is om aanmelding uit te voeren. Het metagegevensdocument bevat informatie zoals de URL's die moeten worden gebruikt en de locatie van de openbare ondertekeningssleutels van de service. Het OpenID-Verbinding maken metagegevensdocument bevindt zich altijd op een eindpunt dat eindigt op .well-known/openid-configuration. Voer de metagegevens-URL in voor de OpenID Verbinding maken id-provider die u wilt toevoegen.

Voer in de METAGEGEVENS-URL de URL in van het OpenID-Verbinding maken metagegevensdocument.

Voer in de metagegevens van het <Item Key="METADATA"> technische profiel de URL in van het OpenID-Verbinding maken metagegevensdocument.

Client-id en geheim

Om gebruikers toe te staan zich aan te melden, moeten ontwikkelaars van de id-provider een toepassing registreren in hun service. Deze toepassing heeft een id die wordt aangeduid als de client-id en een clientgeheim.

Het clientgeheim is optioneel. U moet echter een clientgeheim opgeven als het antwoordtype is code, dat het geheim gebruikt om de code voor het token uit te wisselen.

Als u de client-id en het clientgeheim wilt toevoegen, kopieert u deze waarden van de id-provider en voert u deze in de bijbehorende velden in.

Voer in de metagegevens van het <Item Key="client_id"> technische profiel de client-id in.

Een beleidssleutel maken

Als clientgeheim vereist is, slaat u het clientgeheim op dat u eerder hebt vastgelegd in uw Azure AD B2C-tenant.

  1. Meld u aan bij de Azure-portal.

  2. Zorg ervoor dat u de map gebruikt die uw Azure AD B2C-tenant bevat. Selecteer het filter Map en abonnement op de portalwerkbalk.

  3. Ga op de pagina Portalinstellingen | Directory's en abonnementen naar uw Azure AD B2C-directory in de lijst Mapnaam en selecteer vervolgens Omzetten.

  4. Kies Alle services linksboven in de Azure Portal, zoek Azure AD B2C en selecteer deze.

  5. Selecteer Identity Experience Framework op de overzichtspagina.

  6. Selecteer Beleidssleutels en vervolgens Toevoegen.

  7. Voor Opties kiest u Manual.

  8. Voer een naam in voor de beleidssleutel. Bijvoorbeeld ContosoSecret. Het voorvoegsel B2C_1A_ wordt automatisch toegevoegd aan de naam van uw sleutel.

  9. Voor in Geheim het clientgeheim in dat u eerder hebt genoteerd.

  10. Selecteer voor Sleutelgebruik de optie Signature.

  11. Klik op Create.

  12. Voeg in het CryptographicKeys XML-element het volgende element toe:

    <CryptographicKeys>
      <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/>
    </CryptographicKeys>
    

Bereik

Het bereik definieert de informatie en machtigingen die u wilt verzamelen van uw id-provider, bijvoorbeeld openid profile. Als u het id-token van de id-provider wilt ontvangen, moet het openid bereik worden opgegeven.

Zonder het id-token kunnen gebruikers zich niet aanmelden bij Azure AD B2C met behulp van de aangepaste id-provider. Andere bereiken kunnen worden toegevoegd, gescheiden door spatie. Raadpleeg de documentatie van de aangepaste id-provider om te zien welke andere bereiken mogelijk beschikbaar zijn.

Voer in het bereik de bereiken van de id-provider in. Bijvoorbeeld openid profile.

Voer in de metagegevens van het <Item Key="scope"> technische profiel de bereiken van de id-provider in. Bijvoorbeeld openid profile.

Reactietype

In het antwoordtype wordt beschreven welk soort informatie wordt teruggestuurd in de eerste aanroep van de authorization_endpoint aangepaste id-provider. De volgende antwoordtypen kunnen worden gebruikt:

  • code: Volgens de autorisatiecodestroom wordt een code teruggezet naar Azure AD B2C. Azure AD B2C roept de token_endpoint code voor het token aan om te wisselen.
  • id_token: Er wordt een id-token geretourneerd naar Azure AD B2C van de aangepaste id-provider.

Selecteer codeof id_tokenselecteer in het antwoordtype de instellingen van uw id-provider.

Selecteer codeof id_token volgens de instellingen van uw id-provider in de metagegevens van het <Item Key="response_types"> technische profiel.

Responsmodus

De antwoordmodus definieert de methode die moet worden gebruikt om de gegevens van de aangepaste id-provider terug te sturen naar Azure AD B2C. De volgende antwoordmodi kunnen worden gebruikt:

  • form_post: Deze reactiemodus wordt aanbevolen voor de beste beveiliging. Het antwoord wordt verzonden via de HTTP-methode POST , waarbij de code of het token wordt gecodeerd in de hoofdtekst met behulp van de application/x-www-form-urlencoded indeling.
  • query: De code of het token wordt geretourneerd als een queryparameter.

Selecteer form_postof queryselecteer in de antwoordmodus de instellingen van uw id-provider.

Selecteer form_postof queryselecteer in de metagegevens van het <Item Key="response_mode"> technische profiel de instellingen van uw id-provider.

Domeinhint

De domeinhint kan worden gebruikt om rechtstreeks naar de aanmeldingspagina van de opgegeven id-provider te gaan, in plaats van dat de gebruiker een selectie maakt in de lijst met beschikbare id-providers.

Als u dit soort gedrag wilt toestaan, voert u een waarde in voor de domeinhint. Als u naar de aangepaste id-provider wilt gaan, voegt u de parameter domain_hint=<domain hint value> toe aan het einde van uw aanvraag bij het aanroepen van Azure AD B2C voor aanmelding.

Voer in de domeinhint een domeinnaam in die wordt gebruikt in de domeinhint.

Voer in het XML-element van het <Domain>contoso.com</Domain> technische profiel een domeinnaam in die wordt gebruikt in de domeinhint. Bijvoorbeeld contoso.com.

Claimtoewijzing

Nadat de aangepaste id-provider een id-token terugstuurt naar Azure AD B2C, moet Azure AD B2C de claims van het ontvangen token kunnen toewijzen aan de claims die Azure AD B2C herkent en gebruikt. Raadpleeg voor elk van de volgende toewijzingen de documentatie van de aangepaste id-provider om inzicht te krijgen in de claims die worden geretourneerd in de tokens van de id-provider:

  • Gebruikers-id: voer de claim in die de unieke id voor de aangemelde gebruiker levert.
  • Weergavenaam: Voer de claim in die de weergavenaam of volledige naam voor de gebruiker opgeeft.
  • Opgegeven naam: Voer de claim in die de voornaam van de gebruiker opgeeft.
  • Achternaam: Voer de claim in die de achternaam van de gebruiker opgeeft.
  • E-mail: Voer de claim in die het e-mailadres van de gebruiker opgeeft.

Het OutputClaims element bevat een lijst met claims die worden geretourneerd door uw id-provider. Wijs de naam van de claim die in uw beleid is gedefinieerd toe aan de naam die is gedefinieerd in de id-provider. Configureer onder het <OutputClaims> element het PartnerClaimType kenmerk met de bijbehorende claimnaam zoals gedefinieerd door uw id-provider.

ClaimTypeReferenceId PartnerClaimType
issuerUserId Voer de claim in die de unieke id voor de aangemelde gebruiker levert.
displayName Voer de claim in die de weergavenaam of volledige naam voor de gebruiker opgeeft.
givenName Voer de claim in die de voornaam van de gebruiker opgeeft.
surName Voer de claim in die de achternaam van de gebruiker opgeeft.
email Voer de claim in die het e-mailadres van de gebruiker opgeeft.
identityProvider Voer de claim in die de naam van de tokenverlener opgeeft. Bijvoorbeeld iss. Als de id-provider de claim van de verlener niet in het token opneemt, stelt u het DefaultValue kenmerk in met een unieke id van uw id-provider. Bijvoorbeeld DefaultValue="contoso.com".

De id-provider toevoegen aan een gebruikersstroom

  1. Selecteer Gebruikersstromen in uw Azure AD B2C-tenant.
  2. Klik op de gebruikersstroom die u wilt toevoegen aan de id-provider.
  3. Selecteer onder de id-providers voor sociale netwerken de id-provider die u hebt toegevoegd. Bijvoorbeeld Contoso.
  4. Selecteer Opslaan.

Uw gebruikersstroom testen

  1. Selecteer Gebruikersstroom uitvoeren om uw beleid te testen.
  2. Selecteer voor Toepassing de webtoepassing met de naam testapp1 die u eerder hebt geregistreerd. De antwoord-URL moet https://jwt.ms weergeven.
  3. Klik op de knop Gebruikersstroom uitvoeren.
  4. Selecteer op de registratie- of aanmeldingspagina de id-provider die u wilt aanmelden. Bijvoorbeeld Contoso.

Als het aanmeldingsproces is voltooid, wordt uw browser omgeleid naar https://jwt.ms, waar de inhoud van het door Azure AD B2C geretourneerde token wordt weergegeven.

Een gebruikerstraject toevoegen

Op dit punt is de id-provider ingesteld, maar is deze nog niet beschikbaar op een van de aanmeldingspagina's. Als u niet over een eigen aangepast gebruikerstraject beschikt, maakt u een duplicaat van een bestaand gebruikerstrajectsjabloon. In het andere geval gaat u verder met de volgende stap.

  1. Open het bestand TrustFrameworkBase.xml vanuit het starterspakket.
  2. Zoek en kopieer de volledige inhoud van het element UserJourney dat Id="SignUpOrSignIn" bevat.
  3. Open het bestand TrustFrameworkExtensions.xml en ga naar het element UserJourneys. Als het element niet voorkomt, voegt u het toe.
  4. Plak de volledige inhoud van het element UserJourney dat u hebt gekopieerd als een onderliggend element van het element UserJourneys.
  5. Wijzig de naam van de id van het gebruikerstraject. Bijvoorbeeld Id="CustomSignUpSignIn".

De id-provider toevoegen aan een gebruikerstraject

Nu u over een gebruikerstraject beschikt, voegt u de nieuwe id-provider toe aan het gebruikerstraject. U voegt eerst een aanmeldingsknop toe en koppelt de knop aan een actie. De actie is het technische profiel dat u eerder hebt gemaakt.

  1. Ga in het gebruikerstraject naar het element van de indelingsstap dat Type="CombinedSignInAndSignUp" of Type="ClaimsProviderSelection" bevat. Dit is doorgaans de eerste indelingsstap. 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 aanmeldingsknoppen die aan de gebruiker worden gepresenteerd. Voeg een XML-element ClaimsProviderSelection toe. Stel de waarde van TargetClaimsExchangeId in op een beschrijvende naam.

  2. Voeg in de volgende indelingsstap een element ClaimsExchange 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-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Het Relying Party-beleid configureren

Met het Relying Party-beleid, bijvoorbeeld SignUpSignIn.xml, wordt het gebruikerstraject opgegeven dat door Azure AD B2C wordt uitgevoerd. Ga naar het element DefaultUserJourney binnen de Relying Party. Werk de ReferenceId bij zodat deze overeenkomt met de gebruikerstraject-id, waarin u de id-provider hebt toegevoegd.

In het volgende voorbeeld is voor het CustomSignUpSignIn-gebruikerstraject de ReferenceId ingesteld op CustomSignUpSignIn:

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

Het aangepaste beleid uploaden

  1. Meld u aan bij de Azure-portal.
  2. Selecteer het pictogram Map + Abonnement in de werkbalk van de portal en selecteer vervolgens de map die uw Azure AD B2C-tenant bevat.
  3. Zoek en selecteer Azure AD B2C in de Azure-portal.
  4. Selecteer onder Beleid de optie Identity Experience Framework.
  5. Selecteer Aangepast beleid uploaden en upload vervolgens de twee beleidsbestanden die u hebt gewijzigd, in de volgende volgorde: het uitbreidingsbeleid, bijvoorbeeld TrustFrameworkExtensions.xml en vervolgens het Relying Party-beleid, zoals SignUpSignIn.xml.
  1. Selecteer uw Relying Party-beleid, bijvoorbeeld B2C_1A_signup_signin.
  2. Selecteer voor Toepassing een webtoepassing die u eerder hebt geregistreerd. De antwoord-URL moet https://jwt.ms weergeven.
  3. Selecteer de knop Nu uitvoeren.
  4. Selecteer Contoso op de registratie- of aanmeldingspagina om u aan te melden met een Google-account.

Als het aanmeldingsproces is voltooid, wordt uw browser omgeleid naar https://jwt.ms, waar de inhoud van het door Azure AD B2C geretourneerde token wordt weergegeven.

Bekende problemen

  • Azure AD B2C biedt geen ondersteuning voor JWE (JSON Web Encryption) voor het uitwisselen van versleutelde tokens met OpenID Connect-id-providers.

Volgende stappen

Zie de naslaghandleiding voor openid-Verbinding maken technische profielen voor meer informatie.