Een toegangstoken voor id-providers doorgeven aan uw toepassing in 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.

Een gebruikersstroom in Azure Active Directory B2C (Azure AD B2C) biedt gebruikers van uw toepassing de mogelijkheid om zich te registreren of aan te melden bij een id-provider. Wanneer het traject begint, ontvangt Azure AD B2C een toegangstoken van de id-provider. Azure AD B2C gebruikt dat token om informatie over de gebruiker op te halen. U schakelt een claim in uw gebruikersstroom in om het token door te geven aan de toepassingen die u registreert in Azure AD B2C.

Azure AD B2C ondersteunt het doorgeven van het toegangstoken van OAuth 2.0-id-providers, waaronder Facebook en Google. Voor alle andere id-providers wordt de claim leeg geretourneerd.

Azure AD B2C ondersteunt het doorgeven van het toegangstoken van OAuth 2.0- en OpenID Connect-id-providers. Voor alle andere id-providers wordt de claim leeg geretourneerd. Bekijk de live-demo van de federatie van id-providers voor meer informatie.

In het volgende diagram ziet u hoe een token van de id-provider naar uw app wordt geretourneerd:

Identity provider pass through flow

Vereisten

De claim inschakelen

  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 Gebruikersstromen (beleid) en vervolgens uw gebruikersstroom. Bijvoorbeeld B2C_1_signupsignin1.

  5. Selecteer Toepassingsclaims.

  6. Schakel de claim Toegangstoken van id-provider in.

    Enable the Identity Provider Access Token claim

  7. Klik op Opslaan om de gebruikersstroom op te slaan.

De gebruikersstroom testen

Wanneer u uw toepassingen in Azure AD B2C test, kan het handig zijn om het Azure AD B2C-token te laten retourneren naar https://jwt.ms om de claims erin te controleren.

  1. Selecteer Gebruikersstroom uitvoeren op de overzichtspagina van de gebruikersstroom.

  2. Selecteer voor Toepassing de toepassing die u eerder hebt geregistreerd. Als u het token in het onderstaande voorbeeld wilt bekijken, moet https://jwt.ms worden weergegeven voor Antwoord-URL.

  3. Klik op Gebruikersstroom uitvoeren en meld u vervolgens aan met uw accountreferenties. Het toegangstoken van de id-provider moet nu worden weergegeven in de claim idp_access_token.

    Het moet er ongeveer uitzien als in het volgende voorbeeld:

    Decoded token in jwt.ms with idp_access_token block highlighted

De claimelementen toevoegen

  1. Open het bestand TrustframeworkExtensions.xml en voeg het volgende ClaimType-element toe met een id van identityProviderAccessToken aan het element ClaimsSchema:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. Voeg het element OutputClaim toe aan het element TechnicalProfile voor elke OAuth 2.0-id-provider waarvoor u het toegangstoken wilt gebruiken. In het volgende voorbeeld ziet u dat het element is toegevoegd aan het technische profiel voor Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Sla het bestand TrustframeworkExtensions.xml op.

  4. Open het bestand van uw Relying Party-beleid, zoals SignUpOrSignIn.xml, en voeg het elementOutputClaim toe aan het TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Sla het beleidsbestand op.

Uw beleid testen

Wanneer u uw toepassingen in Azure AD B2C test, kan het handig zijn om het Azure AD B2C-token te laten retourneren naar https://jwt.ms om de claims erin te kunnen controleren.

De bestanden uploaden

  1. Meld u aan bij de Azure-portal.
  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 Identity Experience Framework.
  5. Klik op de pagina Aangepast beleid op Beleid uploaden.
  6. Selecteer Overschrijf het beleid als het bestaat en ga vervolgens naar het bestand TrustframeworkExtensions.xml en selecteer dit.
  7. Selecteer Uploaden.
  8. Herhaal stap 5 tot en met 7 voor het Relying Party-bestand, zoals SignUpOrSignIn.xml.

Het beleid uitvoeren

  1. Open het beleid dat u hebt gewijzigd. Bijvoorbeeld B2C_1A_signup_signin.

  2. Selecteer voor Toepassing de toepassing die u eerder hebt geregistreerd. Als u het token in het onderstaande voorbeeld wilt bekijken, moet https://jwt.ms worden weergegeven voor Antwoord-URL.

  3. Selecteer Nu uitvoeren.

    Het moet er ongeveer uitzien als in het volgende voorbeeld:

    Decoded token in jwt.ms with idp_access_token block highlighted

Het IDP-vernieuwingstoken doorgeven (optioneel)

Het toegangstoken dat de id-provider retourneert, is gedurende korte tijd geldig. Sommige id-providers geven ook een vernieuwingstoken uit, samen met het toegangstoken. Uw clienttoepassing kan vervolgens het vernieuwingstoken van de id-provider uitwisselen voor een nieuw toegangstoken wanneer dat nodig is.

Aangepast Azure AD B2C-beleid ondersteunt het doorgeven van het vernieuwingstoken van OAuth 2.0-id-providers, waaronder Facebook, Google en GitHub.

Voer de volgende stappen uit om het vernieuwingstoken van de id-provider door te geven:

  1. Open het bestand TrustframeworkExtensions.xml en voeg het volgende ClaimType-element toe met een id van identityProviderRefreshToken het element ClaimsSchema .

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Voeg het Element OutputClaim toe aan het element TechnicalProfile voor elke OAuth 2.0-id-provider waarvoor u het vernieuwingstoken wilt gebruiken. In het volgende voorbeeld ziet u dat het element is toegevoegd aan het technische profiel voor Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Voor sommige id-providers moet u metagegevens of bereiken opnemen in het technische profiel van de id-provider.

    • Voeg voor google-id-provider twee claimtypen access_type toe en prompt. Voeg vervolgens de volgende invoerclaims toe aan het technische profiel van de id-provider:

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • Andere id-providers kunnen verschillende methoden hebben om een vernieuwingstoken uit te geven. Volg de doelgroep van de id-provider en voeg de benodigde elementen toe aan het technische profiel van uw id-provider.

  4. Sla de wijzigingen op die u hebt aangebracht in uw TrustframeworkExtensions.xml-bestand .

  5. Open het bestand van uw Relying Party-beleid, zoals SignUpOrSignIn.xml, en voeg het elementOutputClaim toe aan het TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Sla de wijzigingen op die u hebt aangebracht in het relying party-beleidsbestand van uw beleid.

  7. Upload het TrustframeworkExtensions.xml-bestand en vervolgens het relying party-beleidsbestand.

  8. Uw beleid testen

Volgende stappen

Meer informatie vindt u in het overzicht van Azure AD B2C-tokens.