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.
Los elementos Predicates y PredicateValidations permiten realizar un proceso de validación para asegurarse de que solo se especifican los datos con el formato correcto en el inquilino de Azure Active Directory B2C (Azure AD B2C).
El siguiente diagrama muestra la relación entre los elementos:
Predicados
El elemento Predicate define una validación básica para comprobar el valor de un tipo de notificación y devuelve true o false. La validación se realiza mediante un elemento Method especificado y un conjunto de elementos Parameter relevantes para el método. Por ejemplo, un predicado puede comprobar si la longitud de un valor de notificación de cadena está dentro del intervalo de parámetros mínimo y máximo especificados, o si un valor de notificación de cadena contiene un juego de caracteres. El elemento UserHelpText proporciona un mensaje de error para los usuarios si se produce un error en la comprobación. El valor del elemento UserHelpText se puede localizar mediante la personalización del idioma.
El elemento Predicates debe aparecer directamente después del elemento ClaimsSchema dentro del elemento BuildingBlocks .
El elemento Predicates contiene el siguiente elemento:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| Predicado | 1:n | Una lista de predicados. |
El elemento Predicate contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Identificación | Sí | Identificador que se usa para el predicado. Hay otros elementos que pueden usar este identificador en la directiva. |
| Método | Sí | Tipo de método que se va a utilizar para la validación. Valores posibles: IsLengthRange, MatchesRegex, IncludesCharacters o IsDateRange. |
| Texto de ayuda | No | Un mensaje de error para los usuarios si se produce un error en la comprobación. Esta cadena se puede localizar mediante la personalización del idioma |
El elemento Predicate contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| UserHelpText | 0:1 | (En desuso) Un mensaje de error para los usuarios si se produce un error en la comprobación. |
| Parámetros | 1:1 | Los parámetros para el tipo de método de la validación de cadena. |
El elemento Parameters contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| Parámetro | 1:n | Los parámetros para el tipo de método de la validación de cadena. |
El elemento Parameter contiene los siguientes atributos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| Identificación | 1:1 | Identificador del parámetro. |
Métodos de predicado
IsLengthRange
El método IsLengthRange comprueba si la longitud de un valor de notificación de cadena está dentro del intervalo de parámetros mínimo y máximo especificados. Echa un vistazo a la demostración en vivo de este método de predicado. El elemento predicate admite los siguientes parámetros:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
| Máxima | Sí | El número máximo de caracteres que se pueden introducir. |
| Mínimo | Sí | El número mínimo de caracteres que se deben introducir. |
En el ejemplo siguiente se muestra un método IsLengthRange con los parámetros Minimum y Maximum que especifican el intervalo de longitud de la cadena:
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
MatchesRegex
El método MatchesRegex comprueba si un valor de notificación de cadena coincide con una expresión regular. Echa un vistazo a la demostración en vivo de este método de predicado. El elemento predicate admite los siguientes parámetros:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
| RegularExpression | Sí | Patrón de expresión regular que debe coincidir. |
En el ejemplo siguiente se muestra un MatchesRegex método con el parámetro RegularExpression que especifica una expresión regular:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncluyeCaracteres
El método IncludesCharacters comprueba si un valor de notificación de cadena contiene un juego de caracteres. Echa un vistazo a la demostración en vivo de este método de predicado. El elemento predicate admite los siguientes parámetros:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
| Conjunto de caracteres | Sí | El conjunto de caracteres que se pueden introducir. Por ejemplo, caracteres a-zen minúsculas , caracteres A-Zen mayúsculas , dígitos 0-9o una lista de símbolos, como @#$%^&*\-_+=[]{}|\\:',?/~"();!. |
En el ejemplo siguiente se muestra un IncludesCharacters método con el parámetro CharacterSet que especifica el conjunto de caracteres:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
IsDateRange
El método IsDateRange comprueba si un valor de notificación de fecha se encuentra entre un intervalo de parámetros mínimo y máximo especificados. Echa un vistazo a la demostración en vivo de este método de predicado. El elemento predicate admite los siguientes parámetros:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
| Máxima | Sí | La fecha más grande posible que se puede ingresar. El formato de la fecha sigue yyyy-mm-dd la convención, o Today. |
| Mínimo | Sí | La fecha más pequeña posible que se puede ingresar. El formato de la fecha sigue yyyy-mm-dd la convención, o Today. |
En el ejemplo siguiente se muestra un IsDateRange método con los parámetros Minimum y Maximum que especifica el intervalo de fechas con un formato de yyyy-mm-dd y Today.
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 1970-01-01 and today.">
<Parameters>
<Parameter Id="Minimum">1970-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
PredicateValidations
Mientras que los predicados definen la validación que se va a comprobar con un tipo de notificación, PredicateValidations agrupa un conjunto de predicados para formar una validación de entrada de usuario que se puede aplicar a un tipo de notificación. Cada elemento PredicateValidation contiene un conjunto de elementos PredicateGroup que contienen un conjunto de elementos PredicateReference que apuntan a un Predicate. Para pasar la validación, el valor de la notificación debe pasar todas las pruebas de cualquier predicado en todo el PredicateGroup con su conjunto de elementos PredicateReference .
El elemento PredicateValidations debe aparecer directamente después del elemento Predicates dentro del elemento BuildingBlocks .
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
El elemento PredicateValidations contiene el siguiente elemento:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| PredicateValidation | 1:n | Una lista de validación de predicados. |
El elemento PredicateValidation contiene el siguiente atributo:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Identificación | Sí | Identificador que se usa para la validación de predicados. El elemento ClaimType puede usar este identificador en la directiva. |
El elemento PredicateValidation contiene el siguiente elemento:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| PredicateGroups | 1:n | Una lista de grupos de predicados. |
El elemento PredicateGroups contiene el siguiente elemento:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| PredicateGroup | 1:n | Una lista de predicados. |
El elemento PredicateGroup contiene el siguiente atributo:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Identificación | Sí | Identificador que se usa para el grupo de predicados. |
El elemento PredicateGroup contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| UserHelpText | 0:1 | Una descripción del predicado que puede ser útil para que los usuarios sepan qué valor deben escribir. |
| PredicadoReferencias | 1:n | Una lista de referencias de predicados. |
El elemento PredicateReferences contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| MatchAtLeast (CoincidenciaAl Menos) | No | Especifica que el valor debe coincidir al menos con ese número de definiciones de predicado para que se acepte la entrada. Si no se especifica, el valor debe coincidir con todas las definiciones de predicado. |
El elemento PredicateReferences contiene los siguientes elementos:
| Elemento | Repeticiones | Descripción |
|---|---|---|
| PredicateReference | 1:n | Referencia a un predicado. |
El elemento PredicateReference contiene los siguientes atributos:
| Atributo | Obligatorio | Descripción |
|---|---|---|
| Identificación | Sí | Identificador que se usa para la validación de predicados. |
Configurar la complejidad de las contraseñas
Con Predicates y PredicateValidationsInput, puede controlar los requisitos de complejidad de las contraseñas proporcionadas por un usuario al crear una cuenta. De forma predeterminada, Azure AD B2C usa contraseñas seguras. Azure AD B2C también admite opciones de configuración para controlar la complejidad de las contraseñas que los clientes pueden usar. Puede definir la complejidad de la contraseña mediante estos elementos de predicado:
-
IsLengthBetween8And64 mediante el
IsLengthRangemétodo, valida que la contraseña debe tener entre 8 y 64 caracteres. -
Con el
IncludesCharactersmétodo, valida que la contraseña contenga una letra minúscula. -
Mayúsculas usando el
IncludesCharactersmétodo, valida que la contraseña contiene una letra mayúscula. -
Número que utiliza el
IncludesCharactersmétodo, valida que la contraseña contiene un dígito. -
Symbol mediante el
IncludesCharactersmétodo, valida que la contraseña contiene uno de varios caracteres de símbolo. -
El PIN mediante el
MatchesRegexmétodo valida que la contraseña solo contenga números. -
AllowedAADCharacters mediante el
MatchesRegexmétodo, valida que solo se proporcionó el carácter no válido de la contraseña. -
DisallowedWhitespace mediante el
MatchesRegexmétodo, valida que la contraseña no comience ni termine con un carácter de espacio en blanco.
<Predicates>
<Predicate Id="IsLengthBetween8And64" Method="IsLengthRange" HelpText="The password must be between 8 and 64 characters.">
<Parameters>
<Parameter Id="Minimum">8</Parameter>
<Parameter Id="Maximum">64</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Uppercase" Method="IncludesCharacters" HelpText="an uppercase letter">
<Parameters>
<Parameter Id="CharacterSet">A-Z</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Number" Method="IncludesCharacters" HelpText="a digit">
<Parameters>
<Parameter Id="CharacterSet">0-9</Parameter>
</Parameters>
</Predicate>
<Predicate Id="Symbol" Method="IncludesCharacters" HelpText="a symbol">
<Parameters>
<Parameter Id="CharacterSet">@#$%^&*\-_+=[]{}|\\:',.?/`~"();!</Parameter>
</Parameters>
</Predicate>
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
<Predicate Id="AllowedAADCharacters" Method="MatchesRegex" HelpText="An invalid character was provided.">
<Parameters>
<Parameter Id="RegularExpression">(^([0-9A-Za-z\d@#$%^&*\-_+=[\]{}|\\:',?/`~"();! ]|(\.(?!@)))+$)|(^$)</Parameter>
</Parameters>
</Predicate>
<Predicate Id="DisallowedWhitespace" Method="MatchesRegex" HelpText="The password must not begin or end with a whitespace character.">
<Parameters>
<Parameter Id="RegularExpression">(^\S.*\S$)|(^\S+$)|(^$)</Parameter>
</Parameters>
</Predicate>
Después de definir las validaciones básicas, puede combinarlas y crear un conjunto de políticas de contraseñas que puede usar en su política:
- SimplePassword valida DisallowedWhitespace, AllowedAADCharacters e IsLengthBetween8And64
-
StrongPassword valida DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64. El último grupo
CharacterClassesejecuta un conjunto adicional de predicados conMatchAtLeastset en 3. La contraseña de usuario debe tener entre 8 y 16 caracteres, y tres de los siguientes caracteres: minúsculas, mayúsculas, número o símbolo. - CustomPassword valida solo DisallowedWhitespace, AllowedAADCharacters. Por lo tanto, el usuario puede proporcionar cualquier contraseña con cualquier longitud, siempre que los caracteres sean válidos.
<PredicateValidations>
<PredicateValidation Id="SimplePassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
<PredicateValidation Id="StrongPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="LengthGroup">
<PredicateReferences>
<PredicateReference Id="IsLengthBetween8And64" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="CharacterClasses">
<UserHelpText>The password must have at least 3 of the following:</UserHelpText>
<PredicateReferences MatchAtLeast="3">
<PredicateReference Id="Lowercase" />
<PredicateReference Id="Uppercase" />
<PredicateReference Id="Number" />
<PredicateReference Id="Symbol" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
<PredicateValidation Id="CustomPassword">
<PredicateGroups>
<PredicateGroup Id="DisallowedWhitespaceGroup">
<PredicateReferences>
<PredicateReference Id="DisallowedWhitespace" />
</PredicateReferences>
</PredicateGroup>
<PredicateGroup Id="AllowedAADCharactersGroup">
<PredicateReferences>
<PredicateReference Id="AllowedAADCharacters" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
En el tipo de notificación, agregue el elemento PredicateValidationReference y especifique el identificador como una de las validaciones de predicado, como SimplePassword, StrongPassword o CustomPassword.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<AdminHelpText>Enter password</AdminHelpText>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
<PredicateValidationReference Id="StrongPassword" />
</ClaimType>
A continuación se muestra cómo se organizan los elementos cuando Azure AD B2C muestra el mensaje de error:
Configurar un intervalo de fechas
Con los elementos Predicates y PredicateValidations , puede controlar los valores de fecha mínimos y máximos de UserInputType mediante un DateTimeDropdownarchivo . Para ello, cree un predicado con el IsDateRange método y proporcione los parámetros mínimo y máximo.
<Predicates>
<Predicate Id="DateRange" Method="IsDateRange" HelpText="The date must be between 01-01-1980 and today.">
<Parameters>
<Parameter Id="Minimum">1980-01-01</Parameter>
<Parameter Id="Maximum">Today</Parameter>
</Parameters>
</Predicate>
</Predicates>
Agregue un PredicateValidation con una referencia al DateRange predicado.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
En el tipo de notificación, agregue el elemento PredicateValidationReference y especifique el identificador como CustomDateRange.
<ClaimType Id="dateOfBirth">
<DisplayName>Date of Birth</DisplayName>
<DataType>date</DataType>
<AdminHelpText>The user's date of birth.</AdminHelpText>
<UserHelpText>Your date of birth.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
<PredicateValidationReference Id="CustomDateRange" />
</ClaimType>
Pasos siguientes
- Obtenga información sobre cómo configurar la complejidad de las contraseñas mediante directivas personalizadas en Azure Active Directory B2C mediante validaciones de predicados.