Share via


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:

  • Aangepaste e-mailverificatie in Azure Active Directory B2C (Mailjet, SendGrid)