Skicka en åtkomsttoken för identitetsprovider till ditt program i Azure Active Directory B2C

Innan du börjar använder du väljaren Välj en principtyp för att välja den typ av princip som du konfigurerar. Azure Active Directory B2C erbjuder två metoder för att definiera hur användare interagerar med dina program: via fördefinierade användarflöden eller genom fullständigt konfigurerbara anpassade principer. De steg som krävs i den här artikeln skiljer sig åt för varje metod.

Ett användarflöde i Azure Active Directory B2C (Azure AD B2C) ger användarna av ditt program möjlighet att registrera sig eller logga in med en identitetsprovider. När resan startar tar Azure AD B2C emot en åtkomsttoken från identitetsprovidern. Azure AD B2C använder den token för att hämta information om användaren. Du aktiverar ett anspråk i användarflödet för att skicka token till de program som du registrerar i Azure AD B2C.

Azure AD B2C har stöd för att skicka åtkomsttoken för OAuth 2.0-identitetsprovidrar , däribland Facebook och Google. För alla andra identitetsprovidrar returneras anspråket tomt.

Azure AD B2C stöder överföring av åtkomsttoken för OAuth 2.0 och OpenID Anslut identitetsprovidrar. För alla andra identitetsprovidrar returneras anspråket tomt. Mer information finns i identitetsproviderfederationens livedemon.

Följande diagram visar hur en identitetsprovidertoken återgår till din app:

Identity provider pass through flow

Förutsättningar

Aktivera anspråket

  1. Logga in på Azure Portal som global administratör för din Azure AD B2C-klientorganisationen.

  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.

  3. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.

  4. Välj Användarflöden (principer) och välj sedan ditt användarflöde. Till exempel B2C_1_signupsignin1.

  5. Välj Programanspråk.

  6. Aktivera anspråket för identitetsproviderns åtkomsttoken .

    Enable the Identity Provider Access Token claim

  7. Spara användarflödet genom att klicka på Spara .

Testa användarflödet

När du testar dina program i Azure AD B2C kan det vara bra att låta Azure AD B2C-token returneras för att https://jwt.ms granska anspråken i den.

  1. På sidan Översikt i användarflödet väljer du Kör användarflöde.

  2. För Program väljer du det program som du registrerade tidigare. Om du vill se token i exemplet nedan bör svars-URL :en visa https://jwt.ms.

  3. Klicka på Kör användarflöde och logga sedan in med dina kontoautentiseringsuppgifter. Du bör se åtkomsttoken för identitetsprovidern i idp_access_token anspråk.

    Du bör se något som liknar följande exempel:

    Decoded token in jwt.ms with idp_access_token block highlighted

Lägg till anspråkselementen

  1. Öppna filen TrustframeworkExtensions.xml och lägg till följande ClaimType-element med en identifierare identityProviderAccessToken i elementet 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. Lägg till outputClaim-elementet i TechnicalProfile-elementet för varje OAuth 2.0-identitetsprovider som du vill ha åtkomsttoken för. I följande exempel visas elementet som lagts till i Facebooks tekniska profil:

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

  4. Öppna principfilen för förlitande part, till exempel SignUpOrSignIn.xml, och lägg till outputClaim-elementet i TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Spara principfilen.

Testa principen

När du testar dina program i Azure AD B2C kan det vara bra att få Azure AD B2C-token returnerad för att https://jwt.ms kunna granska anspråken i den.

Ladda upp filerna

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klienter väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klient från menyn Kataloger + prenumerationer.
  3. Välj Alla tjänster på menyn högst upp till vänster i Azure-portalen och sök efter och välj Azure AD B2C.
  4. Välj Identity Experience Framework.
  5. På sidan Anpassade principer klickar du på Ladda upp princip.
  6. Välj Skriv över principen om den finns och sök sedan efter och välj filen TrustframeworkExtensions.xml .
  7. Välj överför.
  8. Upprepa steg 5 till och med 7 för den förlitande partfilen, till exempel SignUpOrSignIn.xml.

Kör principen

  1. Öppna principen som du ändrade. Till exempel B2C_1A_signup_signin.

  2. För Program väljer du det program som du registrerade tidigare. Om du vill se token i exemplet nedan bör svars-URL :en visa https://jwt.ms.

  3. Välj kör nu.

    Du bör se något som liknar följande exempel:

    Decoded token in jwt.ms with idp_access_token block highlighted

Skicka IDP-uppdateringstoken (valfritt)

Den åtkomsttoken som identitetsprovidern returnerar är giltig under en kort tidsperiod. Vissa identitetsprovidrar utfärdar också en uppdateringstoken tillsammans med åtkomsttoken. Klientprogrammet kan sedan byta ut identitetsproviderns uppdateringstoken mot en ny åtkomsttoken vid behov.

Anpassad Azure AD B2C-princip stöder överföring av uppdateringstoken för OAuth 2.0-identitetsprovidrar, som omfattar Facebook, Google och GitHub.

Följ dessa steg för att skicka identitetsproviderns uppdateringstoken:

  1. Öppna filen TrustframeworkExtensions.xml och lägg till följande ClaimType-element med en identifierare identityProviderRefreshToken i elementet ClaimsSchema .

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Lägg till outputClaim-elementet i TechnicalProfile-elementet för varje OAuth 2.0-identitetsprovider som du vill ha uppdateringstoken för. I följande exempel visas elementet som lagts till i Facebooks tekniska profil:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Vissa identitetsprovidrar kräver att du inkluderar metadata eller omfattningar i identitetsproviderns tekniska profil.

    • För Googles identitetsprovider lägger du till två anspråkstyper access_type och prompt. Lägg sedan till följande indataanspråk i identitetsproviderns tekniska profil:

      <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>
      
    • Andra identitetsprovidrar kan ha olika metoder för att utfärda en uppdateringstoken. Följ identitetsproviderns målgrupp och lägg till nödvändiga element i identitetsproviderns tekniska profil.

  4. Spara de ändringar som du har gjort i filen TrustframeworkExtensions.xml .

  5. Öppna principfilen för förlitande part, till exempel SignUpOrSignIn.xml, och lägg till outputClaim-elementet i TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Spara ändringarna du gjorde i principens principfil för förlitande part.

  7. Ladda upp filen TrustframeworkExtensions.xml och sedan principfilen för förlitande part.

  8. Testa din princip

Nästa steg

Läs mer i översikten över Azure AD B2C-token.