Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
OpenID Connect to protokół uwierzytelniania oparty na protokole OAuth 2.0, który może służyć do bezpiecznego logowania użytkownika. Większość dostawców tożsamości korzystających z tego protokołu jest obsługiwana w usłudze Azure AD B2C.
W tym artykule wyjaśniono, jak można dodawać niestandardowych dostawców tożsamości OpenID Connect do przepływów użytkowników.
Ważne
Punkty końcowe muszą być zgodne z wymaganiami dotyczącymi zabezpieczeń usługi Azure AD B2C. Starsze wersje protokołu TLS i szyfry są przestarzałe. Aby uzyskać więcej informacji, zobacz wymagania dotyczące protokołu TLS i szyfrowania usługi Azure AD B2C.
Wymagania wstępne
- Utwórz przepływ użytkownika, aby użytkownicy mogli zarejestrować się i zalogować do aplikacji.
- Rejestrowanie aplikacji internetowej.
- Wykonaj kroki opisane w Jak rozpocząć z zasadami niestandardowymi w usłudze Active Directory B2C. W tym samouczku przedstawiono sposób aktualizowania niestandardowych plików zasad, aby korzystać z konfiguracji kont usługi Azure AD B2C.
- Rejestrowanie aplikacji internetowej.
Dodaj dostawcę tożsamości
- Zaloguj się do witryny Azure Portal przy użyciu konta, które ma co najmniej uprawnienia administratora zewnętrznego dostawcy tożsamości .
- 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.
- Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, wyszukaj i wybierz pozycję Azure AD B2C.
- Wybierz pozycję Dostawcy tożsamości, a następnie wybierz pozycję Nowy dostawca OpenID Connect.
- W polu Nazwa wprowadź nazwę. Na przykład wprowadź Contoso.
Zdefiniuj dostawcę tożsamości OpenId Connect, dodając go do elementu ClaimsProviders w pliku rozszerzenia zasad.
Otwórz TrustFrameworkExtensions.xml.
Znajdź element ClaimsProviders . Jeśli nie istnieje, dodaj go pod elementem głównym.
Dodaj nowy element ClaimsProvider w następujący sposób:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Login with Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Description>Login with your Contoso account</Description> <Protocol Name="OpenIdConnect"/> <Metadata> <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <!-- <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys> --> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Konfigurowanie dostawcy tożsamości
Każdy dostawca tożsamości OpenID Connect opisuje dokument metadanych zawierający większość informacji wymaganych do przeprowadzenia logowania. Dokument metadanych zawiera informacje, takie jak adresy URL do użycia i lokalizację publicznych kluczy podpisywania usługi. Dokument metadanych OpenID Connect jest zawsze znajdujący się w punkcie końcowym, który kończy się na .well-known/openid-configuration. W przypadku dostawcy tożsamości OpenID Connect, który chcesz dodać, wprowadź jego adres URL metadanych.
W polu URL metadanych wprowadź adres URL dokumentu metadanych OpenID Connect.
W metadanych profilu technicznego <Item Key="METADATA"> wprowadź adres URL dokumentu metadanych OpenID Connect.
Identyfikator klienta i klucz tajny
Aby umożliwić użytkownikom logowanie, dostawca tożsamości wymaga od deweloperów zarejestrowania aplikacji w swojej usłudze. Ta aplikacja ma identyfikator, który jest określany jako identyfikator klienta i klucz tajny klienta.
Sekret klienta jest opcjonalny. Należy jednak podać klucz tajny klienta, jeśli typ odpowiedzi to code, który używa klucza tajnego do wymiany kodu na token.
Aby dodać identyfikator klienta i klucz tajny klienta, skopiuj te wartości z dostawcy tożsamości i wprowadź je w odpowiednich polach.
W metadanych profilu technicznego <Item Key="client_id"> wprowadź identyfikator klienta.
Tworzenie klucza zasad
Jeśli klucz tajny klienta jest wymagany, zachowaj klucz tajny klienta, który został wcześniej zarejestrowany w dzierżawie Azure AD B2C.
Zaloguj się do witryny Azure Portal.
Upewnij się, że używasz katalogu zawierającego tenant usługi Azure AD B2C. Wybierz filtr Katalog i subskrypcja na pasku narzędzi portalu.
W ustawieniach portalu | Strona Katalogi i subskrypcje , znajdź katalog usługi Azure AD B2C na liście Nazwa katalogu, a następnie wybierz pozycję Przełącz.
Wybierz pozycję Wszystkie usługi w lewym górnym rogu witryny Azure Portal, a następnie wyszukaj i wybierz pozycję Azure AD B2C.
Na stronie Przegląd ogólny wybierz pozycję Identity Experience Framework.
Wybierz Klucze zasad, a następnie wybierz Dodaj.
W obszarze Opcje wybierz pozycję
Manual.Wprowadź nazwę klucza zasad. Na przykład
ContosoSecret. PrefiksB2C_1A_jest dodawany automatycznie do nazwy klucza.W Tajny wprowadź wcześniej zarejestrowany tajny klienta.
W obszarze Użycie klucza wybierz pozycję
Signature.Kliknij pozycję Utwórz.
W elemecie
CryptographicKeysXML dodaj następujący element:<CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys>
Zakres
Zakres definiuje informacje i uprawnienia, które chcesz zebrać od dostawcy tożsamości, na przykład openid profile. Aby odebrać token identyfikatora od dostawcy tożsamości, należy określić zakres openid.
Bez tokenu identyfikatora użytkownicy nie mogą zalogować się do usługi Azure AD B2C przy użyciu niestandardowego dostawcy tożsamości. Inne zakresy można dołączać oddzielone spacją. Zapoznaj się z dokumentacją niestandardowego dostawcy tożsamości, aby sprawdzić, jakie inne zakresy są dostępne.
W polu Zakres wprowadź zakresy od dostawcy tożsamości. Na przykład openid profile.
W metadanych technicznego profilu <Item Key="scope"> wprowadź zakresy uprawnień od dostawcy tożsamości. Na przykład openid profile.
Typ odpowiedzi
Typ odpowiedzi opisuje, jakiego rodzaju informacje są wysyłane z powrotem w początkowym wywołaniu do authorization_endpoint niestandardowego dostawcy tożsamości. Można użyć następujących typów odpowiedzi:
-
code: Zgodnie z przepływem kodu autoryzacji kod zostanie zwrócony z powrotem do usługi Azure AD B2C. Usługa Azure AD B2C przechodzi do wywołaniatoken_endpointw celu wymiany kodu na token. -
id_token: token identyfikacyjny jest zwracany do usługi Azure AD B2C przez niestandardowego dostawcę tożsamości.
W polu Typ odpowiedzi wybierz pozycję codelub id_token, zgodnie z ustawieniami dostawcy tożsamości.
W metadanych profilu technicznego <Item Key="response_types"> wybierz pozycję codelub id_token zgodnie z ustawieniami dostawcy tożsamości.
Tryb odpowiedzi
Tryb odpowiedzi definiuje metodę, która powinna służyć do wysyłania danych z powrotem z niestandardowego dostawcy tożsamości do usługi Azure AD B2C. Można użyć następujących trybów odpowiedzi:
-
form_post: Ten tryb odpowiedzi jest zalecany w celu uzyskania najlepszych zabezpieczeń. Odpowiedź jest przesyłana za pośrednictwem metody HTTPPOSTz kodem lub tokenem zakodowanym w treści przy użyciuapplication/x-www-form-urlencodedformatu . -
query: kod lub token jest zwracany jako parametr zapytania.
W trybie odpowiedzi wybierz pozycję form_postlub query, zgodnie z ustawieniami dostawcy tożsamości.
W metadanych profilu technicznego <Item Key="response_mode"> wybierz pozycję form_postlub query, zgodnie z ustawieniami dostawcy tożsamości.
Wskazówka dotycząca domeny
Wskazówkę dotyczącą domeny można użyć do przechodzenia bezpośrednio do strony logowania określonego dostawcy tożsamości zamiast wybierania przez użytkownika listy dostępnych dostawców tożsamości.
Aby zezwolić na takie zachowanie, wprowadź wartość dla wskazówki dotyczącej domeny. Aby przejść do niestandardowego dostawcy tożsamości, dołącz parametr domain_hint=<domain hint value> na końcu żądania podczas wywoływania usługi Azure AD B2C na potrzeby logowania.
W wskazówce domeny wprowadź nazwę domeny używaną w tej wskazówce.
W elemencie XML profilu technicznego <Domain>contoso.com</Domain> wprowadź nazwę domeny używaną w wskazówce dotyczącej domeny. Na przykład contoso.com.
Mapowanie oświadczeń
Po wysłaniu tokenu identyfikatora przez niestandardowego dostawcę tożsamości do usługi Azure AD B2C usługa Azure AD B2C musi mieć możliwość mapowania oświadczeń z odebranego tokenu na oświadczenia rozpoznawane i używane przez usługę Azure AD B2C. Dla każdego z poniższych mapowań zapoznaj się z dokumentacją niestandardowego dostawcy tożsamości, aby zrozumieć oświadczenia zwracane z powrotem w tokenach dostawcy tożsamości:
- Identyfikator użytkownika: wprowadź oświadczenie, które zawiera unikatowy identyfikator zalogowanych użytkowników.
- Nazwa wyświetlana: wprowadź oświadczenie zawierające nazwę wyświetlaną lub pełną nazwę użytkownika.
- Podana nazwa: wprowadź oświadczenie, które zawiera imię użytkownika.
- Nazwisko: wprowadź oświadczenie, które podaje nazwisko użytkownika.
- Adres e-mail: wprowadź oświadczenie zawierające adres e-mail użytkownika.
Element OutputClaims zawiera listę roszczeń zwróconych przez dostawcę tożsamości. Przypisz nazwę atrybutu określonego w twojej polityce do nazwy określonej przez dostawcę tożsamości. Pod elementem <OutputClaims> skonfiguruj atrybut PartnerClaimType na odpowiednią nazwę oświadczenia zdefiniowaną przez dostawcę tożsamości.
| Identyfikator typu roszczenia | TypRoszczeniaPartnera |
|---|---|
issuerUserId |
Wprowadź oświadczenie, które zawiera unikatowy identyfikator zalogowanych użytkowników. |
displayName |
Wprowadź oświadczenie zawierające nazwę wyświetlaną lub pełną nazwę użytkownika. |
givenName |
Wprowadź oświadczenie, które zawiera imię użytkownika. |
surName |
Wprowadź oświadczenie, które zawiera nazwisko użytkownika. |
email |
Wprowadź oświadczenie zawierające adres e-mail użytkownika. |
identityProvider |
Wprowadź oświadczenie, które zawiera nazwę wystawcy tokenu. Na przykład iss. Jeśli token dostarczony przez dostawcę tożsamości nie zawiera roszczenia dotyczącego wystawcy, ustaw atrybut DefaultValue z unikalnym identyfikatorem dostawcy tożsamości. Na przykład DefaultValue="contoso.com". |
Dodawanie dostawcy tożsamości do przepływu użytkownika
- W dzierżawie Azure AD B2C wybierz opcję Przepływy użytkownika.
- Kliknij przepływ użytkownika, do którego chcesz dodać dostawcę tożsamości.
- W obszarze Dostawcy tożsamości społecznościowych wybierz dodanego dostawcę tożsamości. Na przykład Contoso.
- Wybierz Zapisz.
Testowanie przepływu użytkownika
- Aby przetestować politykę, wybierz pozycję Uruchom przepływ użytkownika.
- W polu Aplikacja wybierz aplikację internetową o nazwie testapp1 , która została wcześniej zarejestrowana. Adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms. - Wybierz przycisk Uruchom przepływ użytkownika.
- Na stronie rejestracji lub logowania wybierz dostawcę tożsamości, którego chcesz użyć do zalogowania się. Na przykład Contoso.
Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.ms, gdzie wyświetlana jest zawartość tokenu zwróconego przez Azure AD B2C.
Dodanie ścieżki użytkownika
W tym momencie dostawca tożsamości został skonfigurowany, ale nie jest jeszcze dostępny na żadnej ze stron logowania. Jeśli nie masz własnej niestandardowej podróży użytkownika, utwórz duplikat szablonu podróży użytkownika, inaczej przejdź do następnego kroku.
- Otwórz plik TrustFrameworkBase.xml z pakietu startowego.
- Znajdź i skopiuj całą zawartość elementu UserJourney , który zawiera
Id="SignUpOrSignIn"element . - Otwórz TrustFrameworkExtensions.xml i znajdź element UserJourneys . Jeśli element nie istnieje, dodaj go.
- Wklej całą zawartość elementu UserJourney skopiowaną jako element podrzędny elementu UserJourneys .
- Zmień identyfikator podróży użytkownika. Na przykład
Id="CustomSignUpSignIn".
Dodaj dostawcę tożsamości do podróży użytkownika
Teraz, gdy masz ścieżkę użytkownika, dodaj nowego dostawcę tożsamości do tej ścieżki. Najpierw dodaj przycisk logowania, a następnie połącz przycisk z akcją. Akcja to utworzony wcześniej profil techniczny.
Znajdź element kroku aranżacji, który zawiera
Type="CombinedSignInAndSignUp"lubType="ClaimsProviderSelection"w ścieżce użytkownika. Zazwyczaj jest to pierwszy krok aranżacji. Element ClaimsProviderSelections zawiera listę dostawców tożsamości, za pomocą których użytkownik może się zalogować. Kolejność elementów kontroluje kolejność przycisków logowania przedstawionych użytkownikowi. Dodaj element XML ClaimsProviderSelection. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.W następnym kroku aranżacji dodaj element ClaimsExchange . Ustaw Id na wartość identyfikatora wymiany oświadczeń dla celu. Zaktualizuj wartość TechnicalProfileReferenceId na Id profilu technicznego utworzonego wcześniej.
Poniższy kod XML przedstawia dwa pierwsze kroki orkiestracji podróży użytkownika z dostawcą tożsamości:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Konfigurowanie polityki podmiotu polegającego
Polityka zaufanej strony, na przykład SignUpSignIn.xml, określa podróż użytkownika, którą zrealizuje Azure AD B2C. Znajdź element DefaultUserJourney w stronie zaufanej. Zaktualizuj identyfikator ReferenceId , aby był zgodny z identyfikatorem podróży użytkownika, w którym dodano dostawcę tożsamości.
W poniższym przykładzie dla ścieżki użytkownika CustomSignUpSignIn identyfikator ReferenceId jest ustawiony na:CustomSignUpSignIn
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
Przekaż zasady niestandardowe
- Zaloguj się do witryny Azure Portal.
- Wybierz ikonę Katalog i subskrypcja na pasku narzędzi portalu, a następnie wybierz katalog zawierający dzierżawę usługi Azure AD B2C.
- W witrynie Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.
- W obszarze Policieswybierz pozycję Identity Experience Framework.
- Wybierz Załaduj zasady niestandardowe, a następnie załaduj dwa zmienione pliki zasad w następującej kolejności: zasady rozszerzenia, na przykład
TrustFrameworkExtensions.xml, a następnie zasady strony zależnej, takie jakSignUpSignIn.xml.
- Wybierz zasady zaufanej strony, na przykład
B2C_1A_signup_signin. - W polu Aplikacja wybierz wcześniej zarejestrowaną aplikację internetową. Adres URL odpowiedzi powinien zawierać wartość
https://jwt.ms. - Wybierz przycisk Uruchom teraz .
- Na stronie rejestracji lub logowania wybierz pozycję Contoso , aby zalogować się przy użyciu konta Google.
Jeśli proces logowania zakończy się pomyślnie, przeglądarka zostanie przekierowana do https://jwt.ms, gdzie wyświetlana jest zawartość tokenu zwróconego przez Azure AD B2C.
Znane problemy
- Usługa Azure AD B2C nie obsługuje szyfrowania JWE (JSON Web Encryption) do wymiany zaszyfrowanych tokenów z dostawcami tożsamości openID connect.
Dalsze kroki
Aby uzyskać więcej informacji, zobacz przewodnik informacyjny dotyczący profilu technicznego programu OpenId Connect .