Przekazywanie tokenu dostępu dostawcy tożsamości do aplikacji w usłudze Azure Active Directory B2C
Przed rozpoczęciem użyj selektora Wybierz typ zasad, 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ę u dostawcy tożsamości. Po rozpoczęciu podróży usługa Azure AD B2C odbiera 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 przekazać token do aplikacji zarejestrowanych w usłudze Azure AD B2C.
Usługa Azure AD B2C obsługuje przekazywanie tokenu dostępu dostawców tożsamości OAuth 2.0 , takich jak Facebook i Google. W przypadku wszystkich innych dostawców tożsamości oświadczenie jest zwracane puste.
Usługa Azure AD B2C obsługuje przekazywanie tokenu dostępu dostawców tożsamości OAuth 2.0 i OpenID Połączenie. W przypadku wszystkich innych dostawców tożsamości oświadczenie jest zwracane puste. Aby uzyskać więcej informacji, zapoznaj się z pokazem federacyjnym dostawców tożsamości na żywo.
Na poniższym diagramie przedstawiono sposób powrotu tokenu dostawcy tożsamości do aplikacji:
Wymagania wstępne
- Utwórz przepływ użytkownika, aby użytkownicy mogli zarejestrować się i zalogować się do aplikacji.
- Rejestrowanie aplikacji internetowej.
- Wykonaj kroki opisane w artykule Wprowadzenie do zasad niestandardowych w usłudze Active Directory B2C
- Rejestrowanie aplikacji internetowej.
Włączanie oświadczenia
Zaloguj się w witrynie Azure Portal jako administrator globalny dzierżawy usługi Azure AD B2C.
Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
Wybierz pozycję Przepływy użytkownika (zasady), a następnie wybierz przepływ użytkownika. Na przykład B2C_1_signupsignin1.
Wybierz pozycję Oświadczenia aplikacji.
Włącz oświadczenie tokenu dostępu dostawcy tożsamości.
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ć przydatne zwrócenie tokenu usługi Azure AD B2C w celu https://jwt.ms
przejrzenia w nim oświadczeń.
Na stronie Przegląd przepływu użytkownika wybierz pozycję Uruchom przepływ użytkownika.
W polu Aplikacja wybierz aplikację, która została wcześniej zarejestrowana. Aby wyświetlić token w poniższym przykładzie, adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms
.Kliknij pozycję Uruchom przepływ użytkownika, a następnie zaloguj się przy użyciu poświadczeń konta. W oświadczeniu idp_access_token powinien zostać wyświetlony token dostępu dostawcy tożsamości.
Powinien zostać wyświetlony kod podobny do poniższego przykładu:
Dodawanie elementów oświadczenia
Otwórz plik TrustframeworkExtensions.xml i dodaj następujący element ClaimType z identyfikatorem
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>
Dodaj element OutputClaim do elementu TechnicalProfile dla każdego dostawcy tożsamości OAuth 2.0, dla którego chcesz uzyskać token dostępu. W poniższym przykładzie pokazano element dodany do profilu technicznego serwisu Facebook:
<ClaimsProvider> <DisplayName>Facebook</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Facebook-OAUTH"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" /> </OutputClaims> ... </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Zapisz plik TrustframeworkExtensions.xml.
Otwórz plik zasad jednostki uzależnionej, taki jak SignUpOrSignIn.xml, i dodaj element OutputClaim do pliku TechnicalProfile:
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <TechnicalProfile Id="PolicyProfile"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/> </OutputClaims> ... </TechnicalProfile> </RelyingParty>
Zapisz plik zasad.
Przetestuj swoje zasady
Podczas testowania aplikacji w usłudze Azure AD B2C może być przydatne zwrócenie https://jwt.ms
tokenu usługi Azure AD B2C w celu sprawdzenia w nim oświadczeń.
Przekazywanie plików
- Zaloguj się w witrynie Azure Portal.
- Jeśli masz dostęp do wielu dzierżaw, wybierz ikonę Ustawienia w górnym menu, aby przełączyć się do dzierżawy usługi Azure AD B2C z menu Katalogi i subskrypcje.
- Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz usługę Azure AD B2C.
- Wybierz pozycję Identity Experience Framework(Struktura obsługi tożsamości).
- Na stronie Zasady niestandardowe kliknij pozycję Przekaż zasady.
- Wybierz pozycję Zastąp zasady, jeśli istnieją, a następnie wyszukaj i wybierz plik TrustframeworkExtensions.xml .
- Wybierz opcję Prześlij.
- Powtórz kroki od 5 do 7 dla pliku jednostki uzależnionej, na przykład SignUpOrSignIn.xml.
Uruchamianie zasad
Otwórz zmienione zasady. Na przykład B2C_1A_signup_signin.
W polu Aplikacja wybierz aplikację, która została wcześniej zarejestrowana. Aby wyświetlić token w poniższym przykładzie, adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms
.Wybierz opcję Uruchom teraz.
Powinien zostać wyświetlony kod podobny do poniższego przykładu:
Przekazywanie tokenu odświeżania dostawcy tożsamości (opcjonalnie)
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. Aplikacja kliencka może następnie w razie potrzeby wymienić token odświeżania dostawcy tożsamości dla nowego tokenu 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 serwisów Facebook, Google i GitHub.
Aby przekazać token odświeżania dostawcy tożsamości, wykonaj następujące kroki:
Otwórz plik TrustframeworkExtensions.xml i dodaj następujący element ClaimType z identyfikatorem
identityProviderRefreshToken
elementu ClaimsSchema.<ClaimType Id="identityProviderRefreshToken"> <DisplayName>Identity provider refresh token</DisplayName> <DataType>string</DataType> </ClaimType>
Dodaj element OutputClaim do elementu TechnicalProfile dla każdego dostawcy tożsamości OAuth 2.0, dla którego chcesz odświeżyć token. W poniższym przykładzie pokazano element dodany do profilu technicznego serwisu Facebook:
<ClaimsProvider> <DisplayName>Facebook</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Facebook-OAUTH"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" /> </OutputClaims> ... </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Niektórzy dostawcy tożsamości wymagają uwzględnienia metadanych lub zakresów w profilu technicznym dostawcy tożsamości.
W przypadku dostawcy tożsamości Google dodaj dwa typy
access_type
oświadczeń iprompt
. 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ą mieć różne metody wystawiania tokenu odświeżania. Postępuj zgodnie z odbiorcami dostawcy tożsamości i dodaj niezbędne elementy do profilu technicznego dostawcy tożsamości.
Zapisz zmiany wprowadzone w pliku TrustframeworkExtensions.xml .
Otwórz plik zasad jednostki uzależnionej, taki jak SignUpOrSignIn.xml, i dodaj element OutputClaim do pliku TechnicalProfile:
<RelyingParty> <DefaultUserJourney ReferenceId="SignUpOrSignIn" /> <TechnicalProfile Id="PolicyProfile"> <OutputClaims> <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/> </OutputClaims> ... </TechnicalProfile> </RelyingParty>
Zapisz zmiany wprowadzone w pliku zasad jednostki uzależnionej.
Przekaż plik TrustframeworkExtensions.xml, a następnie plik zasad jednostki uzależnionej.
Następne kroki
Dowiedz się więcej na temat przeglądu tokenów usługi Azure AD B2C.