Konfigurowanie przesyłania zabezpieczeń za pomocą usługi Azure Active Directory B2C na potrzeby uwierzytelniania bez hasła

Z tego samouczka dowiesz się, jak zintegrować uwierzytelnianie usługi Azure Active Directory B2C (Azure AD B2C) przy użyciu funkcji Transmit Security BindID, czyli rozwiązania do uwierzytelniania bez hasła. BindID używa silnego uwierzytelniania biometrycznego Fast Identity Online (FIDO2) do niezawodnego uwierzytelniania wielokanałowego. Rozwiązanie zapewnia bezproblemowe logowanie dla klientów na różnych urządzeniach i kanałach, jednocześnie zmniejszając oszustwa, wyłudzanie informacji i ponowne użycie poświadczeń.

Opis scenariusza

Poniższy diagram architektury ilustruje implementację.

Diagram architektury BindID i Azure AD B2C.

  1. Użytkownik otwiera stronę logowania Azure AD B2C i loguje się lub rejestruje.
  2. Azure AD B2C przekierowuje użytkownika do identyfikatora BindID przy użyciu żądania OpenID Connect (OIDC).
  3. BindID uwierzytelnia użytkownika przy użyciu appless FIDO2 biometrycznych, takich jak odcisk palca.
  4. Odpowiedź zdecentralizowanego uwierzytelniania jest zwracana do identyfikatora BindID.
  5. Odpowiedź OIDC jest przekazywana do Azure AD B2C.
  6. Użytkownik otrzymuje lub odmawia dostępu do aplikacji na podstawie wyników weryfikacji.

Wymagania wstępne

Aby rozpocząć pracę, potrzebne będą następujące elementy:

Rejestrowanie aplikacji w identyfikatorze BindID

Aby rozpocząć:

  1. Przejdź do developer.bindid.io, aby skonfigurować aplikację.
  2. Dodaj aplikację w witrynie BindID Administracja Portal. Logowanie jest wymagane.
Właściwość Opis
Nazwa Nazwa aplikacji
Domena Wprowadź your-B2C-tenant-name.onmicrosoft.com. Zastąp your-B2C-tenant element dzierżawą usługi Azure AD B2C.
Identyfikatory URI przekierowania https://jwt.ms/
Adresy URL przekierowania Wprowadź https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Zastąp your-B2C-tenant element dzierżawą usługi Azure AD B2C. W przypadku domeny niestandardowej zastąp element your-B2C-tenant-name.b2clogin.com domeną niestandardową.
  1. Po zarejestrowaniu zostanie wyświetlony identyfikator klienta i klucz tajny klienta .
  2. Zarejestruj wartości do późniejszego użycia.

Konfigurowanie identyfikatora BindID jako dostawcy tożsamości w usłudze Azure AD B2C

Aby uzyskać poniższe instrukcje, użyj katalogu z dzierżawą usługi Azure AD B2C.

  1. Zaloguj się do Azure Portal jako administrator globalny.
  2. Na pasku narzędzi portalu wybierz pozycję Katalogi i subskrypcje.
  3. W ustawieniach portalu | Strona Katalogi i subskrypcje na liście Nazwa katalogu znajduje katalog Azure AD B2C.
  4. Wybierz pozycję Przełącz.
  5. W lewym górnym rogu Azure Portal wybierz pozycję Wszystkie usługi.
  6. Wyszukaj i wybierz pozycję Azure AD B2C.
  7. Wybierz pozycję Dostawcy tożsamości.
  8. Wybierz pozycję Nowy dostawca OpenID Connect.
  9. Wprowadź nazwę.
  10. W polu Adres URL metadanych wprowadź wartość https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. W polu Identyfikator klienta wprowadź zarejestrowany identyfikator klienta.
  12. W polu Klucz tajny klienta wprowadź zarejestrowany klucz tajny klienta.
  13. W polu Zakres wprowadź wartość openid email.
  14. W polu Typ odpowiedzi wybierz kod.
  15. W obszarze Tryb odpowiedzi wybierz pozycję form_post.
  16. W obszarze Mapowanie oświadczeń dostawcy tożsamości w polu Identyfikator użytkownika wybierz pozycję sub.
  17. W przypadku Email wybierz pozycję email.
  18. Wybierz pozycję Zapisz.

Tworzenie przepływu użytkownika

  1. W dzierżawie usługi Azure AD B2C w obszarze Zasady wybierz pozycję Przepływy użytkownika.
  2. Wybierz pozycję Nowy przepływ użytkownika.
  3. Wybierz pozycję Zarejestruj się i zaloguj się jako typ przepływu użytkownika.
  4. Wybierz przycisk Utwórz.
  5. Wprowadź nazwę.
  6. W obszarze Dostawcy tożsamości w obszarze Konta lokalne wybierz pozycję Brak. Ta akcja wyłącza uwierzytelnianie oparte na wiadomościach e-mail i hasłach.
  7. W przypadku niestandardowych dostawców tożsamości wybierz utworzonego dostawcę tożsamości BindID, takiego jak Logowanie przy użyciu identyfikatora BindID.
  8. Wybierz przycisk Utwórz.

Testowanie przepływu użytkownika

  1. W dzierżawie usługi Azure AD B2C wybierz pozycję Przepływy użytkownika.
  2. Wybierz utworzony przepływ użytkownika, taki jak B2C_1_signupsignin.
  3. W polu Aplikacja wybierz zarejestrowaną aplikację internetową. Adres URL odpowiedzi to https://jwt.ms.
  4. Wybierz pozycję Uruchom przepływ użytkownika.
  5. Przeglądarka jest przekierowywana do strony logowania BindID.
  6. Wprowadź zarejestrowaną wiadomość e-mail konta.
  7. Uwierzytelnia się przy użyciu biometrii FIDO2 appless, takich jak odcisk palca.
  8. Przeglądarka jest przekierowywana do https://jwt.ms. Zawartość jest wyświetlana dla tokenu zwróconego przez usługę Azure AD B2C.

Tworzenie klucza zasad BindID

Dodaj klucz tajny klienta aplikacji BindID jako klucz zasad. Aby uzyskać poniższe instrukcje, użyj katalogu z dzierżawą usługi Azure AD B2C.

  1. Zaloguj się w witrynie Azure Portal.
  2. Na pasku narzędzi portalu wybierz pozycję Katalogi i subskrypcje.
  3. W ustawieniach portalu | Strona Katalogi i subskrypcje na liście Nazwa katalogu znajdź katalog Azure AD B2C.
  4. Wybierz pozycję Przełącz.
  5. Na stronie Przegląd w obszarze Zasady wybierz pozycję Struktura środowiska tożsamości.
  6. Wybierz pozycję Klucze zasad.
  7. Wybierz pozycję Dodaj.
  8. W obszarze Opcje wybierz pozycję Ręczne.
  9. Wprowadź nazwę. Prefiks B2C_1A_ dołącza do nazwy klucza.
  10. W polu Wpis tajny wprowadź zarejestrowany klucz tajny klienta.
  11. W obszarze Użycie klucza wybierz pozycję Podpis.
  12. Wybierz przycisk Utwórz.

Konfigurowanie identyfikatora BindID jako dostawcy tożsamości

Aby włączyć logowanie przy użyciu identyfikatora BindID, zdefiniuj identyfikator BindID jako dostawcę oświadczeń, który Azure AD B2C komunikuje się za pośrednictwem punktu końcowego. Punkt końcowy udostępnia oświadczenia używane przez Azure AD B2C do weryfikowania użytkownika uwierzytelnionego przy użyciu tożsamości cyfrowej na urządzeniu.

Dodaj bindID jako dostawcę oświadczeń. Aby rozpocząć pracę, uzyskaj niestandardowe pakiety początkowe zasad z usługi GitHub, a następnie zaktualizuj pliki XML w pakiecie startowym SocialAndLocalAccounts przy użyciu nazwy dzierżawy usługi Azure AD B2C:

  1. Otwórz folder zip active-directory-b2c-custom-policy-starterpack-main.zip lub sklonuj repozytorium:

        git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. W plikach w katalogu LocalAccounts zastąp ciąg yourtenant nazwą dzierżawy Azure AD B2C.

  3. Otwórz klasę LocalAccounts/ TrustFrameworkExtensions.xml.

  4. Znajdź element ClaimsProviders . Jeśli nie zostanie wyświetlony, dodaj go pod elementem głównym.

  5. Dodaj nowy element ClaimsProvider podobny do następującego przykładu:

     <ClaimsProvider>
         <Domain>signin.bindid-sandbox.io</Domain>
         <DisplayName>BindID</DisplayName>
         <TechnicalProfiles>
           <TechnicalProfile Id="BindID-OpenIdConnect">
             <DisplayName>BindID</DisplayName>
             <Protocol Name="OpenIdConnect" />
             <Metadata>
               <Item Key="METADATA">https://signin.bindid-sandbox.io/.well-known/openid-configuration</Item>
                <!-- Update the Client ID below to the BindID Application ID -->
               <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
               <Item Key="response_types">code</Item>
               <Item Key="scope">openid email</Item>
               <Item Key="response_mode">form_post</Item>
               <Item Key="HttpBinding">POST</Item>
               <Item Key="UsePolicyInRedirectUri">false</Item>
               <Item Key="AccessTokenResponseFormat">json</Item>
             </Metadata>
             <CryptographicKeys>
               <Key Id="client_secret" StorageReferenceId="B2C_1A_BindIDClientSecret" />
             </CryptographicKeys>
             <OutputClaims>
               <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
               <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
               <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
               <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
             </OutputClaims>
             <OutputClaimsTransformations>
               <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
               <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
               <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
             </OutputClaimsTransformations>
             <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
           </TechnicalProfile>
         </TechnicalProfiles>
       </ClaimsProvider>    
    
  6. Ustaw client_id przy użyciu zarejestrowanego identyfikatora aplikacji BindID.

  7. Wybierz pozycję Zapisz.

Dodawanie podróży użytkownika

Dostawca tożsamości nie znajduje się na stronach logowania. Jeśli masz niestandardową podróż użytkownika, przejdź do sekcji Dodawanie dostawcy tożsamości do podróży użytkownika, w przeciwnym razie utwórz zduplikowaną podróż użytkownika szablonu:

  1. W pakiecie startowym otwórz LocalAccounts/ TrustFrameworkBase.xml plik.
  2. Znajdź i skopiuj zawartość elementu UserJourney , który zawiera Id=SignUpOrSignInelement .
  3. Otwórz klasę LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Znajdź element UserJourneys . Jeśli nie ma elementu, dodaj go.
  5. Wklej element UserJourney jako element podrzędny elementu UserJourneys.
  6. Zmień nazwę identyfikatora podróży użytkownika.

Dodawanie dostawcy tożsamości do podróży użytkownika

Dodaj nowego dostawcę tożsamości do podróży użytkownika.

  1. Znajdź element kroku aranżacji, który zawiera Type=CombinedSignInAndSignUpelement , lub Type=ClaimsProviderSelection w podróży użytkownika. Zazwyczaj jest to pierwszy krok aranżacji. Element ClaimsProviderSelections ma listę dostawcy tożsamości, za pomocą którego loguje się użytkownik. Kolejność elementów kontroluje kolejność przycisków logowania.
  2. Dodaj element ClaimsProviderSelection XML.
  3. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.
  4. Dodaj element ClaimsExchange .
  5. Ustaw identyfikator na wartość identyfikatora wymiany oświadczeń docelowych. Ta akcja łączy przycisk BindID z BindID-SignIn.
  6. Zaktualizuj wartość TechnicalProfileReferenceId na utworzony identyfikator profilu technicznego.

Poniższy kod XML przedstawia podróż użytkownika orkiestracji z dostawcą tożsamości.

    <OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
      <ClaimsProviderSelections>
        ...
        <ClaimsProviderSelection TargetClaimsExchangeId="BindIDExchange" />
      </ClaimsProviderSelections>
      ...
    </OrchestrationStep>
    
    <OrchestrationStep Order="2" Type="ClaimsExchange">
      ...
      <ClaimsExchanges>
        <ClaimsExchange Id="BindIDExchange" TechnicalProfileReferenceId="BindID-OpenIdConnect" />
      </ClaimsExchanges>
    </OrchestrationStep>

Konfigurowanie zasad jednostki uzależnionej

Zasady jednostki uzależnionej, na przykład SignUpOrSignIn.xml, określają podróż użytkownika Azure AD wykonywane przez usługę B2C. Oświadczenia przekazywane do aplikacji można kontrolować, dostosowując element OutputClaims elementu PolicyProfile TechnicalProfileProfile . W tym samouczku aplikacja otrzymuje atrybuty użytkownika, takie jak nazwa wyświetlana, imię, nazwisko, adres e-mail, objectId, dostawca tożsamości i identyfikator dzierżawy.

Zobacz: Azure-Samples/active-directory-b2c-custom-policy-starterpack

  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignInWithBindID" />
    <TechnicalProfile Id="BindID-OpenIdConnect">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub"/>
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>

Przekazywanie zasad niestandardowych

  1. Zaloguj się w witrynie Azure Portal.
  2. Na pasku narzędzi portalu wybierz pozycję Katalogi i subskrypcje.
  3. W ustawieniach portalu | Strona Katalogi i subskrypcje na liście Nazwa katalogu znajduje katalog Azure AD B2C.
  4. Wybierz pozycję Przełącz.
  5. W Azure Portal wyszukaj i wybierz pozycję Azure AD B2C.
  6. W obszarze Zasady wybierz pozycję Struktura środowiska tożsamości.
  7. Wybierz pozycję Przekaż zasady niestandardowe.
  8. Przekaż pliki w pakiecie startowym LocalAccounts w następującej kolejności:
  • Podstawowe zasady, na przykład TrustFrameworkBase.xml
  • Zasady lokalizacji, na przykład TrustFrameworkLocalization.xml
  • Zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml
  • Zasady jednostki uzależnionej, takie jak SignUpOrSignIn.xml

Testowanie zasad niestandardowych

Aby uzyskać poniższe instrukcje, użyj katalogu z dzierżawą usługi Azure AD B2C.

  1. W dzierżawie usługi Azure AD B2C i w obszarze Zasady wybierz pozycję Struktura środowiska tożsamości.
  2. W obszarze Zasady niestandardowe wybierz pozycję B2C_1A_signup_signin.
  3. W polu Aplikacja wybierz zarejestrowaną aplikację internetową. Adres URL odpowiedzi to https://jwt.ms.
  4. Wybierz pozycję Uruchom teraz.
  5. Przeglądarka jest przekierowywana do strony logowania BindID.
  6. Wprowadź zarejestrowaną wiadomość e-mail konta.
  7. Uwierzytelnianie przy użyciu biometrii FIDO2 appless, takich jak odcisk palca.
  8. Przeglądarka jest przekierowywana do https://jwt.ms. Zostanie wyświetlona zawartość tokenu zwrócona przez Azure AD B2C.

Następne kroki

Aby uzyskać dodatkowe informacje, zapoznaj się z następującymi artykułami: