Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.
Observação
No Azure Active Directory B2C, as políticas personalizadas são projetadas principalmente para tratar de cenários complexos. Para a maioria dos cenários, recomendamos que você use fluxos de usuários predefinidos. Se você ainda não fez isso, saiba mais sobre o pacote de início de política personalizado em Introdução às políticas personalizadas no Active Directory B2C.
Os elementos Predicates e PredicateValidations permitem que você execute um processo de validação para garantir que apenas dados formados corretamente sejam inseridos em seu locatário do Azure AD B2C (Azure Active Directory B2C).
O diagrama a seguir mostra a relação entre os elementos:
Predicados
O elemento Predicate define uma validação básica para verificar o valor de um tipo de declaração e retorna true ou false. A validação é feita usando um elemento method especificado e um conjunto de elementos parameter relevantes para o método. Por exemplo, um predicado pode verificar se o comprimento de um valor de declaração de cadeia de caracteres está dentro do intervalo de parâmetros mínimos e máximos especificados ou se um valor de declaração de cadeia de caracteres contém um conjunto de caracteres. O elemento UserHelpText fornece uma mensagem de erro para os usuários se a verificação falhar. O valor do elemento UserHelpText pode ser localizado usando a personalização da linguagem.
O elemento Predicates deve aparecer diretamente seguindo o elemento ClaimsSchema dentro do elemento BuildingBlocks .
O elemento Predicates contém o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Predicado | 1:n | Uma lista de predicados. |
O elemento Predicate contém os seguintes atributos:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| ID | Sim | Um identificador usado para o predicado. Outros elementos podem usar esse identificador na política. |
| Método | Sim | O tipo de método a ser usado para validação. Valores possíveis: IsLengthRange, MatchesRegex, IncludesCharacters ou IsDateRange. |
| Texto de Ajuda | Não | Uma mensagem de erro para os usuários se a verificação falhar. Essa cadeia de caracteres pode ser localizada usando a personalização do idioma |
O elemento Predicate contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| UserHelpText | 0:1 | (Preterido) Uma mensagem de erro para os usuários se a verificação falhar. |
| Parâmetros | 1:1 | Os parâmetros para o tipo de método da validação de cadeia de caracteres. |
O elemento Parameters contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Parâmetro | 1:n | Os parâmetros para o tipo de método da validação de cadeia de caracteres. |
O elemento Parameter contém os seguintes atributos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| ID | 1:1 | O identificador do parâmetro. |
Métodos de predicado
ÉComprimentoIntervalo
O método IsLengthRange verifica se o comprimento de um valor de declaração de cadeia de caracteres está dentro do intervalo de parâmetros mínimos e máximos especificados. Confira a demonstração ao vivo deste método de predicado. O elemento predicado dá suporte aos seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| Máximo | Sim | O número máximo de caracteres que podem ser inseridos. |
| Mínimo | Sim | O número mínimo de caracteres que devem ser inseridos. |
O exemplo a seguir mostra um método IsLengthRange com os parâmetros e Minimum que especifica o intervalo de comprimento da cadeia de caracteresMaximum:
<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>
CorrespondênciasRegex
O método MatchesRegex verifica se um valor de declaração de cadeia de caracteres corresponde a uma expressão regular. Confira a demonstração ao vivo deste método de predicado. O elemento predicado dá suporte aos seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| Expressão Regular | Sim | O padrão de expressão regular a ser correspondido. |
O exemplo a seguir mostra um MatchesRegex método com o parâmetro RegularExpression que especifica uma expressão regular:
<Predicate Id="PIN" Method="MatchesRegex" HelpText="The password must be numbers only.">
<Parameters>
<Parameter Id="RegularExpression">^[0-9]+$</Parameter>
</Parameters>
</Predicate>
IncluiPersonagens
O método IncludesCharacters verifica se um valor de declaração de cadeia de caracteres contém um conjunto de caracteres. Confira a demonstração ao vivo deste método de predicado. O elemento predicado dá suporte aos seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| Conjunto de Carateres | Sim | O conjunto de caracteres que podem ser inseridos. Por exemplo, caracteres a-zminúsculos, caracteres A-Zmaiúsculos, dígitos 0-9ou uma lista de símbolos, como @#$%^&*\-_+=[]{}|\\:',?/~"();!. |
O exemplo a seguir mostra um IncludesCharacters método com o parâmetro CharacterSet que especifica o conjunto de caracteres:
<Predicate Id="Lowercase" Method="IncludesCharacters" HelpText="a lowercase letter">
<Parameters>
<Parameter Id="CharacterSet">a-z</Parameter>
</Parameters>
</Predicate>
ÉDataIntervalo
O método IsDateRange verifica se um valor de declaração de data está entre um intervalo de parâmetros mínimos e máximos especificados. Confira a demonstração ao vivo deste método de predicado. O elemento predicado dá suporte aos seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| Máximo | Sim | A maior data possível que pode ser inserida. O formato da data segue yyyy-mm-dd a convenção ou Today. |
| Mínimo | Sim | A menor data possível que pode ser inserida. O formato da data segue yyyy-mm-dd a convenção ou Today. |
O exemplo a seguir mostra um IsDateRange método com os parâmetros Minimum e Maximum que especifica o intervalo de datas com um formato de yyyy-mm-dd e 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
Enquanto os predicados definem a validação para verificar em relação a um tipo de declaração, o PredicateValidations agrupa um conjunto de predicados para formar uma validação de entrada de usuário que pode ser aplicada a um tipo de declaração. Cada elemento PredicateValidation contém um conjunto de elementos PredicateGroup que contêm um conjunto de elementos PredicateReference que aponta para um predicado. Para passar na validação, o valor da declaração deve passar em todos os testes de qualquer predicado em todo o PredicateGroup com o conjunto de elementos PredicateReference .
O elemento PredicateValidations deve aparecer diretamente seguindo o elemento Predicados dentro do elemento BuildingBlocks .
<PredicateValidations>
<PredicateValidation Id="">
<PredicateGroups>
<PredicateGroup Id="">
<UserHelpText></UserHelpText>
<PredicateReferences MatchAtLeast="">
<PredicateReference Id="" />
...
</PredicateReferences>
</PredicateGroup>
...
</PredicateGroups>
</PredicateValidation>
...
</PredicateValidations>
O elemento PredicateValidations contém o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| PredicateValidation | 1:n | Uma lista de validação de predicado. |
O elemento PredicateValidation contém o seguinte atributo:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| ID | Sim | Um identificador usado para a validação do predicado. O elemento ClaimType pode usar esse identificador na política. |
O elemento PredicateValidation contém o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Grupos de Predicados | 1:n | Uma lista de grupos de predicados. |
O elemento PredicateGroups contém o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Grupo de Predicados | 1:n | Uma lista de predicados. |
O elemento PredicateGroup contém o seguinte atributo:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| ID | Sim | Um identificador usado para o grupo de predicados. |
O elemento PredicateGroup contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| UserHelpText | 0:1 | Uma descrição do predicado que pode ser útil para os usuários saberem qual valor eles devem digitar. |
| PredicadoReferências | 1:n | Uma lista de referências de predicado. |
O elemento PredicateReferences contém os seguintes atributos:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| MatchAtLeast | Não | Especifica que o valor deve corresponder pelo menos a muitas definições de predicado para que a entrada seja aceita. Se não for especificado, o valor deverá corresponder a todas as definições de predicado. |
O elemento PredicateReferences contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| PredicadoReferência | 1:n | Uma referência a um predicado. |
O elemento PredicateReference contém os seguintes atributos:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| ID | Sim | Um identificador usado para a validação do predicado. |
Configurar a complexidade da senha
Com Predicados e PredicateValidationsInput , você pode controlar os requisitos de complexidade para senhas fornecidas por um usuário ao criar uma conta. Por padrão, o Azure AD B2C usa senhas fortes. O Azure AD B2C também dá suporte a opções de configuração para controlar a complexidade das senhas que os clientes podem usar. Você pode definir a complexidade da senha usando estes elementos de predicado:
-
IsLengthBetween8And64 usando o
IsLengthRangemétodo, valida que a senha deve ter entre 8 e 64 caracteres. -
Em letras minúsculas usando o
IncludesCharactersmétodo, valida que a senha contém uma letra minúscula. -
Maiúsculas usando o
IncludesCharactersmétodo, valida que a senha contém uma letra maiúscula. -
Número usando o
IncludesCharactersmétodo, valida que a senha contém um dígito. -
Símbolo usando o
IncludesCharactersmétodo, valida que a senha contém um dos vários caracteres de símbolo. -
O PIN que usa o
MatchesRegexmétodo valida que a senha contém apenas números. -
AllowedAADCharacters usando o
MatchesRegexmétodo valida que a senha somente o caractere inválido foi fornecido. -
O DisallowedWhitespace usando o
MatchesRegexmétodo valida que a senha não começa ou termina com um caractere de espaço em branco.
<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>
Depois de definir as validações básicas, você pode combiná-las e criar um conjunto de políticas de senha que você pode usar em sua política:
- SimplePassword valida o DisallowedWhitespace, AllowedAADCharacters e IsLengthBetween8And64
-
StrongPassword valida o DisallowedWhitespace, AllowedAADCharacters, IsLengthBetween8And64. O último grupo
CharacterClassesexecuta um conjunto adicional de predicados comMatchAtLeastdefinido como 3. A senha do usuário deve ter entre 8 e 16 caracteres e três dos seguintes caracteres: Minúscula, Maiúscula, Número ou Símbolo. - CustomPassword valida apenas DisallowedWhitespace, AllowedAADCharacters. Portanto, o usuário pode fornecer qualquer senha com qualquer comprimento, desde que os caracteres sejam 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>
No tipo de declaração, adicione o elemento PredicateValidationReference e especifique o identificador como uma das validações de predicado, como SimplePassword, StrongPassword ou 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>
O seguinte mostra como os elementos são organizados quando o Azure AD B2C exibe a mensagem de erro:
Configurar um intervalo de datas
Com os predicados e os elementos PredicateValidations , você pode controlar os valores mínimos e máximos de data do UserInputType usando um DateTimeDropdown. Para fazer isso, crie um Predicado com o IsDateRange método e forneça os parâmetros mínimo e 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>
Adicione um PredicateValidation com uma referência ao DateRange predicado.
<PredicateValidations>
<PredicateValidation Id="CustomDateRange">
<PredicateGroups>
<PredicateGroup Id="DateRangeGroup">
<PredicateReferences>
<PredicateReference Id="DateRange" />
</PredicateReferences>
</PredicateGroup>
</PredicateGroups>
</PredicateValidation>
</PredicateValidations>
No tipo de declaração, adicione o elemento PredicateValidationReference e especifique o 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>
Próximas etapas
- Saiba como configurar a complexidade da senha usando políticas personalizadas no Azure Active Directory B2C usando validações de predicado.