Udostępnij za pośrednictwem


Przekaż token dostępu od dostawcy tożsamości do aplikacji w usłudze Azure Active Directory B2C

Ważne

Od 1 maja 2025 r. usługa Azure AD B2C nie będzie już dostępna do zakupu dla nowych klientów. Dowiedz się więcej w naszych często zadawanych pytaniach.

Przed rozpoczęciem użyj selektora Wybierz typ zasad w górnej części tej strony, aby wybrać typ konfigurowanych zasad. Usługa Azure Active Directory B2C oferuje dwie metody definiowania sposobu interakcji użytkowników z aplikacjami: za pomocą wstępnie zdefiniowanych przepływów użytkowników lub w pełni konfigurowalnych zasad niestandardowych. Kroki wymagane w tym artykule są różne dla każdej metody.

Przepływ użytkownika w usłudze Azure Active Directory B2C (Azure AD B2C) zapewnia użytkownikom aplikacji możliwość zarejestrowania się lub zalogowania się przy użyciu dostawcy tożsamości. Po rozpoczęciu podróży usługa Azure AD B2C otrzymuje token dostępu od dostawcy tożsamości. Usługa Azure AD B2C używa tego tokenu do pobierania informacji o użytkowniku. Możesz włączyć oświadczenie w przepływie użytkownika, aby umożliwić przekazanie tokenu do aplikacji zarejestrowanych w usłudze Azure AD B2C.

Azure AD B2C obsługuje przekazywanie tokenu dostępu dostawców tożsamości OAuth 2.0 , w tym Facebooka i Google. W przypadku wszystkich innych dostawców tożsamości oświadczenie jest zwracane puste.

Azure AD B2C obsługuje przekazywanie tokenu dostępu dostawców tożsamości OAuth 2.0 i OpenID Connect . W przypadku wszystkich innych dostawców tożsamości oświadczenie jest zwracane puste. Aby uzyskać więcej informacji, zapoznaj się z pokazem na żywo federacji dostawców tożsamości.

Na poniższym diagramie pokazano, jak token dostawcy tożsamości powraca do aplikacji:

Przepływ przekazywania przez dostawcę tożsamości

Wymagania wstępne

Włącz roszczenie

  1. Zaloguj się do portalu Azure jako Administrator Przepływu Użytkownika Identyfikatora Zewnętrznego dzierżawy usługi Azure AD B2C.

  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.

  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, wyszukaj i wybierz pozycję Azure AD B2C.

  4. Wybierz pozycję Przepływy użytkowników (zasady), a następnie wybierz przepływ użytkownika. Na przykład B2C_1_signupsignin1.

  5. Wybierz pozycję Oświadczenia aplikacji.

  6. Aktywuj żądanie tokenu dostępu dostawcy tożsamości.

    Włączanie oświadczenia tokenu dostępu dostawcy tożsamości

  7. Kliknij przycisk Zapisz , aby zapisać przepływ użytkownika.

Testowanie przepływu użytkownika

Podczas testowania aplikacji w usłudze Azure AD B2C może być przydatny powrót tokenu usługi Azure AD B2C w https://jwt.ms celu przejrzenia zawartych w nim oświadczeń.

  1. Na stronie Przegląd przepływu użytkownika wybierz pozycję Uruchom przepływ użytkownika.

  2. W polu Application (Aplikacja) wybierz aplikację, która została wcześniej zarejestrowana. Aby wyświetlić token w poniższym przykładzie, Adres URL odpowiedzi powinien wyświetlać https://jwt.ms.

  3. Kliknij Uruchom przepływ użytkownika, a następnie zaloguj się przy użyciu poświadczeń konta. W oświadczeniu dotyczącym idp_access_token powinien być widoczny token dostępu dostawcy tożsamości.

    Powinno zostać wyświetlone coś podobnego do poniższego przykładu:

    Zdekodowany token w jwt.ms z podświetlonym blokiem idp_access_token

Dodawanie elementów oświadczenia

  1. Otwórz plik TrustframeworkExtensions.xml i dodaj następujący element ClaimType z identyfikatorem 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. Dodaj element OutputClaim do elementu TechnicalProfile dla każdego dostawcy tożsamości OAuth 2.0, dla którego chcesz uzyskać token dostępu. Poniższy przykład przedstawia element dodany do profilu technicznego Facebooka:

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

  4. Otwórz plik zasad jednostki uzależnionej, taki jak SignUpOrSignIn.xml, i dodaj element OutputClaim do elementu TechnicalProfile:

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

Testowanie zasad

Podczas testowania aplikacji w usłudze Azure AD B2C może być przydatne zwrócenie https://jwt.ms tokenu usługi Azure AD B2C, aby móc przejrzeć zawarte w nim oświadczenia.

Przekazywanie plików

  1. Zaloguj się do witryny Azure Portal.
  2. Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się na dzierżawę Azure AD B2C z menu Katalogi + subskrypcje.
  3. Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz pozycję Azure AD B2C.
  4. Wybierz Identity Experience Framework.
  5. Na stronie Zasady niestandardowe kliknij pozycję Przekaż zasady.
  6. Wybierz opcję Zastąp zasadę, jeśli istnieje, a następnie wyszukaj i wybierz plik TrustframeworkExtensions.xml .
  7. Wybierz pozycję Prześlij.
  8. Powtórz kroki od 5 do 7 dla pliku jednostki uzależnionej, takiego jak SignUpOrSignIn.xml.

Uruchamianie zasad

  1. Otwórz zmienioną zasadę. Na przykład B2C_1A_signup_signin.

  2. W polu Application (Aplikacja) wybierz aplikację, która została wcześniej zarejestrowana. Aby wyświetlić token w poniższym przykładzie, Adres URL odpowiedzi powinien wyświetlać https://jwt.ms.

  3. Wybierz opcję Uruchom teraz.

    Powinno zostać wyświetlone coś podobnego do poniższego przykładu:

    Zdekodowany token w jwt.ms z podświetlonym blokiem idp_access_token

Przekaż token odświeżania (opcjonalnie) IDP (Dostawca Tożsamości)

Token dostępu zwracany przez dostawcę tożsamości jest ważny przez krótki czas. Niektórzy dostawcy tożsamości wystawiają również token odświeżania wraz z tokenem dostępu. W razie potrzeby aplikacja kliencka może następnie wymienić token odświeżania dostawcy tożsamości na nowy token dostępu.

Niestandardowe zasady usługi Azure AD B2C obsługują przekazywanie tokenu odświeżania dostawców tożsamości OAuth 2.0, w tym Facebook, Google i GitHub.

Aby przekazać token odświeżania dostawcy tożsamości, wykonaj następujące kroki:

  1. Otwórz plik TrustframeworkExtensions.xml i dodaj następujący element ClaimType z identyfikatorem identityProviderRefreshToken do elementu ClaimsSchema .

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. Dodaj element OutputClaim do elementu TechnicalProfile dla każdego dostawcy tożsamości OAuth 2.0, dla którego chcesz użyć tokenu odświeżania. Poniższy przykład przedstawia element dodany do profilu technicznego Facebooka:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. Niektórzy dostawcy tożsamości wymagają dołączenia metadanych lub zakresów do profilu technicznego dostawcy tożsamości.

    • W przypadku dostawcy tożsamości Google dodaj dwa typy access_type oświadczeń i prompt. Następnie dodaj następujące oświadczenia wejściowe do profilu technicznego dostawcy tożsamości:

      <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>
      
    • Inni dostawcy tożsamości mogą stosować różne metody do wystawiania tokenów odświeżających. Obserwuj odbiorców dostawcy tożsamości i dodaj niezbędne elementy do profilu technicznego dostawcy tożsamości.

  4. Zapisz wprowadzone zmiany w pliku TrustframeworkExtensions.xml .

  5. Otwórz plik zasad jednostki uzależnionej, taki jak SignUpOrSignIn.xml, i dodaj element OutputClaim do elementu TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. Zapisz wprowadzone zmiany w pliku zasad jednostki uzależnionej zasady.

  7. Przekaż plik TrustframeworkExtensions.xml , a następnie plik zasad jednostki uzależnionej.

  8. Przetestuj swoje zasady

Dalsze kroki

Dowiedz się więcej w omówieniu tokenów Azure AD B2C.