Definiera en teknisk profil för engångslösenord i en anpassad Azure AD B2C-princip
Anteckning
I Azure Active Directory B2C är anpassade principer främst utformade för att hantera komplexa scenarier. I de flesta fall rekommenderar vi att du använder inbyggda användarflöden. Om du inte har gjort det kan du läsa mer om startpaketet för anpassade principer i Kom igång med anpassade principer i Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) har stöd för att hantera generering och verifiering av ett engångslösenord. Använd en teknisk profil för att generera en kod och verifiera sedan koden senare.
Den tekniska profilen för engångslösenord kan också returnera ett felmeddelande under kodverifieringen. Utforma integreringen med engångslösenordet med hjälp av en teknisk valideringsprofil. En teknisk valideringsprofil anropar den tekniska profilen för engångslösenord för att verifiera en kod. Den tekniska valideringsprofilen validerar användardefinierade data innan användarresan fortsätter. Med den tekniska verifieringsprofilen visas ett felmeddelande på en självkontrollerad sida.
Protokoll
Attributet Name för protocol-elementet måste anges till .Proprietary
Hanterarattributet måste innehålla det fullständigt kvalificerade namnet på protokollhanterarsammansättningen som används av Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
I följande exempel visas en teknisk profil för engångslösenord:
<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" />
...
Generera kod
Det första läget för den här tekniska profilen är att generera en kod. Nedan visas de alternativ som kan konfigureras för det här läget. Koder som genereras och försök spåras i sessionen.
Inkommande anspråk
Elementet InputClaims innehåller en lista över anspråk som krävs för att skicka till engångsprovidern för lösenordsprotokoll. Du kan också mappa namnet på ditt anspråk till det namn som definieras nedan.
ClaimReferenceId | Krävs | Beskrivning |
---|---|---|
Identifierare | Yes | Identifieraren för att identifiera den användare som behöver verifiera koden senare. Den används ofta som identifierare för målet där koden levereras till, till exempel e-postadress eller telefonnummer. |
Elementet InputClaimsTransformations kan innehålla en samling InputClaimsTransformation-element som används för att ändra indataanspråken eller generera nya innan de skickas till providern för engångslösenordsprotokoll.
Utdataanspråk
Elementet OutputClaims innehåller en lista över anspråk som genereras av engångsprovidern för lösenordsprotokoll. Du kan också mappa namnet på ditt anspråk till det namn som definieras nedan.
ClaimReferenceId | Krävs | Beskrivning |
---|---|---|
otpGenerated | Yes | Den genererade koden vars session hanteras av Azure AD B2C. |
Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element som används för att ändra utdataanspråken eller generera nya.
Metadata
Följande inställningar kan användas för att konfigurera kodgenereringsläge:
Attribut | Krävs | Beskrivning |
---|---|---|
Åtgärd | Yes | Den åtgärd som ska utföras. Möjligt värde: GenerateCode . |
CodeExpirationInSeconds | No | Tid i sekunder tills koden upphör att gälla. Minimum: 60 ; Max: 1200 ; Standard: 600 . Varje gång en kod anges (samma kod med , ReuseSameCode eller en ny kod) utökas kodens giltighetstid. Den här tiden används också för att ange tidsgräns för återförsök (när maximalt antal försök har uppnåtts är användaren utelåst från att försöka hämta nya koder tills den här tiden går ut) |
CodeLength | No | Kodens längd. Standardvärdet är 6 . |
CharacterSet | No | Teckenuppsättningen för koden, formaterad för användning i ett reguljärt uttryck. Till exempel a-z0-9A-Z . Standardvärdet är 0-9 . Teckenuppsättningen måste innehålla minst 10 olika tecken i den angivna uppsättningen. |
NumRetryAttempts | No | Antalet verifieringsförsök innan koden anses vara ogiltigt. Standardvärdet är 5 . Om du till exempel anger NumRetryAttempts till 2 tillåter det bara 2 totalt försök (första + 1 återförsök). För det tredje försöket genererar det maximalt antal försök som nåtts oavsett om koden är korrekt eller inte. |
NumCodeGenerationAttempts | No | Antalet maximala kodgenereringsförsök per identifierare. Standardvärdet är 10 om det inte anges. |
ReuseSameCode | No | Om samma kod ska anges i stället för att generera en ny kod när den angivna koden inte har upphört att gälla och fortfarande är giltig. Standardvärdet är false . |
Exempel
Följande exempel TechnicalProfile
används för att generera en kod:
<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>
Verifiera koden
Det andra läget för den här tekniska profilen är att verifiera en kod. Nedan visas de alternativ som kan konfigureras för det här läget.
Inkommande anspråk
Elementet InputClaims innehåller en lista över anspråk som krävs för att skicka till engångsprovidern för lösenordsprotokoll. Du kan också mappa namnet på ditt anspråk till det namn som definieras nedan.
ClaimReferenceId | Krävs | Beskrivning |
---|---|---|
Identifierare | Yes | Identifieraren för att identifiera den användare som tidigare har genererat en kod. Den används ofta som identifierare för målet där koden levereras till, till exempel e-postadress eller telefonnummer. |
otpToVerify | Yes | Verifieringskoden som tillhandahålls av användaren. |
Elementet InputClaimsTransformations kan innehålla en samling InputClaimsTransformation-element som används för att ändra indataanspråken eller generera nya innan de skickas till providern för engångslösenordprotokoll.
Utdataanspråk
Det finns inga utdataanspråk som tillhandahålls under kodverifieringen av den här protokollprovidern.
Elementet OutputClaimsTransformations kan innehålla en samling OutputClaimsTransformation-element som används för att ändra utdataanspråken eller generera nya.
Metadata
Följande inställningar kan användas för att koda verifieringsläge:
Attribut | Krävs | Beskrivning |
---|---|---|
Åtgärd | Yes | Den åtgärd som ska utföras. Möjligt värde: VerifyCode . |
Element för användargränssnitt
Följande metadata kan användas för att konfigurera felmeddelanden som visas vid kodverifieringsfel. Metadata ska konfigureras i den självsäkra tekniska profilen. Felmeddelandena kan lokaliseras.
Attribut | Krävs | Beskrivning |
---|---|---|
UserMessageIfSessionDoesNotExist | No | Meddelandet som ska visas för användaren om kodverifieringssessionen har upphört att gälla. Antingen har koden upphört att gälla eller så har koden aldrig genererats för en viss identifierare. |
UserMessageIfMaxRetryAttempted | No | Meddelandet som ska visas för användaren om de har överskridit det maximala antalet tillåtna verifieringsförsök. |
UserMessageIfMaxNumberOfCodeGenerated | No | Meddelandet som ska visas för användaren om kodgenereringen har överskridit det högsta tillåtna antalet försök. |
UserMessageIfInvalidCode | No | Meddelandet som ska visas för användaren om de har angett en ogiltig kod. |
UserMessageIfVerificationFailedRetryAllowed | No | Meddelandet som ska visas för användaren om de har angett en ogiltig kod och användaren får ange rätt kod. |
UserMessageIfSessionConflict | No | Meddelandet som ska visas för användaren om koden inte kan verifieras. |
Exempel
Följande exempel TechnicalProfile
används för att verifiera en kod:
<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>
Nästa steg
I följande artikel finns exempel på hur du använder teknisk profil för engångslösenord med anpassad e-postverifiering: