ClaimsSchema
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>
ClaimType
O elemento ClaimType contém o seguinte atributo:
Atributo | Obrigató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 |
---|---|---|
DisplayName | 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. |
Mask | 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 ). |
date | Representa um momento no tempo, geralmente expresso como uma data e hora do dia. O valor da data segue a convenção ISO 8601. |
dateTime | 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. |
duration | 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. |
phoneNumber | Representa um número de telefone. |
INT | Representa o número entre -2.147.483.648 e 2.147.483.647 |
long | Representa o número entre -9.223.372.036.854.775.808 e 9.223.372.036.854.775.807 |
string | Representa o texto como uma sequência de unidades de código UTF-16. |
stringCollection | Representa uma coleção de string . |
userIdentity | 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 | Obrigató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. |
PartnerClaimType | 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 token JWT emitido pelo B2C do Azure AD emite family_name
ao invés do nome de ClaimType surname.
{
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Mask
O elemento Mask contém os seguintes atributos:
Atributo | Obrigató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 | Obrigatório | Descrição |
---|---|---|
MergeBehavior | 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 | Obrigató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. |
SelectByDefault | 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 | Obrigatório | Descrição |
---|---|---|
RegularExpression | Sim | A expressão regular a que declarações desse tipo devem corresponder para que sejam válidas. |
HelpText | 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 |
---|---|---|
CheckboxMultiSelect | 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. |
EmailBox | string |
Campo de entrada de email. |
Paragraph | 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. |
RadioSingleSelect | string |
Coleção de botões de opção. O valor da declaração é o valor selecionado. |
Readonly | boolean , date , dateTime , duration , int , long , , string |
Caixa de texto somente leitura. |
TextBox | boolean , int , phoneNumber , string |
Caixa de texto com linha única. |
TextBox
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>
EmailBox
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>
RadioSingleSelect
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>
CheckboxMultiSelect
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>
Readonly
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>
Paragraph
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 Required
atributofalse
(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>