Samouczek: konfigurowanie usługi Azure Active Directory B2C przy użyciu protokołu BlokSec na potrzeby uwierzytelniania bez hasła

Zanim rozpoczniesz

Usługa Azure Active Directory B2C ma dwie metody definiowania interakcji użytkownika z aplikacjami: wstępnie zdefiniowanych przepływów użytkownika lub konfigurowalnych zasad niestandardowych.

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe dotyczą głównie złożonych scenariuszy. W przypadku większości scenariuszy zalecamy wbudowane przepływy użytkowników.
Zobacz Omówienie przepływów użytkownika i zasad niestandardowych

Azure AD B2C i BlokSec

Dowiedz się, jak zintegrować uwierzytelnianie usługi Azure Active Directory B2C (Azure AD B2C) z routerem tożsamości zdecentralizowanej BlokSec. Rozwiązanie BlokSec upraszcza logowanie użytkowników przy użyciu uwierzytelniania bez hasła i uwierzytelniania wieloskładnikowego bez tokenu. Rozwiązanie chroni klientów przed atakami związanymi z tożsamościami, takimi jak wypychanie haseł, wyłudzanie informacji i man-in-the-middle.

Aby dowiedzieć się więcej, przejdź do bloksec.com: BlokSec Technologies Inc.

Opis scenariusza

Integracja z protokołem BlokSec obejmuje następujące składniki:

  • Azure AD B2C — serwer autoryzacji i dostawca tożsamości (IdP) dla aplikacji B2C
  • BlokSec Zdecentralizowany router tożsamości — brama dla usług, które stosują bloksec DIaaS do kierowania żądań uwierzytelniania i autoryzacji do aplikacji dostawcy tożsamości osobistej użytkownika (PIdP)
    • Jest to dostawca tożsamości OpenID Connect (OIDC) w usłudze Azure AD B2C
  • Aplikacja mobilna oparta na zestawie BLOKSec SDK — identyfikator PIdP użytkownika w scenariuszu uwierzytelniania zdecentralizowanego.
    • Jeśli nie używasz zestawu SDK Usługi BlokSec, przejdź do sklepu Google Play, aby uzyskać bezpłatny identyfikator yuID usługi BlokSec

Poniższy diagram architektury przedstawia przepływ rejestracji i logowania w implementacji rozwiązania BlokSec.

Diagram przedstawiający przepływ rejestracji i logowania w implementacji rozwiązania BlokSec.

  1. Użytkownik loguje się do aplikacji usługi Azure AD B2C i jest przekazywany do Azure AD zasad logowania i rejestracji B2C
  2. Azure AD B2C przekierowuje użytkownika do zdecentralizowanego routera tożsamości BlokSec przy użyciu przepływu kodu autoryzacji OIDC.
  3. Router BlokSec wysyła powiadomienie wypychane do aplikacji mobilnej użytkownika ze szczegółami żądania uwierzytelniania i autoryzacji.
  4. Użytkownik przegląda wyzwanie uwierzytelniania. Zaakceptowany użytkownik jest monitowany o biometrię, taką jak odcisk palca lub skanowanie twarzy.
  5. Odpowiedź jest podpisana cyfrowo przy użyciu unikatowego klucza cyfrowego użytkownika. Odpowiedź uwierzytelniania zapewnia dowód posiadania, obecności i zgody. Odpowiedź powraca do routera.
  6. Router weryfikuje podpis cyfrowy względem niezmiennego unikatowego klucza publicznego użytkownika przechowywanego w rejestrze rozproszonym. Router odpowiada na Azure AD B2C z wynikiem uwierzytelniania.
  7. Użytkownik otrzymuje lub odmawia dostępu.

Włączanie protokołu BlokSec

  1. Przejdź do bloksec.com i wybierz pozycję Zażądaj dzierżawy demonstracyjnej .
  2. W polu komunikatu wskaż, że chcesz zintegrować z usługą Azure AD B2C.
  3. Pobierz i zainstaluj bezpłatną aplikację mobilną BlokSec yuID.
  4. Po przygotowaniu dzierżawy demonstracyjnej pojawia się wiadomość e-mail.
  5. Na urządzeniu przenośnym z aplikacją BlokSec wybierz link, aby zarejestrować konto administratora w aplikacji yuID.

Wymagania wstępne

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

Zobacz również Samouczek: tworzenie przepływów użytkownika i zasad niestandardowych w usłudze Azure AD B2C

Tworzenie rejestracji aplikacji w usłudze BlokSec

W e-mailu rejestracji konta z blokuSec znajdź link do konsoli administracyjnej BlokuSec.

  1. Zaloguj się do konsoli administracyjnej blokuSec.
  2. Na głównym pulpicie nawigacyjnym wybierz pozycję Dodaj aplikację > Utwórz niestandardową.
  3. W polu Nazwa wprowadź Azure AD B2C lub nazwę aplikacji.
  4. W polu Typ logowania jednokrotnego wybierz pozycję OIDC.
  5. W polu Identyfikator URI logo wprowadź link do obrazu logo.
  6. W przypadku identyfikatorów URI przekierowania użyj polecenia https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Na przykład https://fabrikam.b2clogin.com/fabrikam.onmicrosoft.com/oauth2/authresp. W przypadku domeny niestandardowej wprowadź .https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp
  7. W obszarze Identyfikatory URI przekierowania po wylogowanie wprowadź wartość https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/{policy}/oauth2/v2.0/logout.
  8. Wybierz utworzoną aplikację Azure AD B2C, aby otworzyć konfigurację aplikacji.
  9. Wybierz pozycję Generuj wpis tajny aplikacji.

Dowiedz się więcej: Wysyłanie żądania wylogowania.

Uwaga

Aby skonfigurować dostawcę tożsamości (IdP) w usłudze Azure AD B2C, potrzebny jest identyfikator aplikacji i wpis tajny aplikacji.

Dodawanie nowego dostawcy tożsamości w usłudze Azure AD B2C

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

  1. Zaloguj się do Azure Portal jako administrator globalny dzierżawy usługi Azure AD B2C.
  2. Na pasku narzędzi portalu wybierz pozycję Katalogi i subskrypcje.
  3. Na stronie Ustawienia portalu katalogi i subskrypcje na liście Nazwa katalogu znajdź 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. Przejdź do pozycji Pulpit nawigacyjny>Dostawcy tożsamościusługi Azure Active Directory B2C>.
  8. Wybierz pozycję Nowy dostawca OpenID Connect.
  9. Wybierz pozycję Dodaj.

Konfigurowanie dostawcy tożsamości

  1. Wybierz typ > dostawcy tożsamości OpenID Connect
  2. W polu Nazwa wprowadź wartość BlokSec yuID Passwordless lub inną nazwę.
  3. W polu Adres URL metadanych wprowadź wartość https://api.bloksec.io/oidc/.well-known/openid-configuration.
  4. W polu Client IDV (Identyfikator klienta) wprowadź identyfikator aplikacji z interfejsu użytkownika administratora protokołu BlokSec.
  5. W polu Klucz tajny klienta wprowadź wpis tajny aplikacji w interfejsie użytkownika administratora usługi BlokSec.
  6. W polu Zakres wybierz pozycję Profil poczty e-mail OpenID.
  7. W polu Typ odpowiedzi wybierz pozycję Kod.
  8. W obszarze Wskazówka dotycząca domeny wybierz pozycję yuID.
  9. Wybierz przycisk OK.
  10. Wybierz pozycję Mapuj oświadczenia tego dostawcy tożsamości.
  11. W polu Identyfikator użytkownika wybierz pozycję sub.
  12. W polu Nazwa wyświetlana wybierz pozycję Nazwa.
  13. W polu Nadana nazwa użyj given_name.
  14. W przypadku nazwiska użyj family_name.
  15. W przypadku Email użyj wiadomości e-mail.
  16. Wybierz pozycję Zapisz.

Rejestracja użytkownika

  1. Zaloguj się do konsoli administracyjnej blokuSec przy użyciu podanego poświadczenia.
  2. Przejdź do utworzonej wcześniej aplikacji Azure AD B2C.
  3. W prawym górnym rogu wybierz ikonę koła zębatego .
  4. Wybierz pozycję Utwórz konto.
  5. W obszarze Tworzenie konta wprowadź informacje o użytkowniku. Zanotuj nazwę konta.
  6. Wybierz pozycję Prześlij.

Użytkownik otrzymuje wiadomość e-mail dotyczącą rejestracji konta pod podanym adresem e-mail. Poinstruuj użytkownika, aby wybrał link rejestracji na urządzeniu przenośnym przy użyciu aplikacji BlokSec yuID.

Tworzenie zasad przepływu użytkownika

Aby uzyskać następujące instrukcje, upewnij się, że bloksec jest nowym dostawcą tożsamości OIDC (IdP).

  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ę w>obszarze Utwórzwersję>.
  4. Wprowadź nazwę zasad.
  5. W sekcji Dostawcy tożsamości wybierz utworzonego dostawcę tożsamości BlokSec.
  6. W polu Konto lokalne wybierz pozycję Brak. Ta akcja wyłącza uwierzytelnianie oparte na wiadomościach e-mail i hasłach.
  7. Wybierz pozycję Uruchom przepływ użytkownika
  8. W formularzu wprowadź adres URL odpowiedzi, na przykład https://jwt.ms.
  9. Przeglądarka jest przekierowywana do strony logowania usługi BlokSec.
  10. Wprowadź nazwę konta z rejestracji użytkownika.
  11. Użytkownik otrzymuje powiadomienie wypychane na urządzeniu przenośnym za pomocą aplikacji BlokSec yuID.
  12. Użytkownik otworzy powiadomienie i pojawi się wyzwanie uwierzytelniania.
  13. Jeśli uwierzytelnianie zostanie zaakceptowane, przeglądarka przekierowuje użytkownika do adresu URL odpowiedzi.

Uwaga

W usłudze Azure Active Directory B2C zasady niestandardowe dotyczą głównie złożonych scenariuszy. W przypadku większości scenariuszy zalecamy wbudowane przepływy użytkowników.
Zobacz, Przepływy użytkownika i zasady niestandardowe — omówienie

Tworzenie klucza zasad

Zapisz wpis tajny klienta zanotowany w dzierżawie usługi Azure AD B2C. 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. Na stronie Ustawienia portalu katalogi i subskrypcje na liście Nazwa katalogu znajdź katalog Azure AD katalogu 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. Na stronie Przegląd wybierz pozycję Identity Experience Framework.
  8. Wybierz pozycję Klucze zasad.
  9. Wybierz pozycję Dodaj.
  10. W obszarze Opcje wybierz pozycję Ręczne.
  11. Wprowadź nazwę zasad dla klucza zasad. Na przykład BlokSecAppSecret. Prefiks B2C_1A_ jest dodawany do nazwy klucza.
  12. W obszarze Wpis tajny wprowadź zanotowany wpis tajny klienta.
  13. W obszarze Użycie klucza wybierz pozycję Podpis.
  14. Wybierz przycisk Utwórz.

Konfigurowanie protokołu BlokSec jako dostawcy tożsamości

Aby umożliwić użytkownikom logowanie się przy użyciu zdecentralizowanej tożsamości BlokSec, zdefiniuj bloksec jako dostawcę oświadczeń. Ta akcja gwarantuje, że Azure AD B2C komunikuje się z nim za pośrednictwem punktu końcowego. Azure AD B2C używa oświadczeń punktów końcowych do weryfikowania tożsamości użytkowników przy użyciu biometrii, takiej jak odcisk palca lub skanowanie twarzy.

Aby zdefiniować bloksec jako dostawcę oświadczeń, dodaj go do elementu ClaimsProvider w pliku rozszerzenia zasad.

  1. Otwórz klasę TrustFrameworkExtensions.xml.

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

  3. Aby dodać nowy element ClaimsProvider:

    <ClaimsProvider>
      <Domain>bloksec</Domain>
      <DisplayName>BlokSec</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="BlokSec-OpenIdConnect">
          <DisplayName>BlokSec</DisplayName>
          <Description>Login with your BlokSec decentriled identity</Description>
          <Protocol Name="OpenIdConnect" />
          <Metadata>
            <Item Key="METADATA">https://api.bloksec.io/oidc/.well-known/openid-configuration</Item>
            <!-- Update the Client ID below to the BlokSec Application ID -->
            <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item>
            <Item Key="response_types">code</Item>
            <Item Key="scope">openid profile email</Item>
            <Item Key="response_mode">form_post</Item>
            <Item Key="HttpBinding">POST</Item>
            <Item Key="UsePolicyInRedirectUri">false</Item>
            <Item Key="DiscoverMetadataByTokenIssuer">true</Item>
            <Item Key="ValidTokenIssuerPrefixes">https://api.bloksec.io/oidc</Item>
          </Metadata>
          <CryptographicKeys>
            <Key Id="client_secret" StorageReferenceId="B2C_1A_BlokSecAppSecret" />
          </CryptographicKeys>
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
            <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
            <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" />
            <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" />
            <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
            <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" />
            <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" />
          </OutputClaims>
          <OutputClaimsTransformations>
            <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
            <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
            <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
            <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
          </OutputClaimsTransformations>
          <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Ustaw client_id na identyfikator aplikacji z rejestracji aplikacji.

  5. Wybierz pozycję Zapisz.

Dodawanie podróży użytkownika

Skorzystaj z poniższych instrukcji, jeśli dostawca tożsamości jest skonfigurowany, ale nie na żadnej stronie logowania. Jeśli nie masz niestandardowej podróży użytkownika, skopiuj podróż użytkownika szablonu.

  1. W pakiecie startowym otwórz TrustFrameworkBase.xml plik.
  2. Znajdź i skopiuj zawartość elementu UserJourneys , który zawiera identyfikator=SignUpOrSignIn.
  3. Otwórz klasę TrustFrameworkExtensions.xml.
  4. Znajdź element UserJourneys . Jeśli element nie zostanie wyświetlony, dodaj go.
  5. Wklej zawartość elementu UserJourney skopiowanego jako element podrzędny elementu UserJourneys .
  6. Zmień nazwę identyfikatora podróży użytkownika. Na przykład ID=CustomSignUpSignIn.

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

Jeśli masz podróż użytkownika, dodaj do niego nowego dostawcę tożsamości. Najpierw dodaj przycisk logowania, a następnie połącz go z akcją, która jest utworzonym profilem technicznym.

  1. W podróży użytkownika znajdź element kroku aranżacji, który zawiera type=CombinedSignInAndSignUplub Type=ClaimsProviderSelection. Zazwyczaj jest to pierwszy krok aranżacji. Element ClaimsProviderSelections zawiera listę dostawców tożsamości na potrzeby logowania użytkownika. Kolejność elementów kontroluje kolejność przycisków logowania, które widzi użytkownik.
  2. Dodaj element ClaimsProviderSelection XML.
  3. Ustaw wartość TargetClaimsExchangeId na przyjazną nazwę.
  4. W następnym kroku aranżacji dodaj element ClaimsExchange .
  5. Ustaw identyfikator na wartość identyfikatora wymiany oświadczeń docelowych.
  6. Zaktualizuj wartość TechnicalProfileReferenceId na identyfikator utworzonego profilu technicznego.

Poniższy kod XML przedstawia dwa pierwsze kroki orkiestracji podróży użytkownika za pomocą dostawcy tożsamości:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="BlokSecExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="BlokSecExchange" TechnicalProfileReferenceId="BlokSec-OpenIdConnect" />
  </ClaimsExchanges>
</OrchestrationStep>

Konfigurowanie zasad jednostki uzależnionej

Zasady jednostki uzależnionej, na przykład SignUpSignIn.xml, określają podróż użytkownika Azure AD wykonywane przez usługę B2C.

  1. Znajdź element DefaultUserJourney w jednostki uzależnionej.
  2. 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 CustomSignUpOrSignIn dla podróży użytkownika identyfikator ReferenceId jest ustawiony na CustomSignUpOrSignInwartość .

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Przekazywanie zasad niestandardowych

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 katalogi i subskrypcje.
  3. Na stronie Ustawienia portalu katalogi i subskrypcje na liście Nazwa katalogu znajdź 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ż dwa zmienione pliki zasad w następującej kolejności:
  • Zasady rozszerzenia, na przykład TrustFrameworkExtensions.xml
  • Zasady jednostki uzależnionej, takie jak SignUpSignIn.xml

Testowanie zasad niestandardowych

  1. Wybierz zasady jednostki uzależnionej, na przykład B2C_1A_signup_signin.
  2. W polu Aplikacja wybierz zarejestrowaną aplikację internetową.
  3. Adres URL odpowiedzi jest wyświetlany jako https://jwt.ms.
  4. Wybierz pozycję Uruchom teraz.
  5. Na stronie rejestracji lub logowania wybierz pozycję Google , aby zalogować się przy użyciu konta Google.
  6. Przeglądarka jest przekierowywana do https://jwt.ms. Zobacz zawartość tokenu zwróconą przez usługę Azure AD B2C.

Dowiedz się więcej : Samouczek: rejestrowanie aplikacji internetowej w usłudze Azure Active Directory B2C

Następne kroki