Dela via


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 , ReuseSameCodeeller 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:

  • Anpassad e-postverifiering i Azure Active Directory B2C (Mailjet, SendGrid)