Sdílet prostřednictvím


Předání přístupového tokenu zprostředkovatele identity do aplikace v Azure Active Directory B2C

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Než začnete, pomocí selektoru Zvolit typ zásady v horní části této stránky zvolte typ zásady, kterou nastavujete. Azure Active Directory B2C nabízí dvě metody pro definování způsobu interakce uživatelů s vašimi aplikacemi: prostřednictvím předdefinovaných toků uživatelů nebo prostřednictvím plně konfigurovatelných vlastních zásad. Kroky vyžadované v tomto článku se pro každou metodu liší.

Uživatelský tok v Azure Active Directory B2C (Azure AD B2C) poskytuje uživatelům vaší aplikace možnost se registrovat nebo přihlásit pomocí zprostředkovatele identity. Když se cesta spustí, Azure AD B2C obdrží přístupový token od zprostředkovatele identity. Azure AD B2C používá tento token k načtení informací o uživateli. V toku uživatele povolíte deklaraci identity tak, aby předávala token aplikacím, které zaregistrujete v Azure AD B2C.

Azure AD B2C podporuje předávání přístupového tokenu zprostředkovatelů identity OAuth 2.0 , mezi které patří Facebook a Google. Pro všechny ostatní zprostředkovatele identity se deklarace identity vrátí prázdná.

Azure AD B2C podporuje předávání přístupového tokenu zprostředkovatelů identity OAuth 2.0 a OpenID Connect . Pro všechny ostatní zprostředkovatele identity se deklarace identity vrátí prázdná. Další podrobnosti najdete v ukázce federace zprostředkovatelů identity Live.

Následující diagram znázorňuje, jak se token zprostředkovatele identity vrací do vaší aplikace:

Postup průchodu poskytovatele identity

Požadavky

Povolit nárok

  1. Přihlaste se k webu Azure Portal jako správce toku externího ID uživatele vašeho tenanta Azure AD B2C.

  2. Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.

  3. V levém horním rohu webu Azure Portal zvolte Všechny služby , vyhledejte a vyberte Azure AD B2C.

  4. Vyberte Toky uživatelů (zásady) a pak vyberte tok uživatele. Například B2C_1_signupsignin1.

  5. Vyberte Nároky aplikace.

  6. Povolte deklaraci Identity Provider Access Token.

    Povolit deklaraci přístupového tokenu zprostředkovatele identity

  7. Kliknutím na Uložit uložíte tok uživatele.

Testování toku uživatele

Při testování aplikací v Azure AD B2C může být užitečné, aby se token Azure AD B2C vrátil pro kontrolu nároků v něm ke https://jwt.ms.

  1. Na stránce Přehled toku uživatele vyberte Spustit tok uživatele.

  2. V případě aplikace vyberte aplikaci, kterou jste předtím zaregistrovali. Pokud chcete zobrazit token v následujícím příkladu, měla by se zobrazit https://jwt.ms .

  3. Klikněte na Spustit tok uživatele a přihlaste se pomocí přihlašovacích údajů k účtu. V idp_access_token deklarace identity byste měli vidět přístupový token zprostředkovatele identity.

    Měli byste vidět něco podobného jako v následujícím příkladu:

    Dekódovaný token v jwt.ms se zvýrazněným blokem idp_access_token

Přidejte prvky nároku

  1. Otevřete soubor TrustframeworkExtensions.xml a přidejte následující prvek ClaimType s identifikátorem identityProviderAccessToken do elementu 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. Přidejte element OutputClaim do elementu TechnicalProfile pro každého zprostředkovatele identity OAuth 2.0, pro kterého chcete přístupový token použít. Následující příklad ukazuje prvek přidaný do technického profilu Facebooku:

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

  4. Otevřete soubor zásad předávající strany, například SignUpOrSignIn.xml, a přidejte do souboru TechnicalProfile element OutputClaim:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. Uložte soubor zásad.

Otestujte svou zásadu

Při testování vašich aplikací v Azure AD B2C může být užitečné, aby se token Azure AD B2C vrátil do https://jwt.ms, abyste mohli zkontrolovat nároky v něm.

Nahrání souborů

  1. Přihlaste se do Azure Portalu.
  2. Pokud máte přístup k více tenantům, vyberte ikonu Nastavení v horní nabídce a přepněte se do svého tenanta Azure AD B2C z nabídky Adresáře + předplatná.
  3. V levém horním rohu webu Azure Portal zvolte Všechny služby a pak vyhledejte a vyberte Azure AD B2C.
  4. Vyberte Architekturu prostředí identit.
  5. Na stránce Vlastní politiky klikněte na Nahrát politiku.
  6. Vyberte Přepsat politiku, pokud existuje, a poté vyhledejte a vyberte souborTrustframeworkExtensions.xml.
  7. Vyberte Nahrát.
  8. Opakujte kroky 5 až 7 pro soubor předávající strany, například SignUpOrSignIn.xml.

Spusťte zásady

  1. Otevřete politiku, kterou jste změnili. Například B2C_1A_signup_signin.

  2. V případě aplikace vyberte aplikaci, kterou jste předtím zaregistrovali. Pokud chcete zobrazit token v následujícím příkladu, měla by se zobrazit https://jwt.ms .

  3. Vyberte Spustit.

    Měli byste vidět něco podobného jako v následujícím příkladu:

    Dekódovaný token v jwt.ms se zvýrazněným blokem idp_access_token

Předejte obnovovací token IDP (volitelné)

Přístupový token, který zprostředkovatel identity vrátí, je platný po krátkou dobu. Někteří zprostředkovatelé identity také vydávají obnovovací token spolu s přístupovým tokenem. Klientská aplikace pak může v případě potřeby vyměnit obnovovací token zprostředkovatele identity za nový přístupový token.

Vlastní zásady Azure AD B2C podporují předávání obnovovacího tokenu zprostředkovatelů identity OAuth 2.0, mezi které patří Facebook, Google a GitHub.

Pokud chcete předat token pro obnovení od poskytovatele identity, postupujte takto:

  1. Otevřete soubor TrustframeworkExtensions.xml a přidejte následující element ClaimType s identifikátorem identityProviderRefreshToken do elementu ClaimsSchema.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Přidejte element OutputClaim do elementu TechnicalProfile pro každého zprostředkovatele identity OAuth 2.0, pro kterého chcete obnovovací token použít. Následující příklad ukazuje prvek přidaný do technického profilu Facebooku:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Někteří zprostředkovatelé identity vyžadují, abyste do technického profilu zprostředkovatele identity zahrnuli metadata nebo obory.

    • Pro poskytovatele identity Google přidejte dva typy nároků access_type a prompt. Poté do technického profilu zprostředkovatele identity přidejte následující vstupní deklarace identity:

      <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>
      
    • Jiní zprostředkovatelé identity můžou mít různé metody vydávání obnovovacího tokenu. Sledujte cílovou skupinu zprostředkovatele identity a přidejte potřebné prvky do technického profilu zprostředkovatele identity.

  4. Uložte změny provedené v souboruTrustframeworkExtensions.xml .

  5. Otevřete soubor zásad předávající strany, například SignUpOrSignIn.xml, a přidejte do souboru TechnicalProfile element OutputClaim:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Uložte změny provedené ve vašem souboru zásad důvěřující strany.

  7. Nahrajte souborTrustframeworkExtensions.xml a následně soubor zásad spoléhané strany.

  8. Otestujte svou zásadu

Další kroky

Další informace najdete v přehledu tokenů Azure AD B2C.