Sdílet prostřednictvím


Konfigurace zabezpečení přenosu pomocí Azure Active Directory B2C pro ověřování bez hesla

V tomto kurzu se naučíte integrovat ověřování Azure Active Directory B2C (Azure AD B2C) se službou Transmit Security BindID, což je řešení ověřování bez hesla. BindID používá silné biometrické ověřování FIDO2 (Fast Identity Online) pro spolehlivé vícekanálové ověřování. Řešení zajišťuje bezproblémové přihlašování pro zákazníky na různých zařízeních a kanálech a současně snižuje podvody, útoky phishing a opakované použití přihlašovacích údajů.

Popis scénáře

Následující diagram architektury znázorňuje implementaci.

Diagram architektury BindID a Azure AD B2C

  1. Uživatel otevře přihlašovací stránku Azure AD B2C a přihlásí se nebo se zaregistruje.
  2. Azure AD B2C přesměruje uživatele na BindID pomocí požadavku OpenID Connect (OIDC).
  3. BindID ověřuje uživatele pomocí biometriky appless FIDO2, jako je otisk prstu.
  4. Decentralizovaná odpověď ověřování se vrátí do BindID.
  5. Odpověď OIDC předá Azure AD B2C.
  6. Uživateli je udělen nebo odepřen přístup k aplikaci na základě výsledků ověření.

Požadavky

Na začátek budete potřebovat:

Registrace aplikace v BindID

Jak začít:

  1. Přejděte na developer.bindid.io a nakonfigurujte aplikaci.
  2. Přidejte aplikaci do bindID Správa Portal. Přihlášení je povinné.
Vlastnost Popis
Název Název aplikace
Doména Zadejte your-B2C-tenant-name.onmicrosoft.com. Nahraďte your-B2C-tenant svým tenantem Azure AD B2C.
Identifikátory URI pro přesměrování https://jwt.ms/
Adresy URL pro přesměrování Zadejte https://your-B2C-tenant-name.b2clogin.com/your-B2C-tenant-name.onmicrosoft.com/oauth2/authresp. Nahraďte your-B2C-tenant svým tenantem Azure AD B2C. U vlastní domény nahraďte your-B2C-tenant-name.b2clogin.com vlastní doménou.
  1. Při registraci se zobrazí ID klienta a tajný klíč klienta .
  2. Poznamenejte si hodnoty, které chcete použít později.

Konfigurace BindID jako zprostředkovatele identity v Azure AD B2C

Následující pokyny najdete v adresáři s tenantem Azure AD B2C.

  1. Přihlaste se k Azure Portal jako globální správce.
  2. Na panelu nástrojů portálu vyberte Adresáře a předplatná.
  3. V nastavení portálu | Na stránce Adresáře a předplatná vyhledejte v seznamu Název adresáře Azure AD adresář B2C.
  4. Vyberte Přepnout.
  5. V levém horním rohu Azure Portal vyberte Všechny služby.
  6. Vyhledejte a vyberte Azure AD B2C.
  7. Vyberte Zprostředkovatelé identit.
  8. Vyberte Nový poskytovatel OpenID Connect.
  9. Zadejte Název.
  10. Jako Adresa URL metadat zadejte https://signin.bindid-sandbox.io/.well-known/openid-configuration.
  11. Jako ID klienta zadejte ID klienta, které jste zaznamenali.
  12. Jako Tajný klíč klienta zadejte tajný klíč klienta, který jste nahráli.
  13. Jako Obor zadejte openid email.
  14. Jako Typ odpovědi vyberte kód.
  15. Jako Režim odpovědi vyberte form_post.
  16. V části Mapování deklarací identity zprostředkovatele identity jako ID uživatele vyberte sub.
  17. Jako Email vyberte email.
  18. Vyberte Uložit.

Vytvoření toku uživatele

  1. V tenantovi Azure AD B2C v části Zásady vyberte Toky uživatelů.
  2. Vyberte Nový tok uživatele.
  3. Vyberte Zaregistrovat se a přihlásit se typ toku uživatele.
  4. Vyberte Vytvořit.
  5. Zadejte Název.
  6. V části Zprostředkovatelé identit v části Místní účty vyberte Žádné. Tato akce zakáže ověřování e-mailů a hesel.
  7. V části Vlastní zprostředkovatelé identity vyberte vytvořeného zprostředkovatele identity BindID, například Přihlásit se pomocí BindID.
  8. Vyberte Vytvořit.

Testování toku uživatele

  1. V tenantovi Azure AD B2C vyberte Toky uživatelů.
  2. Vyberte vytvořený tok uživatele, například B2C_1_signupsignin.
  3. V části Aplikace vyberte webovou aplikaci, kterou jste zaregistrovali. Adresa URL odpovědi je https://jwt.ms.
  4. Vyberte Spustit tok uživatele.
  5. Prohlížeč se přesměruje na přihlašovací stránku BindID.
  6. Zadejte e-mail s registrovaným účtem.
  7. Ověřuje se pomocí biometriky FIDO2 appless, jako je otisk prstu.
  8. Prohlížeč je přesměrován na https://jwt.ms. Zobrazí se obsah tokenu vráceného Azure AD B2C.

Vytvoření klíče zásady BindID

Přidejte tajný klíč klienta aplikace BindID jako klíč zásady. Následující pokyny najdete v adresáři s tenantem Azure AD B2C.

  1. Přihlaste se k webu Azure Portal.
  2. Na panelu nástrojů portálu vyberte Adresáře a předplatná.
  3. V nastavení portálu | Na stránce Adresáře a předplatná vyhledejte v seznamu Název adresáře Azure AD adresář B2C.
  4. Vyberte Přepnout.
  5. Na stránce Přehled v části Zásady vyberte Rozhraní prostředí identit.
  6. Vyberte Klíče zásad.
  7. Vyberte Přidat.
  8. V části Možnosti vyberte Ručně.
  9. Zadejte Název. Předpona B2C_1A_ se připojí k názvu klíče.
  10. Do pole Tajný kód zadejte tajný klíč klienta, který jste nahráli.
  11. V části Použití klíče vyberte Podpis.
  12. Vyberte Vytvořit.

Konfigurace BindID jako zprostředkovatele identity

Pokud chcete povolit přihlašování pomocí BindID, definujte BindID jako zprostředkovatele deklarací identity, se kterým Azure AD B2C komunikuje prostřednictvím koncového bodu. Koncový bod poskytuje deklarace identity používané Azure AD B2C k ověření uživatele ověřeného digitální identitou na zařízení.

Přidejte BindID jako zprostředkovatele deklarací identity. Začněte tím, že z GitHubu získáte vlastní úvodní balíčky zásad a pak aktualizujte soubory XML v úvodním balíčku SocialAndLocalAccounts názvem tenanta Azure AD B2C:

  1. Otevřete složku zip active-directory-b2c-custom-policy-starterpack-main.zip nebo naklonujte úložiště:

        git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. V souborech v adresáři LocalAccounts nahraďte řetězec yourtenant názvem tenanta Azure AD B2C.

  3. Otevřete třídu LocalAccounts/ TrustFrameworkExtensions.xml.

  4. Vyhledejte element ClaimsProviders . Pokud se nezobrazí, přidejte ho do kořenového elementu.

  5. Přidejte nový ClaimsProvider podobný následujícímu příkladu:

     <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. Nastavte client_id pomocí ID aplikace BindID, které jste zaznamenali.

  7. Vyberte Uložit.

Přidání cesty uživatele

Zprostředkovatel identity není na přihlašovacích stránkách. Pokud máte vlastní cestu uživatele, pokračujte přidáním zprostředkovatele identity do cesty uživatele, jinak vytvořte duplicitní cestu uživatele šablony:

  1. V úvodním balíčku otevřete LocalAccounts/ TrustFrameworkBase.xml soubor.
  2. Vyhledejte a zkopírujte obsah elementu UserJourney , který obsahuje Id=SignUpOrSignIn.
  3. Otevřete třídu LocalAccounts/ TrustFrameworkExtensions.xml.
  4. Najděte element UserJourneys . Pokud žádný prvek neexistuje, přidejte ho.
  5. Vložte element UserJourney jako podřízený prvek UserJourneys element.
  6. Přejmenujte ID cesty uživatele.

Přidání zprostředkovatele identity na cestu uživatele

Přidejte nového zprostředkovatele identity na cestu uživatele.

  1. Najděte prvek kroku orchestrace, který zahrnuje Type=CombinedSignInAndSignUp, nebo Type=ClaimsProviderSelection na cestě uživatele. Obvykle se jedná o první krok orchestrace. Element ClaimsProviderSelections obsahuje seznam zprostředkovatelů identity, pomocí kterého se uživatelé přihlašují. Pořadí prvků řídí pořadí tlačítek pro přihlášení.
  2. Přidejte element XML ClaimsProviderSelection .
  3. Nastavte hodnotu TargetClaimsExchangeId na popisný název.
  4. Přidejte element ClaimsExchange .
  5. Nastavte ID na hodnotu ID cílového id výměny deklarací identity. Tato akce prováže tlačítko BindID na BindID-SignIn.
  6. Aktualizujte hodnotu TechnicalProfileReferenceId na ID technického profilu, které jste vytvořili.

Následující kód XML ukazuje cestu uživatele k orchestraci se zprostředkovatelem identity.

    <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>

Konfigurace zásad předávající strany

Zásady předávající strany, například SignUpOrSignIn.xml, určují cestu uživatele, Azure AD B2C spustí. Deklarace identity předávané vaší aplikaci můžete řídit úpravou elementu OutputClaimselementu PolicyProfile TechnicalProfile. V tomto kurzu aplikace obdrží atributy uživatele, jako jsou zobrazované jméno, křestní jméno, příjmení, e-mail, objectId, zprostředkovatel identity a tenantId.

Viz 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>

Nahrání vlastní zásady

  1. Přihlaste se k webu Azure Portal.
  2. Na panelu nástrojů portálu vyberte Adresáře a předplatná.
  3. V nastavení portálu | Na stránce Adresáře a předplatná vyhledejte v seznamu Název adresáře Azure AD adresář B2C.
  4. Vyberte Přepnout.
  5. V Azure Portal vyhledejte a vyberte Azure AD B2C.
  6. V části Zásady vyberte Identity Experience Framework.
  7. Vyberte Nahrát vlastní zásady.
  8. Nahrajte soubory v úvodním balíčku LocalAccounts v následujícím pořadí:
  • Základní zásady, například TrustFrameworkBase.xml
  • Zásady lokalizace, například TrustFrameworkLocalization.xml
  • Zásady rozšíření, například TrustFrameworkExtensions.xml
  • Zásady předávající strany, například SignUpOrSignIn.xml

Otestování vlastních zásad

Následující pokyny najdete v adresáři s tenantem Azure AD B2C.

  1. V tenantovi Azure AD B2C a v části Zásady vyberte Rozhraní prostředí identit.
  2. V části Vlastní zásady vyberte B2C_1A_signup_signin.
  3. V části Aplikace vyberte webovou aplikaci, kterou jste zaregistrovali. Adresa URL odpovědi je https://jwt.ms.
  4. Vyberte Spustit.
  5. Prohlížeč se přesměruje na přihlašovací stránku BindID.
  6. Zadejte e-mail s registrovaným účtem.
  7. Ověřování pomocí biometriky FIDO2 appless, jako je otisk prstu.
  8. Prohlížeč je přesměrován na https://jwt.ms. Zobrazí se obsah tokenu vrácený Azure AD B2C.

Další kroky

Další informace najdete v následujících článcích: