Konfigurace Asignio s Azure Active Directory B2C pro vícefaktorové ověřování
Zjistěte, jak integrovat ověřování Microsoft Entra ID (Azure AD B2C) s Asignio. Díky této integraci poskytuje zákazníkům prostředí bez hesla, měkké biometrické a vícefaktorové ověřování. Asignio používá k ověřování uživatelů patentovaný podpis Asignio a živé ověření obličeje. Měnitelný biometrický podpis pomáhá omezit opakované používání hesel, podvodů, útoků phishing a přihlašovacích údajů prostřednictvím vícekanálového ověřování.
Než začnete
Zvolte selektor typu zásady, který označuje nastavení typu zásady. Azure AD B2C má dvě metody, jak definovat způsob interakce uživatelů s vašimi aplikacemi:
- Předdefinované toky uživatelů
- Konfigurovatelné vlastní zásady
Postup v tomto článku se pro každou metodu liší.
Další informace:
Požadavky
Předplatné Azure.
Pokud nemáte zapnutý, získejte bezplatný účet Azure.
Tenant Azure AD B2C propojený s předplatným Azure
ID klienta Asignio a tajný klíč klienta vystavený společností Asignio.
Tyto tokeny se získávají registrací mobilních nebo webových aplikací v Asignio.
Pro vlastní zásady
Dokončení kurzu: Vytváření toků uživatelů a vlastních zásad v Azure AD B2C
Popis scénáře
Tato integrace zahrnuje následující komponenty:
- Azure AD B2C – autorizační server, který ověřuje přihlašovací údaje uživatele
- Webové nebo mobilní aplikace – zabezpečení pomocí Asignio MFA
- Webová aplikace Asignio – biometrické shromažďování podpisů na dotykovém zařízení uživatele
Následující diagram znázorňuje implementaci.
- Uživatel otevře Azure AD přihlašovací stránku B2C ve své mobilní nebo webové aplikaci a pak se přihlásí nebo zaregistruje.
- Azure AD B2C přesměruje uživatele do Asignio pomocí požadavku OpenID Connect (OIDC).
- Uživatel je přesměrován do webové aplikace Asignio pro biometrické přihlášení. Pokud uživatel nezaregistroval svůj podpis Asignio, může k ověření použít jednorázové heslo SMS. Po ověření uživatel obdrží registrační odkaz pro vytvoření podpisu Asignio.
- Uživatel se ověřuje pomocí podpisu Asignio a ověření obličeje nebo pomocí ověření hlasu a obličeje.
- Odpověď na výzvu dostane Asignio.
- Asignio vrátí odpověď OIDC na přihlášení Azure AD B2C.
- Azure AD B2C odešle Asignio žádost o ověření, aby potvrdil přijetí ověřovacích dat.
- Uživateli je udělen nebo odepřen přístup k aplikaci.
Konfigurace aplikace pomocí Asignio
Ke konfiguraci aplikace pomocí Asignio se používá web pro správu partnerů Asignio.
- Přejděte na stránku asignio.com Asignio Partner Administration a požádejte o přístup pro vaši organizaci.
- Pomocí přihlašovacích údajů se přihlaste ke správě partnerů Asignio.
- Vytvořte záznam pro aplikaci Azure AD B2C pomocí tenanta Azure AD B2C. Pokud používáte Azure AD B2C se službou Asignio, Azure AD B2C spravuje připojené aplikace. Aplikace Asignio představují aplikace v Azure Portal.
- V lokalitě pro správu partnera Asignio vygenerujte ID klienta a tajný klíč klienta.
- Poznamenejte si a uložte ID klienta a tajný klíč klienta. Použijete je později. Asignio neukládá tajné kódy klienta.
- Zadejte identifikátor URI přesměrování na webu, ke které se uživatel vrátí po ověření. Použijte následující vzor identifikátoru URI.
[https://<your-b2c-domain>.b2clogin.com/<your-b2c-domain>.onmicrosoft.com/oauth2/authresp]
.
- Nahrajte logo společnosti. Zobrazí se při ověřování Asignio, když se uživatelé přihlásí.
Registrace webové aplikace v Azure AD B2C
Zaregistrujte aplikace v tenantovi, který spravujete, a pak můžou komunikovat s Azure AD B2C.
Další informace: Typy aplikací, které je možné použít v Active Directory B2C
Pro účely tohoto kurzu registrujete https://jwt.ms
webovou aplikaci Microsoftu s dekódovaným obsahem tokenů, který neopustí váš prohlížeč.
Registrace webové aplikace a povolení implicitního udělení tokenu ID
Dokončení kurzu: Registrace webové aplikace v Azure Active Directory B2C
Konfigurace Asignio jako zprostředkovatele identity v Azure AD B2C
Následující pokyny najdete v Microsoft Entra tenanta s předplatným Azure.
- Přihlaste se k Azure Portal jako globální správce tenanta Azure AD B2C.
- Na panelu nástrojů Azure Portal vyberte Adresáře a předplatná.
- V nastavení portálu | Adresáře a předplatná v seznamu Název adresáře vyhledejte adresář Microsoft Entra.
- Vyberte Přepnout.
- V levém horním rohu Azure Portal vyberte Všechny služby.
- Vyhledejte a vyberte Azure AD B2C.
- V Azure Portal vyhledejte a vyberte Azure AD B2C.
- V nabídce vlevo vyberte Zprostředkovatelé identity.
- Vyberte New OpenID Connect Provider (Nový zprostředkovatel OpenID Connect).
- Vyberte Typ >zprostředkovatele identityOpenID Connect.
- Do pole Název zadejte přihlašovací jméno Asignio nebo název, který zvolíte.
- Jako Adresu URL metadat zadejte
https://authorization.asignio.com/.well-known/openid-configuration
. - Jako ID klienta zadejte ID klienta, které jste vygenerovali.
- Do pole Tajný klíč klienta zadejte vygenerovaný tajný klíč klienta.
- Jako Rozsah použijte e-mailový profil openid.
- Jako Typ odpovědi použijte kód.
- Pro režim odpovědi použijte dotaz.
- Jako nápovědu k doméně použijte
https://asignio.com
. - Vyberte OK.
- Vyberte Mapovat deklarace identity tohoto zprostředkovatele identity.
- Jako ID uživatele použijte sub.
- Jako Zobrazovaný název použijte název.
- Jako Křestní jméno použijte given_name.
- V části Příjmení použijte family_name.
- Pro Email použijte e-mail.
- Vyberte Uložit.
SVytvoření zásad toku uživatele
- V tenantovi Azure AD B2C v části Zásady vyberte Toky uživatelů.
- Vyberte Nový tok uživatele.
- Vyberte Typ toku uživatele Zaregistrovat se a přihlásit se.
- Vyberte Doporučená verze.
- Vyberte Vytvořit.
- Zadejte název toku uživatele, například
AsignioSignupSignin
. - V části Zprostředkovatelé identity u místních účtů vyberte Žádné. Tato akce zakáže ověřování e-mailů a hesel.
- V části Vlastní zprostředkovatelé identity vyberte vytvořeného zprostředkovatele identity Asignio.
- Vyberte Vytvořit.
Testování toku uživatele
- V tenantovi Azure AD B2C vyberte Toky uživatelů.
- Vyberte vytvořený tok uživatele.
- V části Aplikace vyberte webovou aplikaci, kterou jste zaregistrovali.
Adresa URL odpovědi je
https://jwt.ms
. - Vyberte Spustit tok uživatele.
- Prohlížeč se přesměruje na přihlašovací stránku Asignio.
- Zobrazí se přihlašovací obrazovka.
- V dolní části vyberte Ověřování Asignio .
Pokud máte podpis Asignio, dokončete výzvu k ověření. Pokud ne, zadejte telefonní číslo zařízení pro ověření prostřednictvím SMS jednorázového hesla. Pomocí odkazu zaregistrujte svůj podpis Asignio.
- Prohlížeč se přesměruje na
https://jwt.ms
. Zobrazí se obsah tokenu vrácený Azure AD B2C.
Vytvoření klíče zásad Asignio
- Vygenerovaný tajný klíč klienta uložte v tenantovi Azure AD B2C.
- Přihlaste se k webu Azure Portal.
- Na panelu nástrojů portálu vyberte Adresáře a předplatná.
- V nastavení portálu | Adresáře a předplatná najděte v seznamu Název adresáře svůj adresář Azure AD B2C.
- Vyberte Přepnout.
- V levém horním rohu Azure Portal vyberte Všechny služby.
- Vyhledejte a vyberte Azure AD B2C.
- Na stránce Přehled vyberte Architektura prostředí identit.
- Vyberte Klíče zásad.
- Vyberte Přidat.
- V části Možnosti vyberte Ručně.
- Zadejte klíč zásady Název klíče zásad. Předpona
B2C_1A_
se připojí k názvu klíče. - Do pole Tajné zadejte tajný kód klienta, který jste si poznamenali.
- V části Použití klíče vyberte Podpis.
- Vyberte Vytvořit.
Konfigurace Asignio jako zprostředkovatele identity
Tip
Než začnete, ujistěte se, že jsou nakonfigurované zásady Azure AD B2C. Pokud ne, postupujte podle pokynů v úvodním balíčku vlastních zásad.
Aby se uživatelé mohli přihlásit pomocí Asignio, definujte Asignio jako zprostředkovatele deklarací identity, se kterým Azure AD B2C komunikuje prostřednictvím koncového bodu. Koncový bod poskytuje deklarace identity, Azure AD B2C používá k ověření ověřování uživatelů pomocí digitálního ID na zařízení.
Přidání Asignio jako zprostředkovatele deklarací identity
Získejte úvodní balíčky vlastních zásad z GitHubu a pak aktualizujte soubory XML v úvodní sadě LocalAccounts názvem vašeho tenanta Azure AD B2C:
Stáhněte soubor zip active-directory-b2c-custom-policy-starterpack nebo naklonujte úložiště:
git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
V souborech v adresáři LocalAccounts nahraďte řetězec
yourtenant
Azure AD název tenanta B2C.Otevřete LocalAccounts/ TrustFrameworkExtensions.xml.
Vyhledejte element ClaimsProviders . Pokud žádný neexistuje, přidejte ho do kořenového elementu
TrustFrameworkPolicy
.Přidejte nový ClaimsProvider podobný následujícímu příkladu:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Asignio</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Asignio-Oauth2"> <DisplayName>Asignio</DisplayName> <Description>Login with your Asignio account</Description> <Protocol Name="OAuth2" /> <Metadata> <Item Key="ProviderName">authorization.asignio.com</Item> <Item Key="authorization_endpoint">https://authorization.asignio.com/authorize</Item> <Item Key="AccessTokenEndpoint">https://authorization.asignio.com/token</Item> <Item Key="ClaimsEndpoint">https://authorization.asignio.com/userinfo</Item> <Item Key="ClaimsEndpointAccessTokenName">access_token</Item> <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> <Item Key="HttpBinding">POST</Item> <Item Key="scope">openid profile email</Item> <Item Key="UsePolicyInRedirectUri">0</Item> <!-- Update the Client ID below to the Asignio Application ID --> <Item Key="client_id">00000000-0000-0000-0000-000000000000</Item> <Item Key="IncludeClaimResolvingInClaimsHandling">true</Item> <!-- trying to add additional claim--> <!--Insert b2c-extensions-app application ID here, for example: 11111111-1111-1111-1111-111111111111--> <Item Key="11111111-1111-1111-1111-111111111111"></Item> <!--Insert b2c-extensions-app application ObjectId here, for example: 22222222-2222-2222-2222-222222222222--> <Item Key="22222222-2222-2222-2222-222222222222"></Item> <!-- The key below allows you to specify each of the Azure AD tenants that can be used to sign in. Update the GUIDs below for each tenant. --> <!--<Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/11111111-1111-1111-1111-111111111111</Item>--> <!-- The commented key below specifies that users from any tenant can sign-in. Uncomment if you would like anyone with an Azure AD account to be able to sign in. --> <Item Key="ValidTokenIssuerPrefixes">https://login.microsoftonline.com/</Item> </Metadata> <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_AsignioSecret" /> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" /> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" DefaultValue="https://authorization.asignio.com" /> <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" /> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" /> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" /> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" /> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" /> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Nastavte client_id pomocí ID aplikace Asignio, které jste si poznamenali.
Aktualizujte client_secret oddílu klíčem zásad, který jste vytvořili. Příklad
B2C_1A_AsignioSecret
:<Key Id="client_secret" StorageReferenceId="B2C_1A_AsignioSecret" />
Uložte změny.
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 konfigurací zásad předávající strany, jinak zkopírujte cestu uživatele šablony:
- V úvodním balíčku otevřete LocalAccounts/ TrustFrameworkBase.xml.
- Vyhledejte a zkopírujte obsah elementu UserJourney , který obsahuje
Id=SignUpOrSignIn
. - Otevřete LocalAccounts/ TrustFrameworkExtensions.xml.
- Vyhledejte element UserJourneys . Pokud žádný není, přidejte ho.
- Vložte obsah elementu UserJourney jako podřízený element UserJourneys.]
- Přejmenujte ID cesty uživatele. Například,
Id=AsignioSUSI
.
Další informace: Cesty uživatelů
Přidání zprostředkovatele identity k cestě uživatele
Přidejte nového zprostředkovatele identity do cesty uživatele.
- Vyhledejte element kroku orchestrace, který zahrnuje
Type=CombinedSignInAndSignUp
, neboType=ClaimsProviderSelection
v 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í. - Přidejte element XML ClaimsProviderSelection .
- Nastavte hodnotu TargetClaimsExchangeId na popisný název.
- Přidejte element ClaimsExchange .
- Nastavte ID na hodnotu ID cílové výměny deklarací identity.
- Aktualizujte hodnotu TechnicalProfileReferenceId na ID vytvořeného technického profilu.
Následující kód XML ukazuje orchestraci cest uživatelů se zprostředkovatelem identity.
<UserJourney Id="AsignioSUSI">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
<ClaimsProviderSelection TargetClaimsExchangeId="AsignioExchange" />
<ClaimsProviderSelection ValidationClaimsExchangeId="LocalAccountSigninEmailExchange" />
</ClaimsProviderSelections>
<ClaimsExchanges>
<ClaimsExchange Id="LocalAccountSigninEmailExchange" TechnicalProfileReferenceId="SelfAsserted-LocalAccountSignin-Email" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Check if the user has selected to sign in using one of the social providers -->
<OrchestrationStep Order="2" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AsignioExchange" TechnicalProfileReferenceId="Asignio-Oauth2" />
<ClaimsExchange Id="SignUpWithLogonEmailExchange" TechnicalProfileReferenceId="LocalAccountSignUpWithLogonEmail" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>authenticationSource</Value>
<Value>localAccountAuthentication</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadUsingAlternativeSecurityId" TechnicalProfileReferenceId="AAD-UserReadUsingAlternativeSecurityId-NoError" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- Show self-asserted page only if the directory does not have the user account already (i.e. we do not have an objectId). This can only happen when authentication happened using a social IDP. If local account was created or authentication done using ESTS in step 2, then an user account must exist in the directory by this time. -->
<OrchestrationStep Order="4" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="SelfAsserted-Social" TechnicalProfileReferenceId="SelfAsserted-Social" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- This step reads any user attributes that we may not have received when authenticating using ESTS so they can be sent in the token. -->
<OrchestrationStep Order="5" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>authenticationSource</Value>
<Value>socialIdpAuthentication</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserReadWithObjectId" TechnicalProfileReferenceId="AAD-UserReadUsingObjectId" />
</ClaimsExchanges>
</OrchestrationStep>
<!-- The previous step (SelfAsserted-Social) could have been skipped if there were no attributes to collect from the user. So, in that case, create the user in the directory if one does not already exist (verified using objectId which would be set from the last step if account was created in the directory. -->
<OrchestrationStep Order="6" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>objectId</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="AADUserWrite" TechnicalProfileReferenceId="AAD-UserWriteUsingAlternativeSecurityId" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="7" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
<ClientDefinition ReferenceId="DefaultWeb" />
</UserJourney>
Konfigurace zásad předávající strany
Zásady předávající strany, například SignUpSignIn.xml, určují cestu uživatele, Azure AD B2C provede.
- V předávající straně vyhledejte element DefaultUserJourney .
- Aktualizujte ReferenceId tak, aby odpovídalo ID cesty uživatele, do kterého jste přidali zprostředkovatele identity.
V následujícím příkladu AsignioSUSI
je pro cestu uživatele hodnota ReferenceId nastavená na AsignioSUSI
hodnotu :
<RelyingParty>
<DefaultUserJourney ReferenceId="AsignioSUSI" />
<TechnicalProfile Id="PolicyProfile">
<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}" />
<OutputClaim ClaimTypeReferenceId="correlationId" DefaultValue="{Context:CorrelationId}" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
Nahrání vlastní zásady
- Přihlaste se k webu Azure Portal.
- Na panelu nástrojů portálu vyberte Adresáře a předplatná.
- V nastavení portálu | Adresáře a předplatná najděte v seznamu Název adresáře svůj adresář Azure AD B2C.
- Vyberte Přepnout.
- V Azure Portal vyhledejte a vyberte Azure AD B2C.
- V části Zásady vyberte Architektura prostředí identit.
- Vyberte Nahrát vlastní zásady.
- Nahrajte dva soubory zásad, které jste změnili, v následujícím pořadí:
- Zásady rozšíření, například
TrustFrameworkExtensions.xml
- Zásady předávající strany, například
SignUpOrSignin.xml
Testování vlastních zásad
- V tenantovi Azure AD B2C a v části Zásady vyberte Architektura prostředí identit.
- V části Vlastní zásady vyberte AsignioSUSI.
- V části Aplikace vyberte webovou aplikaci, kterou jste zaregistrovali.
Adresa URL odpovědi je
https://jwt.ms
. - Vyberte Spustit.
- Prohlížeč se přesměruje na přihlašovací stránku Asignio.
- Zobrazí se přihlašovací obrazovka.
- V dolní části vyberte Ověřování Asignio .
Pokud máte podpis Asignio, zobrazí se výzva k ověření pomocí podpisu Asignio. Pokud ne, zadejte telefonní číslo zařízení, které se má ověřit pomocí jednorázového hesla SMS. Pomocí odkazu zaregistrujte svůj podpis Asignio.
- Prohlížeč se přesměruje na
https://jwt.ms
. Zobrazí se obsah tokenu vrácený Azure AD B2C.