Definování technického profilu jednorázového hesla ve vlastních zásadách Azure AD B2C
Poznámka
V Azure Active Directory B2C jsou vlastní zásady navržené primárně tak, aby řešily složité scénáře. U většiny scénářů doporučujeme používat předdefinované toky uživatelů. Pokud jste to ještě neudělali, přečtěte si o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami v Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) poskytuje podporu pro správu generování a ověřování jednorázového hesla. Pomocí technického profilu vygenerujte kód a později ho ověřte.
Při ověřování kódu může také vrátit chybovou zprávu technický profil s jednorázovým heslem. Navrhnou integraci s jednorázovým heslem pomocí technického profilu ověření. Ověřovací technický profil volá technický profil jednorázového hesla k ověření kódu. Ověřovací technický profil před pokračováním cesty uživatelem ověří data poskytnutá uživatelem. U technického profilu ověření se na stránce s vlastním potvrzením zobrazí chybová zpráva.
Protokol
Atribut Name elementu Protocol musí být nastaven na Proprietary
hodnotu . Atribut obslužné rutiny musí obsahovat plně kvalifikovaný název sestavení obslužné rutiny protokolu, které používá Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Následující příklad ukazuje jednorázový technický profil hesla:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Validate user input verification code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
...
Generování kódu
Prvním režimem tohoto technického profilu je vygenerování kódu. Níže jsou uvedené možnosti, které je možné pro tento režim nakonfigurovat. Vygenerované kódy a pokusy se sledují v rámci relace.
Vstupní deklarace identity
Element InputClaims obsahuje seznam deklarací identity vyžadovaných k odeslání jednorázovému zprostředkovateli protokolu hesla. Název deklarace identity můžete také namapovat na název definovaný níže.
Id deklarace identity | Povinné | Popis |
---|---|---|
identifikátor | Yes | Identifikátor pro identifikaci uživatele, který bude později potřebovat kód ověřit. Běžně se používá jako identifikátor cíle, kam se kód doručuje, například e-mailovou adresu nebo telefonní číslo. |
Element InputClaimsTransformations může obsahovat kolekci elementů InputClaimsTransformation, které se používají k úpravě vstupních deklarací identity nebo generování nových před odesláním do jednorázového zprostředkovatele protokolu hesla.
Výstupní deklarace identity
Element OutputClaims obsahuje seznam deklarací identity vygenerovaných jednorázovým zprostředkovatelem protokolu hesla. Název deklarace identity můžete také namapovat na název definovaný níže.
Id deklarace identity | Povinné | Popis |
---|---|---|
otpGenerated | Yes | Vygenerovaný kód, jehož relaci spravuje Azure AD B2C. |
OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které se používají k úpravě výstupních deklarací identity nebo generování nových.
Metadata
Ke konfiguraci režimu generování kódu je možné použít následující nastavení:
Atribut | Povinné | Popis |
---|---|---|
Operace | Yes | Operace, která se má provést. Možná hodnota: GenerateCode . |
CodeExpirationInSeconds | No | Doba v sekundách do vypršení platnosti kódu. Minimum: 60 ; Maximum: 1200 ; Výchozí: 600 . Při každém poskytnutí kódu (stejný kód pomocí ReuseSameCode nebo nového kódu) se platnost kódu prodlouží. Tento čas se také používá k nastavení časového limitu opakování (po dosažení maximálního počtu pokusů je uživatel uzamčen před pokusy o získání nových kódů, dokud tato doba nevyprší). |
CodeLength | No | Délka kódu. Výchozí hodnota je 6 . |
Znaková sada | No | Znaková sada kódu, naformátovaná pro použití v regulárním výrazu. Například, a-z0-9A-Z . Výchozí hodnota je 0-9 . Znaková sada musí obsahovat minimálně 10 různých znaků v zadané sadě. |
NumRetryAttempts | No | Počet pokusů o ověření před tím, než se kód považuje za neplatný. Výchozí hodnota je 5 . Pokud například nastavíte NumRetryAttempts na 2, umožní vám to celkem jenom 2 pokusy (první + 1 opakování). U třetího pokusu vyvolá maximální počet dosažených pokusů bez ohledu na to, jestli je kód správný nebo ne. |
NumCodeGenerationAttempts | No | Počet maximálních pokusů o generování kódu na identifikátor. Výchozí hodnota je 10 , pokud není zadána. |
Opakované použitíSameCode | No | Zda by se měl stejný kód dát místo generování nového kódu, pokud jeho platnost nevypršela a je stále platný. Výchozí hodnota je false . |
Příklad
Následující příklad TechnicalProfile
slouží k vygenerování kódu:
<TechnicalProfile Id="GenerateCode">
<DisplayName>Generate Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">GenerateCode</Item>
<Item Key="CodeExpirationInSeconds">600</Item>
<Item Key="CodeLength">6</Item>
<Item Key="CharacterSet">0-9</Item>
<Item Key="NumRetryAttempts">5</Item>
<Item Key="NumCodeGenerationAttempts">10</Item>
<Item Key="ReuseSameCode">false</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpGenerated" />
</OutputClaims>
</TechnicalProfile>
Ověřit kód
Druhým režimem tohoto technického profilu je ověření kódu. Níže jsou uvedené možnosti, které je možné pro tento režim nakonfigurovat.
Vstupní deklarace identity
Element InputClaims obsahuje seznam deklarací identity vyžadovaných k odeslání jednorázovému zprostředkovateli protokolu hesla. Název deklarace identity můžete také namapovat na název definovaný níže.
Id deklarace identity | Povinné | Popis |
---|---|---|
identifikátor | Yes | Identifikátor pro identifikaci uživatele, který dříve vygeneroval kód. Běžně se používá jako identifikátor cíle, kam se kód doručuje, například e-mailovou adresu nebo telefonní číslo. |
otpToVerify | Yes | Ověřovací kód poskytnutý uživatelem |
Element InputClaimsTransformations může obsahovat kolekci elementů InputClaimsTransformation, které se používají k úpravě vstupních deklarací identity nebo generování nových před odesláním do jednorázového zprostředkovatele protokolu hesla.
Výstupní deklarace identity
Při ověřování kódu tohoto zprostředkovatele protokolu nejsou k dispozici žádné výstupní deklarace identity.
OutputClaimsTransformations element může obsahovat kolekci OutputClaimsTransformation elementů, které se používají k úpravě výstupních deklarací identity nebo generování nových.
Metadata
K režimu ověření kódu je možné použít následující nastavení:
Atribut | Povinné | Popis |
---|---|---|
Operace | Yes | Operace, která se má provést. Možná hodnota: VerifyCode . |
Prvky uživatelského rozhraní
Následující metadata lze použít ke konfiguraci chybových zpráv, které se zobrazí při selhání ověření kódu. Metadata by měla být nakonfigurovaná v technickém profilu s vlastním uplatněním . Chybové zprávy lze lokalizovat.
Atribut | Povinné | Popis |
---|---|---|
UserMessageIfSessionDoesNotExist | No | Zpráva, která se zobrazí uživateli, pokud vypršela platnost relace ověření kódu. Buď vypršela platnost kódu, nebo se kód pro daný identifikátor nikdy nevygeneroval. |
UserMessageIfMaxRetryAttempted | No | Zpráva, která se zobrazí uživateli, pokud překročí maximální povolený počet pokusů o ověření. |
UserMessageIfMaxNumberOfCodeGenerated | No | Zpráva, která se zobrazí uživateli v případě, že generování kódu překročilo maximální povolený počet pokusů. |
UserMessageIfInvalidCode | No | Zpráva, která se zobrazí uživateli, pokud zadal neplatný kód. |
UserMessageIfVerificationFailedRetryAllowed | No | Zpráva, která se zobrazí uživateli, pokud zadal neplatný kód a uživatel může zadat správný kód. |
UserMessageIfSessionConflict | No | Zpráva, která se zobrazí uživateli, pokud kód nelze ověřit. |
Příklad
Následující příklad TechnicalProfile
slouží k ověření kódu:
<TechnicalProfile Id="VerifyCode">
<DisplayName>Verify Code</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="Operation">VerifyCode</Item>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="identifier" PartnerClaimType="identifier" />
<InputClaim ClaimTypeReferenceId="otpGenerated" PartnerClaimType="otpToVerify" />
</InputClaims>
</TechnicalProfile>
Další kroky
V následujícím článku najdete příklad použití technického profilu jednorázového hesla s vlastním ověřením e-mailu: