Dela via


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

Viktigt!

Från och med den 1 maj 2025 är Azure AD B2C inte längre tillgängligt att köpa för nya kunder. Läs mer i våra vanliga frågor och svar.

Innan du börjar använder du väljaren Välj en principtyp överst på den här sidan 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ändare 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 ditt användarflöde för att vidarebefordra token till de applikationer som du registrerar i Azure AD B2C.

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

Azure AD B2C har stöd för att skicka åtkomsttoken för OAuth 2.0 - och OpenID Connect-identitetsproviders . För alla andra identitetsprovidrar returneras anspråket tomt. För mer information, kolla in identitetsleverantörernas federation Live Demo.

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

Identitetsleverantörens överföringsflöde

Förutsättningar

Aktivera anspråket

  1. Logga in på Azure-portalen som administratör för externt ID-användarflöde för din Azure AD B2C-klient.

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

  3. Välj Alla tjänster i det övre vänstra hörnet i Azure-portalen, 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 Applikationsanspråk.

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

    Aktivera Identitetsleverantörens åtkomsttokenanspråk

  7. Klicka på Spara för att spara användarflödet.

Testa användarflödet

När du testar dina program i Azure AD B2C kan det vara användbart att få Azure AD B2C-token returnerad till https://jwt.ms för att 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 ska Svar-URL 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åket.

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

    Avkodad token i jwt.ms med idp_access_token block markerat

Lägg till anspråkselementen

  1. Öppna TrustframeworkExtensions.xml-filen och lägg till följande ClaimType-element med identifieraren identityProviderAccessTokenClaimsSchema för elementet:

    <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 elementet OutputClaim i elementet TechnicalProfile 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 TrustframeworkExtensions.xml fil.

  4. Öppna principfilen för förlitande part, till exempel SignUpOrSignIn.xmloch lägg till elementet OutputClaim 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 applikationer i Azure AD B2C kan det vara användbart att Azure AD B2C-token returneras till https://jwt.ms för att kunna granska attributen i den.

Ladda upp filerna

  1. Logga in på Azure-portalen.
  2. Om du har åtkomst till flera klientorganisationer väljer du ikonen Inställningar på den översta menyn för att växla till din Azure AD B2C-klientorganisation från menyn Kataloger + prenumerationer.
  3. Välj Alla tjänster i det övre vänstra hörnet i Azure-portalen och sök sedan 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 den TrustframeworkExtensions.xml filen.
  7. Välj Ladda upp.
  8. Upprepa steg 5 till 7 för den förlitande partfilen, till exempel SignUpOrSignIn.xml.

Aktivera policyn

  1. Öppna policyn 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 ska Svar-URL visa https://jwt.ms.

  3. Välj kör nu.

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

    Avkodad token i jwt.ms med idp_access_token block markerat

Skicka IDP-uppdateringstoken (valfritt)

Den åtkomsttoken som identitetsprovidern returnerar är giltig under en kort tidsperiod. Vissa identitetsproviders utfärdar också en uppdateringstoken tillsammans med åtkomsttoken. Klientprogrammet kan sedan byta ut identitetsproviderns uppdateringstoken mot en ny åtkomsttoken när det behövs.

Azure AD B2C anpassad policy har stöd för att överföra uppdateringstoken för OAuth 2.0-identitetsprovidrar, som omfattar Facebook, Google och GitHub.

För att skicka identitetsleverantörens förnyelsetoken, följ dessa steg:

  1. Öppna TrustframeworkExtensions.xml-filen och lägg till följande ClaimType-element med identifieraren identityProviderRefreshTokenClaimsSchema för elementet.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Lägg till elementet OutputClaim i elementet TechnicalProfile 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 identitetsproviders kräver att du inkluderar metadata eller omfång i identitetsproviderns tekniska profil.

    • För Googles identitetsleverantör 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 du har gjort i TrustframeworkExtensions.xml-filen .

  5. Öppna principfilen för förlitande part, till exempel SignUpOrSignIn.xmloch lägg till elementet OutputClaim i TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Spara de ändringar som du har gjort i policyns fil för förlitande part.

  7. Ladda upp TrustframeworkExtensions.xml-filen och sedan principfilen för den betrodda parten.

  8. Testa din policy

Nästa steg

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