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.
O elemento ClaimsSchema define os tipos de declaração que podem ser referenciados como parte da política. O esquema de declarações é o lugar em que você declara suas declarações. Uma declaração pode ser um primeiro nome, sobrenome, nome de exibição, número de telefone e muito mais. O elemento ClaimsSchema contém uma lista de elementos ClaimType. O elemento ClaimType contém o atributo Id, que é o nome da declaração.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="Id">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
<UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
<UserInputType>TextBox</UserInputType>
Tipo de declaração
O elemento ClaimType contém o seguinte atributo:
| Atributo | Necessário | Descrição |
|---|---|---|
| ID | Sim | Um identificador que é usado para o tipo de declaração. Outros elementos podem usar esse identificador na política. |
O elemento ClaimType contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Nome Visível | 1:1 | O título que é exibido aos usuários em várias telas. O valor pode ser localizado. |
| Tipo de dados | 1:1 | O tipo da declaração. |
| DefaultPartnerClaimTypes | 0:1 | Os tipos de declaração padrão do parceiro a serem usados para um protocolo especificado. O valor pode ser substituído no PartnerClaimType especificado nos elementos InputClaim ou OutputClaim. Use esse elemento para especificar o nome padrão de um protocolo. |
| Máscara | 0:1 | Uma cadeia de caracteres opcional de caracteres de mascaramento que podem ser aplicados ao exibir a declaração. Por exemplo, o número de telefone 324-232-4343 pode ser mascarado como XXX-XXX-4343. |
| UserHelpText | 0:1 | Uma descrição do tipo de declaração que pode ser útil para os usuários entenderem sua finalidade. O valor pode ser localizado. |
| UserInputType | 0:1 | O tipo de controle de entrada que deve estar disponível para o usuário ao inserir manualmente os dados da declaração para o tipo de declaração. Confira os tipos de entrada do usuário definidos nesta página. |
| AdminHelpText | 0:1 | Uma descrição do tipo de declaração que pode ser útil para os administradores entenderem sua finalidade. |
| Restrição | 0:1 | As restrições de valor para essa declaração, como uma expressão regular (Regex) ou uma lista de valores aceitáveis. O valor pode ser localizado. |
| PredicateValidationReference | 0:1 | Uma referência a um elemento PredicateValidationsInput. Os elementos PredicateValidationReference permitem que você execute um processo de validação para garantir que apenas dados formados corretamente sejam inseridos. Para obter mais informações, confira Predicados. |
Tipo de dados
O elemento DataType dá suporte aos seguintes valores:
| Tipo | Descrição |
|---|---|
| booleano | Representa um valor booliano (true ou false). |
| data | Representa um momento no tempo, geralmente expresso como uma data e hora do dia. O valor da data segue a convenção ISO 8601. |
| data e hora | Representa um momento no tempo, geralmente expresso como uma data e hora do dia. O valor da data segue a convenção ISO 8601 durante o runtime e será convertido para o horário da época do UNIX quando for emitido como uma declaração no token. |
| duração | Representa um intervalo de tempo em anos, meses, dias, horas, minutos e segundos. O formato de é PnYnMnDTnHnMnS, em que P indica positivo ou N para valor negativo.
nY é o número de anos seguido por um Y literal.
nMo é o número de meses seguido por um Mo literal.
nD é o número de dias seguido por um D literal. Exemplos: P21Y representa 21 anos.
P1Y2Mo representa um ano e dois meses.
P1Y2Mo5D representa um ano, dois meses e cinco dias.
P1Y2M5DT8H5M20S representa um ano, dois meses, cinco dias, oito horas, cinco minutos e vinte segundos. |
| número de telefone | Representa um número de telefone. |
| INT | Representa o número entre -2.147.483.648 e 2.147.483.647 |
| Longas | Representa o número entre -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807 |
| corda | Representa o texto como uma sequência de unidades de código UTF-16. |
| stringCollection | Representa uma coleção de string. |
| identidade do usuário | Representa uma identidade de usuário. |
| userIdentityCollection | Representa uma coleção de userIdentity. |
DefaultPartnerClaimTypes
O DefaultPartnerClaimTypes pode conter o seguinte elemento:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Protocolo | 1:n | Lista de protocolos com seu nome de tipo de declaração de parceiro padrão. |
O elemento Protocol contém os seguintes atributos:
| Atributo | Necessário | Descrição |
|---|---|---|
| Nome | Sim | O nome de um protocolo válido com suporte do Azure AD B2C. Os valores possíveis são: OAuth1, OAuth2, SAML2, OpenIdConnect. |
| Tipo de Reclamação do Parceiro | Sim | O nome do tipo de declaração a ser usado. |
No exemplo a seguir, quando o Identity Experience Framework interage com um provedor de identidade SAML2 ou com o aplicativo de terceira parte confiável, a declaração surname é mapeada para http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname, com OpenIdConnect e OAuth2, a declaração é mapeada para family_name.
<ClaimType Id="surname">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
</ClaimType>
Como resultado, o JWT emitido pelo Azure AD B2C emite o family_namesobrenome em vez do nome ClaimType.
{
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Máscara
O elemento Mask contém os seguintes atributos:
| Atributo | Necessário | Descrição |
|---|---|---|
Type |
Sim | O tipo da máscara de declaração. Valores possíveis: Simple ou Regex. O valor Simple indica que uma máscara de texto simples é aplicada à parte à esquerda de uma declaração de cadeia de caracteres. O valor Regex indica que uma expressão regular é aplicada à declaração de cadeia de caracteres como um todo. Se o valor Regex for especificado, um atributo opcional também deverá ser definido com a expressão regular a ser usada. |
Regex |
Não | Se Type for definido como Regex, especifique a expressão regular a ser usada. |
O exemplo a seguir configura uma declaração PhoneNumber com a máscara Simple. Para obter mais amostras, confira a Demonstração ao vivo da declaração de máscara simples.
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
O Identity Experience Framework renderiza o número de telefone enquanto oculta os primeiros seis dígitos:
O exemplo a seguir configura uma declaração AlternateEmail com a máscara Regex. Para obter mais amostras, confira a Demonstração ao vivo da máscara Regex.
<ClaimType Id="AlternateEmail">
<DisplayName>Please verify the secondary email linked to your account</DisplayName>
<DataType>string</DataType>
<Mask Type="Regex" Regex="(?<=.).(?=.*@)">*</Mask>
<UserInputType>Readonly</UserInputType>
</ClaimType>
O Identity Experience Framework renderiza apenas a primeira letra de endereço de email e o nome de domínio de email:
Restrição
O elemento Restriction pode conter o seguinte atributo:
| Atributo | Necessário | Descrição |
|---|---|---|
| Comportamento de mesclagem | Não | O método usado para mesclar valores de enumeração com um ClaimType em uma política pai com o mesmo identificador. Use esse atributo quando substituir uma declaração especificada na política de base. Valores possíveis: Append, Prepend ou ReplaceAll. O valor Append é uma coleção de dados que deve ser acrescentada ao final da coleção especificada na política pai. O valor Prepend é uma coleção de dados que deve ser adicionada antes da coleção especificada na política pai. O valor ReplaceAll é uma coleção de dados especificados na política pai que deve ser ignorada. |
O elemento Restriction contém os seguintes elementos:
| Elemento | Ocorrências | Descrição |
|---|---|---|
| Enumeração | 1:n | As opções disponíveis na interface do usuário para o usuário selecionar para uma declaração, como um valor em uma lista suspensa. |
| Padrão | 1:1 | A expressão regular a ser usada. |
Enumeração
O elemento Enumeração define uma opção disponível para o usuário selecionar para uma declaração de interface do usuário, como um valor em CheckboxMultiSelect, DropdownSingleSelect ou RadioSingleSelect. Como alternativa, você pode definir e localizado as opções disponíveis com o elemento LocalizedCollections. Para pesquisar um item de uma coleção de Enumeração de declaração, use GetMappedValueFromLocalizedCollection Claims Transformation.
O elemento Enumeration contém os seguintes atributos:
| Atributo | Necessário | Descrição |
|---|---|---|
| Texto | Sim | A cadeia de caracteres de exibição que é mostrada ao usuário na interface do usuário para essa opção. |
| Valor | Sim | O valor da declaração associada à seleção dessa opção. |
| SelecionarPor Padrão | Não | Indica se esta opção deve ser selecionada ou não por padrão na interface do usuário. Os valores possíveis: True ou False. |
O exemplo a seguir configura uma declaração de lista suspensa city com um valor padrão definido como New York. Para obter mais amostras, confira a Demonstração ao vivo de enumeração de restrição de declaração.
<ClaimType Id="city">
<DisplayName>city where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
Lista suspensa de cidades com um valor padrão definido como Nova York:
Padrão
O elemento Pattern pode conter os seguintes atributos:
| Atributo | Necessário | Descrição |
|---|---|---|
| Expressão Regular | Sim | A expressão regular a que declarações desse tipo devem corresponder para que sejam válidas. |
| Texto de Ajuda | Não | Uma mensagem de erro para os usuários se a verificação de expressão regular falhar. |
O exemplo a seguir configura uma declaração email com o texto de ajuda e a validação de entrada de expressão regular:
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OpenIdConnect" PartnerClaimType="email" />
</DefaultPartnerClaimTypes>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
O Identity Experience Framework renderiza a declaração de endereço de email com a validação de entrada de formato de email:
UserInputType
O Azure AD B2C dá suporte a uma variedade de tipos de entrada do usuário, como uma lista suspensa, uma caixa de texto e uma senha, que podem ser usados ao inserir manualmente dados da declaração para o tipo de declaração. Você precisa especificar o UserInputType quando coleta informações do usuário usando um perfil técnico autodeclarado e controles de display.
Fazer check-out da demonstração ao vivo do tipo de entrada do usuário.
Os tipos de entrada do usuário do elemento Userinputtypedisponíveis:
| UserInputType | ClaimType com suporte | Descrição |
|---|---|---|
| Caixa de seleçãoMultiSelect | string |
Caixa suspensa seleção múltipla. O valor da declaração é representado em uma cadeia de caracteres delimitadores de vírgula dos valores selecionados. |
| DateTimeDropdown |
date, dateTime |
Menus suspensos para selecionar um dia, mês e ano. |
| DropdownSingleSelect | string |
Caixa suspensa seleção única. O valor da declaração é o valor selecionado. |
| Caixa de e-mail | string |
Campo de entrada de email. |
| Parágrafo |
boolean, date, dateTime, duration, int, long, , string |
Um campo que mostra texto somente em uma marca de parágrafo. |
| Senha | string |
Caixa de texto de senha. |
| Seleção de Rádio Único | string |
Coleção de botões de opção. O valor da declaração é o valor selecionado. |
| Somente leitura |
boolean, date, dateTime, duration, int, long, , string |
Caixa de texto somente leitura. |
| Caixa de Texto |
boolean, int, , phoneNumberstring |
Caixa de texto com linha única. |
Caixa de Texto
O tipo de entrada do usuário TextBox é usado para fornecer uma caixa de texto de linha única.
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
Caixa de e-mail
O tipo de entrada do usuário EmailBox é usado para fornecer um campo de entrada de email básico.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>EmailBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
Senha
O tipo de entrada do usuário Password é usado para registrar uma senha inserida pelo usuário.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
O tipo de entrada do usuário DateTimeDropdown é usado para fornecer um conjunto de menus suspensos para selecionar um dia, mês e ano. Você pode usar os elementos Predicates e PredicateValidations para controlar os valores de data mínimo e máximo. Para obter mais informações, confira a seção Configurar um intervalo de datas de Predicates e PredicateValidations.
<ClaimType Id="dateOfBirth">
<DisplayName>Date Of Birth</DisplayName>
<DataType>date</DataType>
<UserHelpText>The date on which you were born.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>
Seleção de Rádio Único
O tipo de entrada do usuário RadioSingleSelect é usado para fornecer uma coleção de botões de opção que permitem ao usuário selecionar uma opção.
<ClaimType Id="color">
<DisplayName>Preferred color</DisplayName>
<DataType>string</DataType>
<UserInputType>RadioSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Blue" Value="Blue" SelectByDefault="false" />
<Enumeration Text="Green " Value="Green" SelectByDefault="false" />
<Enumeration Text="Orange" Value="Orange" SelectByDefault="true" />
</Restriction>
</ClaimType>
DropdownSingleSelect
O tipo de entrada do usuário DropdownSingleSelect é usado para fornecer uma caixa suspensa que permite ao usuário selecionar uma opção.
<ClaimType Id="city">
<DisplayName>City where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
Caixa de seleçãoMultiSelect
O tipo de entrada do usuário CheckboxMultiSelect é usado para fornecer uma coleção de caixas de seleção que permitem ao usuário selecionar várias opções.
<ClaimType Id="languages">
<DisplayName>Languages you speak</DisplayName>
<DataType>string</DataType>
<UserInputType>CheckboxMultiSelect</UserInputType>
<Restriction>
<Enumeration Text="English" Value="English" SelectByDefault="true" />
<Enumeration Text="France " Value="France" SelectByDefault="false" />
<Enumeration Text="Spanish" Value="Spanish" SelectByDefault="false" />
</Restriction>
</ClaimType>
Somente leitura
O tipo de entrada do usuário Readonly é usado para fornecer um campo somente leitura para exibir a declaração e o valor.
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Parágrafo
O tipo de entrada do usuário Paragraph é usado para fornecer um campo que mostra texto apenas em uma marca de parágrafo. Por exemplo, <p>texto</p>. Um tipo de entrada de usuário ParagraphOutputClaim do perfil técnico autodeclarado deve definir o Requiredatributofalse (padrão). Esse tipo de entrada do usuário só tem suporte em layouts de página autodeclarados. As páginas de entrada e inscrição unificadas (unifiedssp) podem não exibir isso corretamente.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<AdminHelpText>A claim responsible for holding response messages to send to the relying party</AdminHelpText>
<UserHelpText>A claim responsible for holding response messages to send to the relying party</UserHelpText>
<UserInputType>Paragraph</UserInputType>
</ClaimType>