Een technisch profiel voor eenmalige wachtwoorden definiëren in een aangepast B2C-beleid Azure AD
Notitie
In Azure Active Directory B2C is een aangepast beleid voornamelijk bedoeld om complexe scenario's aan te pakken. Voor de meeste scenario's raden we u aan de ingebouwde gebruikersstromen te gebruiken. Als u dit nog niet hebt gedaan, vindt u meer informatie over aangepast beleid in het starterspakket in Aan de slag met aangepaste beleidsregels in Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) biedt ondersteuning voor het beheren van het genereren en verifiëren van een eenmalig wachtwoord. Gebruik een technisch profiel om een code te genereren en controleer die code later.
Het technische profiel voor eenmalige wachtwoorden kan ook een foutbericht retourneren tijdens de codeverificatie. Ontwerp de integratie met het eenmalige wachtwoord met behulp van een technisch validatieprofiel. Een technisch validatieprofiel roept het technische profiel voor een eenmalig wachtwoord aan om een code te verifiëren. Het technische validatieprofiel valideert de door de gebruiker verstrekte gegevens voordat het gebruikerstraject wordt voortgezet. Met het technische validatieprofiel wordt een foutbericht weergegeven op een zelf-gecontroleerde pagina.
Protocol
Het kenmerk Naam van het element Protocol moet worden ingesteld op Proprietary
. Het kenmerk handler moet de volledig gekwalificeerde naam bevatten van de protocolhandlerassembly die wordt gebruikt door Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
In het volgende voorbeeld ziet u een technisch profiel voor eenmalige wachtwoorden:
<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" />
...
Code genereren
De eerste modus van dit technische profiel is het genereren van een code. Hieronder vindt u de opties die voor deze modus kunnen worden geconfigureerd. Gegenereerde codes en pogingen worden bijgehouden in de sessie.
Invoerclaims
Het element InputClaims bevat een lijst met claims die moeten worden verzonden naar de provider van het eenmalige wachtwoordprotocol. U kunt ook de naam van uw claim toewijzen aan de naam die hieronder is gedefinieerd.
ClaimReferenceId | Vereist | Beschrijving |
---|---|---|
Id | Yes | De id om de gebruiker te identificeren die de code later moet verifiëren. Het wordt vaak gebruikt als de id van de bestemming waar de code wordt bezorgd, bijvoorbeeld e-mailadres of telefoonnummer. |
Het element InputClaimsTransformations kan een verzameling InputClaimsTransformation-elementen bevatten die worden gebruikt om de invoerclaims te wijzigen of nieuwe te genereren voordat ze naar de provider van het eenmalige wachtwoordprotocol worden verzonden.
Uitvoerclaims
Het element OutputClaims bevat een lijst met claims die zijn gegenereerd door de provider van het eenmalige wachtwoordprotocol. U kunt ook de naam van uw claim toewijzen aan de naam die hieronder is gedefinieerd.
ClaimReferenceId | Vereist | Beschrijving |
---|---|---|
otpGenerated | Yes | De gegenereerde code waarvan de sessie wordt beheerd door Azure AD B2C. |
Het element OutputClaimsTransformations kan een verzameling OutputClaimsTransformation-elementen bevatten die worden gebruikt om uitvoerclaims te wijzigen of nieuwe te genereren.
Metagegevens
De volgende instellingen kunnen worden gebruikt voor het configureren van de modus voor het genereren van code:
Kenmerk | Vereist | Beschrijving |
---|---|---|
Bewerking | Yes | De bewerking die moet worden uitgevoerd. Mogelijke waarde: GenerateCode . |
CodeExpirationInSeconds | No | Tijd in seconden totdat de code verloopt. Minimaal: 60 ; Maximum: 1200 ; Standaardinstelling: 600 . Telkens wanneer een code wordt opgegeven (dezelfde code met behulp van ReuseSameCode , of een nieuwe code), wordt de vervaldatum van de code verlengd. Deze tijd wordt ook gebruikt om een time-out voor opnieuw proberen in te stellen (zodra het maximum aantal pogingen is bereikt, kan de gebruiker geen nieuwe codes verkrijgen totdat deze tijd is verstreken) |
CodeLength | No | Lengte van de code. De standaardwaarde is 6 . |
CharacterSet | No | De tekenset voor de code, opgemaakt voor gebruik in een reguliere expressie. Bijvoorbeeld a-z0-9A-Z . De standaardwaarde is 0-9 . De tekenset moet minimaal 10 verschillende tekens bevatten in de opgegeven set. |
NumRetryAttempts | No | Het aantal verificatiepogingen voordat de code als ongeldig wordt beschouwd. De standaardwaarde is 5 . Als u bijvoorbeeld NumRetryAttempts instelt op 2, kunt u in totaal slechts 2 pogingen uitvoeren (eerste + 1 nieuwe poging). Voor de derde poging worden het maximum aantal pogingen bereikt, ongeacht of de code juist is of niet. |
NumCodeGenerationAttempts | No | Het aantal maximale pogingen om code te genereren per id. De standaardwaarde is als deze niet is 10 opgegeven. |
ReuseSameCode | No | Of dezelfde code moet worden opgegeven in plaats van een nieuwe code te genereren wanneer de opgegeven code niet is verlopen en nog steeds geldig is. De standaardwaarde is false . |
Voorbeeld
Het volgende voorbeeld TechnicalProfile
wordt gebruikt voor het genereren van een code:
<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>
Code verifiëren
De tweede modus van dit technische profiel is het verifiëren van een code. Hieronder vindt u de opties die voor deze modus kunnen worden geconfigureerd.
Invoerclaims
Het element InputClaims bevat een lijst met claims die moeten worden verzonden naar de provider van het eenmalige wachtwoordprotocol. U kunt ook de naam van uw claim toewijzen aan de naam die hieronder is gedefinieerd.
ClaimReferenceId | Vereist | Beschrijving |
---|---|---|
Id | Yes | De id om de gebruiker te identificeren die eerder een code heeft gegenereerd. Het wordt vaak gebruikt als de id van de bestemming waar de code wordt bezorgd, bijvoorbeeld e-mailadres of telefoonnummer. |
otpToVerify | Yes | De verificatiecode die door de gebruiker is opgegeven. |
Het element InputClaimsTransformations kan een verzameling InputClaimsTransformation-elementen bevatten die worden gebruikt om de invoerclaims te wijzigen of nieuwe te genereren voordat ze naar de provider van het eenmalige wachtwoordprotocol worden verzonden.
Uitvoerclaims
Er zijn geen uitvoerclaims opgegeven tijdens codeverificatie van deze protocolprovider.
Het element OutputClaimsTransformations kan een verzameling OutputClaimsTransformation-elementen bevatten die worden gebruikt om uitvoerclaims te wijzigen of nieuwe te genereren.
Metagegevens
De volgende instellingen kunnen worden gebruikt voor de codeverificatiemodus:
Kenmerk | Vereist | Beschrijving |
---|---|---|
Bewerking | Yes | De bewerking die moet worden uitgevoerd. Mogelijke waarde: VerifyCode . |
UI-elementen
De volgende metagegevens kunnen worden gebruikt om de foutberichten te configureren die worden weergegeven bij het mislukken van een codeverificatie. De metagegevens moeten worden geconfigureerd in het zelf-gecontroleerde technische profiel. De foutberichten kunnen worden gelokaliseerd.
Kenmerk | Vereist | Beschrijving |
---|---|---|
UserMessageIfSessionDoesNotExist | No | Het bericht dat aan de gebruiker moet worden weergegeven als de codeverificatiesessie is verlopen. Het is de code is verlopen of de code is nooit gegenereerd voor een bepaalde id. |
UserMessageIfMaxRetryAttempted | No | Het bericht dat aan de gebruiker moet worden weergegeven als deze het maximum aantal toegestane verificatiepogingen heeft overschreden. |
UserMessageIfMaxNumberOfCodeGenerated | No | Het bericht dat aan de gebruiker wordt weergegeven als het genereren van code het maximum aantal toegestane pogingen heeft overschreden. |
UserMessageIfInvalidCode | No | Het bericht dat aan de gebruiker moet worden weergegeven als deze een ongeldige code heeft opgegeven. |
UserMessageIfVerificationFailedRetryAllowed | No | Het bericht dat aan de gebruiker moet worden weergegeven als deze een ongeldige code heeft opgegeven en de gebruiker de juiste code mag opgeven. |
UserMessageIfSessionConflict | No | Het bericht dat aan de gebruiker moet worden weergegeven als de code niet kan worden geverifieerd. |
Voorbeeld
Het volgende voorbeeld TechnicalProfile
wordt gebruikt voor het verifiëren van een code:
<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>
Volgende stappen
Zie het volgende artikel voor een voorbeeld van het gebruik van een technisch profiel voor eenmalige wachtwoorden met aangepaste e-mailverificatie: