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

Než začnete, pomocí selektoru Zvolit typ zásady 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ší.

Tok uživatele v Azure Active Directory B2C (Azure AD B2C) poskytuje uživatelům vaší aplikace příležitost k registraci nebo přihlášení 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 OAuth 2.0 a OpenID Připojení zprostředkovatelů identity. 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:

Identity provider pass through flow

Předpoklady

Povolení deklarace identity

  1. Přihlaste se k webu Azure Portal jako globální správce vašeho tenanta Azure AD B2C.

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

  3. Zvolte Všechny služby v levém horním rohu portálu Azure Portal a 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 Deklarace identit aplikace.

  6. Povolte deklaraci identity přístupového tokenu zprostředkovatele identity.

    Enable the Identity Provider Access Token claim

  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 ke https://jwt.ms kontrole deklarací identity.

  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.msadresa URL odpovědi .

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

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

    Decoded token in jwt.ms with idp_access_token block highlighted

Přidání elementů deklarace identity

  1. Otevřete soubor TrustframeworkExtensions.xml a přidejte následující element ClaimType s identifikátorem identityProviderAccessToken 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.

Testování zásad

Při testování aplikací v Azure AD B2C může být užitečné, aby se token Azure AD B2C vrátil https://jwt.ms , aby mohl zkontrolovat deklarace identity.

Nahrání souborů

  1. Přihlaste se k portálu Azure.
  2. Pokud máte přístup k více tenantům, v horní nabídce vyberte ikonu Nastavení a v nabídce Adresáře a předplatná přepněte do svého tenanta Azure AD B2C.
  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í zásady klikněte na Nahrát zásadu.
  6. Vyberte Přepsat zásadu, pokud existuje, a pak vyhledejte a vyberte soubor TrustframeworkExtensions.xml .
  7. Vyberte Odeslat.
  8. Opakujte kroky 5 až 7 pro soubor předávající strany, například SignUpOrSignIn.xml.

Spuštění zásad

  1. Otevřete zásadu, 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.msadresa URL odpovědi .

  3. Vyberte Spustit.

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

    Decoded token in jwt.ms with idp_access_token block highlighted

Předání obnovovacího tokenu ZDP (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 obnovovací token zprostředkovatele identity, postupujte takto:

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

    <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 zprostředkovatele identity Google přidejte dva typy access_type deklarací identity a prompt. Pak 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 souboru TrustframeworkExtensions.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é v souboru zásad předávající strany.

  7. Nahrajte soubor TrustframeworkExtensions.xml a pak soubor zásad předávající strany.

  8. Testování zásad

Další kroky

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