Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 nas nossas Perguntas Frequentes.
Observação
No Azure Ative Directory B2C, as políticas personalizadas são projetadas principalmente para lidar com cenários complexos. Para a maioria dos cenários, recomendamos a utilização dos fluxos de utilizador incorporados. Se você não tiver feito isso, saiba mais sobre o pacote inicial de políticas personalizadas em Introdução às políticas personalizadas no Ative Directory B2C.
Os elementos Predicados 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 Ative Directory B2C (Azure AD B2C).
O diagrama a seguir mostra a relação entre os elementos:
Predicados
O elemento Predicado 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 do idioma.
O elemento Predicados deve aparecer diretamente após o elemento ClaimsSchema dentro do elemento BuildingBlocks .
O elemento Predicados contém o seguinte elemento :
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Predicado | 1:n | Uma lista de predicados. |
O elemento Predicado 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. |
| HelpText | 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 Predicado 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 predicados
IsLengthRange
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 predicados. O elemento predicado suporta os 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 Minimum e Maximum que especificam o intervalo de comprimento da cadeia de caracteres:
<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
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 predicados. O elemento predicado suporta os seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| RegularExpression | 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 predicados. O elemento predicado suporta os seguintes parâmetros:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
| Conjunto de caracteres | Sim | O conjunto de caracteres que podem ser inseridos. Por exemplo, caracteres a-zminúsculos , caracteres A-Zmaiúsculos 0-9, dígitos ou 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>
IsDateRange
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 predicados. O elemento predicado suporta os 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 especificam 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>
PredicadoValidações
Enquanto os predicados definem a validação para verificar em relação a um tipo de declaração, o grupo PredicateValidations agrupa um conjunto de predicados para formar uma validação de entrada do 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 todos os PredicateGroup com seu conjunto de elementos PredicateReference .
O elemento PredicateValidations deve aparecer diretamente após 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 predicados. |
O elemento PredicateValidation contém o seguinte atributo:
| Atributo | Obrigatório | Descrição |
|---|---|---|
| Id | Sim | Um identificador usado para a validação de predicados. O elemento ClaimType pode usar esse identificador na política. |
O elemento PredicateValidation contém o seguinte elemento :
| Elemento | Ocorrências | Descrição |
|---|---|---|
| PredicateGroups | 1:n | Uma lista de grupos de predicados. |
O elemento PredicateGroups contém o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| PredicateGroup | 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 devem digitar. |
| PredicadoReferências | 1:n | Uma lista de referências de predicados. |
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 predicados para que a entrada seja aceita. Se não for especificado, o valor deve corresponder a todas as definições de predicados. |
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 de predicados. |
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. -
Uso de minúsculas usando o
IncludesCharactersmétodo, valida que a senha contém uma letra minúscula. -
Em 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. -
Symbol usando o
IncludesCharactersmétodo, valida que a senha contém um dos vários caracteres de símbolo. -
PIN usando o
MatchesRegexmétodo, valida que a senha contém apenas números. -
AllowedAADCharacters usando o
MatchesRegexmétodo, valida que a senha apenas caractere inválido foi fornecido. -
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 DisallowedWhitespace, AllowedAADCharacters e IsLengthBetween8And64
-
StrongPassword valida 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úsculas, maiúsculas, número ou símbolo. - CustomPassword valida apenas DisallowedWhitespace, AllowedAADCharacters. Assim, 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 predicados, 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>
A seguir mostra como os elementos são organizados quando o Azure AD B2C exibe a mensagem de erro:
Configurar um intervalo de datas
Com os elementos Predicados e PredicateValidations , você pode controlar os valores de data mínima e máxima do UserInputType usando um DateTimeDropdownarquivo . 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óximos passos
- Saiba como Configurar a complexidade de senha usando políticas personalizadas no Azure Ative Directory B2C usando validações de predicados.