Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir del 1 de mayo de 2025, Azure AD B2C ya no estará disponible para la compra por parte de nuevos clientes. Obtenga más información en nuestras preguntas más frecuentes.
Nota:
En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.
Azure Active Directory B2C (Azure AD B2C) proporciona compatibilidad para administrar la generación y verificación de una contraseña de un solo uso. Utilice un perfil técnico para generar un código y, a continuación, verifique ese código más tarde.
El perfil técnico de contraseña de un solo uso también puede devolver un mensaje de error durante la verificación del código. Diseñe la integración con la contraseña de un solo uso mediante un perfil técnico de validación. Un perfil técnico de validación llama al perfil técnico de contraseña de un solo uso para verificar un código. El perfil técnico de validación valida los datos proporcionados por el usuario antes de que continúe el recorrido del usuario. Con el perfil técnico de validación, se muestra un mensaje de error en una página autoafirmada.
Protocolo
El atributo Name del elemento Protocol tiene que establecerse en Proprietary. El atributo handler debe contener el nombre completo del ensamblado del controlador de protocolo que usa Azure AD B2C:
Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
En el ejemplo siguiente se muestra un perfil técnico de contraseña de un solo uso:
<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" />
...
Generación de código
El primer modo de este perfil técnico es generar un código. A continuación se muestran las opciones que se pueden configurar para este modo. Los códigos generados y los intentos se rastrean dentro de la sesión.
Notificaciones de entrada
El elemento InputClaims contiene una lista de notificaciones necesarias para enviar al proveedor de protocolo de contraseña de un solo uso. También puede asignar el nombre de la notificación al nombre que se define a continuación.
| ClaimReferenceId | Obligatorio | Descripción |
|---|---|---|
| identificador | Sí | El identificador para identificar al usuario que necesita verificar el código más adelante. Se utiliza habitualmente como identificador del destino al que se entrega el código, por ejemplo, la dirección de correo electrónico o el número de teléfono. |
El elemento InputClaimsTransformations puede contener una colección de elementos InputClaimsTransformation que se usan para modificar las notificaciones de entrada o generar otras nuevas antes de enviarlas al proveedor de protocolo de contraseña de un solo uso.
Notificaciones de salida
El elemento OutputClaims contiene una lista de notificaciones generadas por el proveedor de protocolo de contraseña de un solo uso. También puede asignar el nombre de la notificación al nombre que se define a continuación.
| ClaimReferenceId | Obligatorio | Descripción |
|---|---|---|
| otpGenerated | Sí | El código generado cuya sesión se administra mediante Azure AD B2C. |
El elemento OutputClaimsTransformations puede contener una colección de elementos OutputClaimsTransformation que se usan para modificar las notificaciones de salida o para generar nuevas.
Metadatos
Se pueden utilizar los siguientes ajustes para configurar el modo de generación de código:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Operación | Sí | Operación que se va a realizar. Valor posible: GenerateCode. |
| CodeExpirationInSeconds | No | Tiempo en segundos hasta la caducidad del código. Mínimo: 60; Máximo: 1200; Predeterminado: 600. Cada vez que se proporciona un código (el mismo código usando ReuseSameCode, o un código nuevo), se extiende la caducidad del código. Este tiempo también se usa para establecer el tiempo de espera de reintento (una vez que se alcanza el número máximo de intentos, el usuario no puede intentar obtener nuevos códigos hasta que expire este tiempo) |
| CodeLength | No | Longitud del código. El valor predeterminado es 6. |
| Conjunto de caracteres | No | Juego de caracteres del código, con formato para su uso en una expresión regular. Por ejemplo: a-z0-9A-Z. El valor predeterminado es 0-9. El juego de caracteres debe incluir un mínimo de 10 caracteres diferentes en el conjunto especificado. |
| NumRetryAttempts | No | El número de intentos de verificación antes de que el código se considere no válido. El valor predeterminado es 5. Por ejemplo, si establece NumRetryAttempts en 2, solo le permitirá 2 intentos en total (primero + 1 reintento). Para el 3er intento, lanzará el máximo de intentos alcanzados, independientemente de si el código es correcto o no. |
| NumCodeGenerationAttempts | No | El número máximo de intentos de generación de código por identificador. El valor predeterminado es 10 si no se especifica. |
| ReuseSameCode | No | Si se debe proporcionar el mismo código en lugar de generar un nuevo código cuando el código dado no ha caducado y sigue siendo válido. El valor predeterminado es false. |
Ejemplo
El siguiente ejemplo TechnicalProfile se utiliza para generar un código:
<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>
Verificar código
El segundo modo de este perfil técnico es comprobar un código. A continuación se muestran las opciones que se pueden configurar para este modo.
Notificaciones de entrada
El elemento InputClaims contiene una lista de notificaciones necesarias para enviar al proveedor de protocolo de contraseña de un solo uso. También puede asignar el nombre de la notificación al nombre que se define a continuación.
| ClaimReferenceId | Obligatorio | Descripción |
|---|---|---|
| identificador | Sí | El identificador para identificar al usuario que ha generado previamente un código. Se utiliza habitualmente como identificador del destino al que se entrega el código, por ejemplo, la dirección de correo electrónico o el número de teléfono. |
| otpToVerify | Sí | El código de verificación proporcionado por el usuario. |
El elemento InputClaimsTransformations puede contener una colección de elementos InputClaimsTransformation que se usan para modificar las notificaciones de entrada o generar otras nuevas antes de enviarlas al proveedor de protocolo de contraseña de un solo uso.
Notificaciones de salida
No se proporcionan notificaciones de salida durante la verificación de código de este proveedor de protocolo.
El elemento OutputClaimsTransformations puede contener una colección de elementos OutputClaimsTransformation que se usan para modificar las notificaciones de salida o para generar nuevas.
Metadatos
Se pueden usar las siguientes configuraciones para codificar el modo de verificación:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Operación | Sí | Operación que se va a realizar. Valor posible: VerifyCode. |
Elementos de interfaz de usuario
Los metadatos siguientes se pueden usar para configurar los mensajes de error que se muestran tras un error de comprobación de código. Los metadatos deben configurarse en el perfil técnico autoafirmado . Los mensajes de error se pueden localizar.
| Atributo | Obligatorio | Descripción |
|---|---|---|
| UserMessageIfSessionDoesNotExist | No | Mensaje que se mostrará al usuario si la sesión de comprobación de código ha expirado. Es que el código ha caducado o que el código nunca se ha generado para un identificador determinado. |
| UserMessageIfMaxRetryAttempted | No | El mensaje que se mostrará al usuario si ha superado el número máximo de intentos de verificación permitidos. |
| UserMessageIfMaxNumberOfCodeGenerated | No | Mensaje que se mostrará al usuario si la generación de código ha superado el número máximo de intentos permitidos. |
| UserMessageIfInvalidCode | No | El mensaje que se mostrará al usuario si ha proporcionado un código no válido. |
| UserMessageIfVerificationFailedRetryAllowed | No | El mensaje que se mostrará al usuario si ha proporcionado un código no válido y el usuario puede proporcionar el código correcto. |
| UserMessageIfSessionConflict | No | El mensaje que se mostrará al usuario si no se puede verificar el código. |
Ejemplo
El siguiente ejemplo TechnicalProfile se utiliza para verificar un código:
<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>
Pasos siguientes
Consulte el siguiente artículo para ver un ejemplo del uso del perfil técnico de contraseña de un solo uso con verificación de correo electrónico personalizada: