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_nameapelido 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:

Afirmação de número de telefone apresentada no browser com os primeiros seis dígitos mascarados por Xs

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="(?&lt;=.).(?=.*@)">*</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:

Email afirmação apresentada no browser com carateres mascarados por asteriscos

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, Prependou 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, DropdownSingleSelectou 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:

Controlo de lista pendente composto no browser e a mostrar o valor predefinido

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.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[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:

Caixa de Texto a mostrar a mensagem de erro acionada pela restrição regex

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.

Caixa de Texto a mostrar as propriedades especificadas no tipo de afirmação

<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.

Caixa de Correio Eletrónico a mostrar as propriedades especificadas no tipo de afirmação

<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.+!#$%&amp;'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&amp;'+^_`{}~-]+)*@(?:[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.

Utilizar o tipo de afirmação com palavra-passe

<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.

Utilizar o tipo de afirmação com datetimedropdown

<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.

Utilizar o tipo de afirmação com radiodsingleselect

<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>

O tipo de entrada de utilizador DropdownSingleSelect é utilizado para fornecer uma caixa pendente que permite ao utilizador selecionar uma opção.

Utilizar o tipo de afirmação com dropdownsingleselect

<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.

Utilizar o tipo de afirmação com checkboxmultiselect

<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.

Utilizar o tipo de afirmação com só de leitura

<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).

Utilizar o tipo de afirmação com parágrafo

<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>