ClaimsSchema
Nota
No Azure Active Directory B2C, as políticas personalizadas são concebidas principalmente para abordar cenários complexos. Para a maioria dos cenários, recomendamos que utilize fluxos de utilizador incorporados. Se ainda não o fez, saiba mais sobre o pacote de introdução de políticas personalizadas em Introdução às políticas personalizadas no Active 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 afirmação pode ser nome próprio, apelido, nome a apresentar, 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 afirmaçã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 Afirmação
O elemento ClaimType contém o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
Id | Yes | Um identificador utilizado para o tipo de afirmação. Outros elementos podem utilizar este identificador na política. |
O elemento ClaimType contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
DisplayName | 1:1 | O título que é apresentado aos utilizadores em vários ecrãs. O valor pode ser localizado. |
DataType | 1:1 | O tipo da afirmação. |
DefaultPartnerClaimTypes | 0:1 | Os tipos de afirmação predefinidos do parceiro a utilizar para um protocolo especificado. O valor pode ser substituído no PartnerClaimType especificado nos elementos InputClaim ou OutputClaim . Utilize este elemento para especificar o nome predefinido de um protocolo. |
Máscara | 0:1 | Uma cadeia opcional de carateres de máscara que pode ser aplicada ao apresentar a afirmaçã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 afirmação que pode ser útil para os utilizadores compreenderem o seu objetivo. O valor pode ser localizado. |
UserInputType | 0:1 | O tipo de controlo de entrada que deve estar disponível para o utilizador ao introduzir manualmente os dados de afirmação para o tipo de afirmação. Veja os tipos de entrada de utilizador definidos mais adiante nesta página. |
AdminHelpText | 0:1 | Uma descrição do tipo de afirmação que pode ser útil para os administradores compreenderem o seu objetivo. |
Restrição | 0:1 | As restrições de valor para esta afirmaçã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-lhe executar um processo de validação para garantir que apenas são introduzidos dados devidamente formados. Para obter mais informações, veja Predicados. |
DataType
O elemento DataType suporta os seguintes valores:
Tipo | Description |
---|---|
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 runtime e é convertido em tempo de época UNIX quando emitido como uma afirmaçã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. |
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 a 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 utilizador. |
userIdentityCollection | Representa uma coleção de userIdentity . |
DefaultPartnerClaimTypes
Os DefaultPartnerClaimTypes podem conter o seguinte elemento:
Elemento | Ocorrências | Description |
---|---|---|
Protocolo | 1:n | Lista de protocolos com o nome do tipo de afirmação de parceiro predefinido. |
O elemento Protocolo contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Nome | Yes | O nome de um protocolo válido suportado pelo Azure AD B2C. Os valores possíveis são: OAuth1, OAuth2, SAML2, OpenIdConnect. |
PartnerClaimType | Yes | O nome do tipo de afirmação a utilizar. |
No exemplo seguinte, quando o Identity Experience Framework interage com um fornecedor de identidade SAML2 ou uma aplicação de entidade confiadora, a afirmação de sobrenome é mapeada para http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
, com OpenIdConnect e OAuth2, a afirmaçã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
apelido de nome ClaimType em vez de ClaimType.
{
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Máscara
O elemento Máscara contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Type |
Sim | O tipo de máscara de afirmação. Valores possíveis: Simple ou Regex . O Simple valor indica que é aplicada uma máscara de texto simples à parte principal de uma afirmação de cadeia. O Regex valor indica que uma expressão regular é aplicada à afirmação de cadeia como um todo. Se o Regex valor for especificado, um atributo opcional também tem de ser definido com a expressão regular a utilizar. |
Regex |
No | Se Type estiver definido como Regex , especifique a expressão regular a utilizar. |
O exemplo seguinte configura uma afirmação PhoneNumber com a Simple
máscara. Para obter mais exemplos, consulte a demonstração em direto Afirmaçã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 compõe o número de telefone ao ocultar os primeiros seis dígitos:
O exemplo seguinte configura uma afirmação AlternateEmail com a Regex
máscara. Para obter mais exemplos, veja a demonstração dinâmica 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 compõe apenas a primeira letra do endereço de e-mail e o nome de domínio de e-mail:
Restrição
O elemento Restrição pode conter o seguinte atributo:
Atributo | Necessário | Descrição |
---|---|---|
MergeBehavior | No | O método utilizado para unir valores de enumeração com um ClaimType numa política principal com o mesmo identificador. Utilize este atributo quando substituir uma afirmaçã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 principal. O Prepend valor é uma coleção de dados que deve ser adicionada antes da coleção especificada na política principal. O ReplaceAll valor é uma coleção de dados especificada na política principal que deve ser ignorada. |
O elemento Restrição contém os seguintes elementos:
Elemento | Ocorrências | Description |
---|---|---|
Enumeração | 1:n | As opções disponíveis na interface de utilizador para o utilizador selecionar para uma afirmação, como um valor numa lista pendente. |
Padrão | 1:1 | A expressão normal a utilizar. |
Enumeração
O elemento Enumeração define as opções disponíveis para o utilizador selecionar para uma afirmação na interface de utilizador, como um valor num CheckboxMultiSelect
, DropdownSingleSelect
ou RadioSingleSelect
. Em alternativa, pode definir e localizar as opções disponíveis com o elemento LocalizedCollections . Para procurar um item a partir de uma coleção de enumeração de afirmações, utilize a transformação de afirmações GetMappedValueFromLocalizedCollection .
O elemento Enumeração contém os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
Texto | Yes | A cadeia de apresentação apresentada ao utilizador na interface de utilizador para esta opção. |
Valor | Yes | O valor da afirmação associado à seleção desta opção. |
SelectByDefault | No | Indica se esta opção deve ou não ser selecionada por predefinição na IU. Valores possíveis: Verdadeiro ou Falso. |
O exemplo seguinte configura uma afirmação de lista pendente de cidade com um valor predefinido definido como New York
. Para obter mais exemplos, consulte a demonstração em direto da enumeração da restrição de afirmações.
<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 pendente da cidade com um valor predefinido definido como Nova Iorque:
Padrão
O elemento Padrão pode conter os seguintes atributos:
Atributo | Necessário | Descrição |
---|---|---|
RegularExpression | Yes | A expressão regular que afirma deste tipo tem de corresponder para ser válida. |
HelpText | No | Uma mensagem de erro para os utilizadores se a verificação de expressão regular falhar. |
O exemplo seguinte configura uma afirmação de e-mail 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 compõe a afirmação de endereço de e-mail com validação de entrada de formato de e-mail:
UserInputType
Azure AD B2C suporta uma variedade de tipos de entrada de utilizador, como uma caixa de texto, uma palavra-passe e uma lista pendente que podem ser utilizados ao introduzir manualmente dados de afirmação para o tipo de afirmação. Tem de especificar o UserInputType quando recolhe informações do utilizador através de um perfil técnico auto-afirmado e controlos de apresentação.
Veja a Demonstração em direto do tipo de entrada do utilizador.
Os tipos de entrada de utilizador do elemento UserInputType disponíveis:
UserInputType | Tipo de Afirmação Suportado | Description |
---|---|---|
Caixa de verificaçãoMultiSelect | string |
Caixa pendente Seleção múltipla. O valor da afirmação é representado numa cadeia delimitador de vírgulas dos valores selecionados. |
DateTimeDropdown | date , dateTime |
Listas pendentes para selecionar um dia, mês e ano. |
DropdownSingleSelect | string |
Caixa pendente de seleção única. O valor da afirmação é o valor selecionado. |
Caixa de E-mail | string |
Email campo de entrada. |
Parágrafo | boolean , date , dateTime , duration , int , long , string |
Um campo que mostra texto apenas numa etiqueta de parágrafo. |
Palavra-passe | string |
Caixa de texto palavra-passe. |
RadioSingleSelect | string |
Coleção de botões de opção. O valor da afirmação é o valor selecionado. |
Só de leitura | boolean , date , dateTime , duration , int , long , string |
Caixa de texto só de leitura. |
TextBox | boolean , int , phoneNumber , string |
Caixa de texto de linha única. |
TextBox
O tipo de entrada de utilizador da Caixa de Texto é utilizado 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 utilizador da Caixa de E-mail é utilizado 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 utilizador Palavra-passe é utilizado para registar uma palavra-passe introduzida pelo utilizador.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
O tipo de entrada de utilizador DateTimeDropdown é utilizado para fornecer um conjunto de listas pendentes para selecionar um dia, mês e ano. Pode utilizar elementos Predicados e PredicateValidations para controlar os valores de data mínimo e máximo. Para obter mais informações, veja a secção Configurar um intervalo de datas de Predicados e PredicateValidaçõ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 utilizador RadioSingleSelect é utilizado para fornecer uma coleção de botões de opção que permitem ao utilizador 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 utilizador DropdownSingleSelect é utilizado para fornecer uma caixa pendente que permite ao utilizador 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 verificaçãoMultiSelect
O tipo de entrada de utilizador CheckboxMultiSelect é utilizado para fornecer uma coleção de caixas de verificação que permitem ao utilizador 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 só de leitura do utilizador é utilizado para fornecer um campo só de leitura para apresentar a afirmaçã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 utilizador Parágrafo é utilizado para fornecer um campo que mostra texto apenas numa etiqueta de parágrafo. Por exemplo, <p>text</p>. Um tipo OutputClaim
de entrada de utilizador parágrafo de perfil técnico auto-afirmado tem de definir o Required
atributo false
(predefinição).
<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>