ClaimsSchema
Nota
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 que você use fluxos de usuário internos. 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.
O elemento ClaimsSchema define os tipos de afirmações que podem ser referenciados como parte da política. O esquema de afirmações é o lugar onde declaras as afirmações. Uma reivindicação pode ser nome, sobrenome, nome para 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 reivindicação
O elemento ClaimType contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
ID | Sim | Um identificador 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 | Description |
---|---|---|
DisplayName | 1:1 | O título que é exibido para os usuários em várias telas. O valor pode ser localizado. |
DataType | 1:1 | O tipo de crédito. |
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 este elemento para especificar o nome padrão para um protocolo. |
Máscara | 0:1 | Uma cadeia de caracteres opcional de mascaramento que pode ser aplicada 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 de declaração para o tipo de declaração. Consulte os tipos de entrada do usuário definidos posteriormente 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, consulte Predicados. |
DataType
O elemento DataType suporta os seguintes valores:
Tipo | Descrição |
---|---|
boolean | Representa um valor booleano (true ou false ). |
data | Representa um instante no tempo, normalmente expresso como uma data de um dia. O valor da data segue a convenção ISO 8601. |
dateTime | Representa um instante no tempo, normalmente expresso como uma data e hora do dia. O valor da data segue a convenção ISO 8601 durante o tempo de execução e é convertido para o tempo de época do UNIX quando 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 , onde P indica positivo, ou N para valor negativo. nY é o número de anos seguido de um literal Y . nMo é o número de meses seguido de um literal Mo . nD é o número de dias seguido de um literal D . 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. |
número inteiro | Representa número entre -2.147.483.648 e 2.147.483.647 |
long | Representa número entre -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 |
string | Representa 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 | Description |
---|---|---|
Protocolo | 1:n | Lista de protocolos com o nome do tipo de declaração de parceiro padrão. |
O elemento Protocol contém os seguintes atributos:
Atributo | Necessário | Description |
---|---|---|
Name | Sim | O nome de um protocolo válido suportado pelo 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 aplicativo de terceira parte confiável, a declaração de sobrenome é 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 Azure AD B2C emite o family_name
sobrenome do nome em vez de 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 Simple valor indica que uma máscara de texto simples é aplicada à parte principal de uma declaração de cadeia de caracteres. O Regex valor indica que uma expressão regular é aplicada à declaração de cadeia de caracteres como um todo. Se o Regex valor for especificado, um atributo opcional também deverá ser definido com a expressão regular a ser usada. |
Regex |
Não | Se Type estiver definido como Regex , especifique a expressão regular a ser usada. |
O exemplo a seguir configura uma declaração PhoneNumber com a Simple
máscara. Para obter mais exemplos, confira a demonstração ao vivo da máscara simples Claim.
<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 Regex
máscara. Para 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 processa apenas a primeira letra do endereço de e-mail e o nome de domínio de e-mail:
Restrição
O elemento Restriction pode conter o seguinte atributo:
Atributo | Necessário | Description |
---|---|---|
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 ao substituir uma declaração especificada na política base. Valores possíveis: Append , Prepend , ou ReplaceAll . O Append valor é uma coleção de dados que deve ser anexada ao final da coleção especificada na política pai. O Prepend valor é uma coleção de dados que deve ser adicionada antes da coleção especificada na política pai. O ReplaceAll valor é uma coleção de dados especificados na política pai que devem ser ignorados. |
O elemento Restriction contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
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 Enumeration define opções disponíveis para o usuário selecionar para uma declaração na interface do usuário, como um valor em , CheckboxMultiSelect
DropdownSingleSelect
ou RadioSingleSelect
. Como alternativa, você pode definir e localizar opções disponíveis com o elemento LocalizedCollections . Para procurar um item de uma coleção Enumeration de declaração, use a transformação de declarações GetMappedValueFromLocalizedCollection.
O elemento Enumeration contém os seguintes atributos:
Atributo | Necessário | Description |
---|---|---|
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 associado à seleção dessa opção. |
SelectByDefault | Não | Indica se essa opção deve ou não ser selecionada por padrão na interface do usuário. Valores possíveis: True ou False. |
O exemplo a seguir configura uma declaração de lista suspensa de cidade com um valor padrão definido como New York
. Para obter mais exemplos, confira a demonstração ao vivo da 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 | Description |
---|---|---|
RegularExpression | Sim | A expressão regular que as declarações desse tipo devem corresponder para serem 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 de email com validação de entrada de expressão regular e texto de ajuda:
<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 processa a declaração de endereço de e-mail com validação de entrada de formato de e-mail:
UserInputType
O Azure AD B2C dá suporte a uma variedade de tipos de entrada do usuário, como uma caixa de texto, senha e lista suspensa que podem ser usadas ao inserir manualmente dados de declaração para o tipo de declaração. Você deve especificar o UserInputType quando coletar informações do usuário usando um perfil técnico autodeclarado e controles de exibição.
Confira a demonstração ao vivo do tipo de entrada do usuário.
O elemento UserInputType tipos de entrada de usuário disponíveis:
UserInputType | ClaimType suportado | Description |
---|---|---|
Caixa de seleçãoMultiSelect | string |
Caixa suspensa de seleção múltipla. O valor da declaração é representado em uma cadeia de delimitador de vírgulas dos valores selecionados. |
DateTimeDropdown | date , dateTime |
Menus suspensos para selecionar um dia, mês e ano. |
DropdownSingleSelect | string |
Caixa suspensa de seleção única. O valor da declaração é o valor selecionado. |
Caixa de e-mail | string |
Campo de entrada de e-mail. |
Parágrafo | boolean , date , dateTime , duration , int , long , string |
Um campo que mostra texto apenas em uma marca de parágrafo. |
Palavra-passe | string |
Caixa de texto Palavra-passe. |
RadioSingleSelect | string |
Coleção de botões de opção. O valor da declaração é o valor selecionado. |
Só de leitura | boolean , date , dateTime , duration , int , long , string |
Caixa de texto somente leitura. |
TextBox | boolean , int , phoneNumber , string |
Caixa de texto de linha única. |
TextBox
O tipo de entrada de 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 de usuário EmailBox é usado para fornecer um campo de entrada de e-mail 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>
Palavra-passe
O tipo de entrada de usuário Senha é 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 de usuário DateTimeDropdown é usado para fornecer um conjunto de menus suspensos para selecionar um dia, mês e ano. Você pode usar os elementos Predicados e PredicateValidations para controlar os valores de data mínima e máxima. Para obter mais informações, consulte a seção Configurar um intervalo de datas de Predicados e PredicadosValidações.
<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 de usuário RadioSingleSelect é usado para fornecer uma coleção de botões de opção que permite 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 de 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 de usuário CheckboxMultiSelect é usado para fornecer uma coleção de caixas de seleção que permite 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>
Só de leitura
O tipo de entrada de usuário Somente leitura é 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 de usuário Parágrafo é usado para fornecer um campo que mostra texto somente em uma marca de parágrafo. Por exemplo, <p>text</p>. Um tipo OutputClaim
de entrada de usuário Parágrafo de perfil técnico autodeclarado deve definir o Required
atributo false
(padrão). Esse tipo de entrada do usuário só é suportado em layouts de página autodeclarados. As páginas unificadas de entrada e inscrição (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>