ClaimsSchema
Nota:
En Azure Active Directory B2C, las directivas personalizadas se han diseñado principalmente para abordar escenarios complejos. Para la mayoría de los escenarios, se recomienda usar flujos de usuario integrados. Si no lo ha hecho, obtenga información sobre el paquete de inicio de directivas personalizadas en Introducción a las directivas personalizadas en Active Directory B2C.
El elemento ClaimsSchema define los tipos de notificación a los que se puede hacer referencia como parte de la directiva. El esquema de notificaciones es el lugar en el que se declaran las notificaciones. Una notificación puede ser el nombre, apellido, nombre para mostrar, número de teléfono y mucho más. El elemento ClaimsSchema contiene la lista de elementos ClaimType. El elemento ClaimType contiene el atributo Id, que es el nombre de la notificación.
<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
El elemento ClaimType contiene el siguiente atributo:
Atributo | Obligatorio | Descripción |
---|---|---|
Identificador | Sí | Un identificador que se usa para el tipo de notificación. Hay otros elementos que pueden usar este identificador en la directiva. |
El elemento ClaimType contiene los elementos siguientes:
Elemento | Repeticiones | Descripción |
---|---|---|
DisplayName | 1:1 | El título que se muestra a los usuarios en varias pantallas. El valor se puede localizar. |
DataType | 1:1 | Tipo de la notificación. |
DefaultPartnerClaimTypes | 0:1 | Los tipos de notificación predeterminada del partner que se van a usar para un protocolo especificado. El valor del elemento PartnerClaimType especificado se puede sobrescribir en los elementos InputClaim o OutputClaim. Use este elemento para especificar el nombre predeterminado de un protocolo. |
Máscara | 0:1 | Cadena opcional de caracteres de enmascaramiento que se pueden aplicar al mostrar la notificación. Por ejemplo, el número de teléfono 324-232-4343 se puede enmascarar como XXX-XXX-4343. |
UserHelpText | 0:1 | Una descripción del tipo de notificación que puede ser útil para que los usuarios comprendan su propósito. El valor se puede localizar. |
UserInputType | 0:1 | El tipo de control de entrada que el usuario debe tener disponible al especificar manualmente los datos de notificación para el tipo de notificación. Vea los tipos de entrada de usuario que se definen más adelante en esta página. |
AdminHelpText | 0:1 | Una descripción del tipo de notificación que puede ser útil para que los administradores comprendan su propósito. |
Restricción | 0:1 | Las restricciones de valor de esta notificación, como una expresión regular (Regex) o una lista de valores aceptables. El valor se puede localizar. |
PredicateValidationReference | 0:1 | Una referencia a un elemento PredicateValidationsInput. Los elementos PredicateValidationReference le permiten realizar un proceso de validación para asegurarse de que solo se introducen datos bien formados. Para obtener más información, vea Predicados. |
DataType
El elemento DataType admite los siguientes valores:
Tipo | Description |
---|---|
boolean | Representa un valor booleano (true o false ). |
date | Representa un instante de tiempo, normalmente expresado en forma de fecha de un día. El valor de la fecha sigue la convención ISO 8601. |
dateTime | Representa un instante de tiempo, normalmente expresado en forma de fecha y hora del día. El valor de la fecha sigue la convención ISO 8601 durante el tiempo de ejecución y se convierte en tiempo epoch UNIX cuando se emite como una notificación en el token. |
duration | Representa un intervalo de tiempo en años, meses, días, horas, minutos y segundos. El formato es PnYnMnDTnHnMnS , donde P indica positivo o N un valor negativo. nY es el número de años seguido de un literal Y . nMo es el número de meses seguido de un literal Mo . nD es el número de días seguido de un literal D . Ejemplos: P21Y representa 21 años. P1Y2Mo representa un año y dos meses. P1Y2Mo5D representa un año, dos meses y cinco días. P1Y2M5DT8H5M20S representa un año, dos meses, cinco días, ocho horas, cinco minutos y veinte segundos. |
phoneNumber | Representa un número de teléfono. |
int | Representa un número entre -2.147.483.648 y 2.147.483.647. |
long | Representa un número entre-9.223.372.036.854.775.808 y 9.223.372.036.854.775.807 |
string | Representa texto como una secuencia de unidades de código UTF-16. |
stringCollection | Representa una colección de string . |
userIdentity | Representa una identidad de usuario. |
userIdentityCollection | Representa una colección de userIdentity . |
DefaultPartnerClaimTypes
DefaultPartnerClaimTypes puede contener el siguiente elemento:
Elemento | Repeticiones | Descripción |
---|---|---|
Protocolo | 1:n | Lista de protocolos con su nombre de tipo de notificación de partner predeterminado. |
El elemento Protocol contiene los atributos siguientes:
Atributo | Obligatorio | Descripción |
---|---|---|
Nombre | Sí | El nombre de un protocolo válido compatible con Azure AD B2C. Los valores posibles son: OAuth1, OAuth2, SAML2 y OpenIdConnect. |
PartnerClaimType | Sí | El nombre del tipo de notificación que se usará. |
En el ejemplo siguiente, cuando el marco de experiencia de identidad interactúa con un proveedor de identidades de SAML2 o una aplicación de usuario de confianza, la notificación surname se asigna a http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
; con OpenIdConnect y OAuth2, la notificación se asigna a 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, el token JWT emitido por Azure AD B2C emite family_name
en lugar del nombre surname de ClaimType.
{
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
Máscara
El elemento Mask contiene los siguientes atributos:
Atributo | Obligatorio | Descripción |
---|---|---|
Type |
Sí | Tipo de enmascaramiento de la notificación. Valores posibles: Simple o Regex . El valor Simple indica que se aplica un solo enmascaramiento del texto en la parte inicial de una notificación de la cadena. El valor Regex indica que una expresión regular se aplica a una notificación de la cadena en conjunto. Si se especifica el valor Regex , también debe definirse un atributo opcional con la expresión regular que se va a usar. |
Regex |
No | Si Type se establece en Regex , especifique la expresión regular que se va a usar. |
El ejemplo siguiente configura una notificación de PhoneNumber con la máscara Simple
. Para obtener más muestras, consulte la Demo en directo de la máscara de notificación simple.
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
El marco de experiencia de identidad representa el número de teléfono con los seis primeros dígitos ocultos:
El ejemplo siguiente configura una notificación AlternateEmail con la máscara Regex
. Para obtener más muestras, consulte la Demo en directo de la máscara de expresiones regulares.
<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>
El marco de experiencia de identidad representa solo la primera letra de la dirección de correo electrónico y el nombre de dominio del correo electrónico:
Restricción
El elemento Restriction puede contener el atributo siguiente:
Atributo | Obligatorio | Descripción |
---|---|---|
MergeBehavior | No | El método usado para combinar los valores de enumeración con un ClaimType en una directiva principal con el mismo identificador. Use este atributo para sobrescribir una notificación especificada en la directiva base. Valores posibles: Append , Prepend o ReplaceAll . El valor Append es una colección de datos que se deben anexar al final de la colección especificada en la directiva principal. El valor Prepend es una colección de datos que se deben agregar antes de la colección especificada en la directiva principal. El valor ReplaceAll es una colección de datos especificada en la directiva principal que se debe omitir. |
El elemento Restriction contiene los elementos siguientes:
Elemento | Repeticiones | Descripción |
---|---|---|
Enumeración | 1:n | Las opciones disponibles en la interfaz de usuario para que el usuario seleccione una notificación, como un valor en un menú desplegable. |
Patrón | 1:1 | Expresión regular que se va a usar. |
Enumeración
El elemento Enumeration define opciones disponibles para que el usuario seleccione una notificación en la interfaz de usuario, como un valor en CheckboxMultiSelect
, DropdownSingleSelect
o RadioSingleSelect
. Como alternativa, puede definir y localizar las opciones disponibles con el elemento LocalizedCollections. Para buscar un elemento en una colección Enumeration de notificaciones, use la transformación de notificaciones GetMappedValueFromLocalizedCollection.
El elemento Enumeration contiene los siguientes atributos:
Atributo | Obligatorio | Descripción |
---|---|---|
Texto | Sí | La cadena de presentación que se muestra al usuario en la interfaz de usuario para esta opción. |
Value | Sí | El valor de notificación que está asociado a la selección de esta opción. |
SelectByDefault | No | Indica si esta opción se puede seleccionar o no de forma predeterminada en la interfaz de usuario. Valores posibles: True o False. |
En el ejemplo siguiente se configura una notificación de lista desplegable Ciudad con un valor predeterminado establecido en New York
. Para obtener más muestras, consulte la Demo en directo de enumeración de restricciones de notificación.
<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 desplegable Ciudad con un valor predeterminado establecido en Nueva York:
Patrón
El elemento Pattern puede contener los siguientes atributos:
Atributo | Obligatorio | Descripción |
---|---|---|
RegularExpression | Sí | La expresión regular con la que deben coincidir las notificaciones de este tipo para que sean válidas. |
HelpText | No | Un mensaje de error para los usuarios si se produce un error en la comprobación de la expresión regular. |
En el ejemplo siguiente se configura una notificación de correo electrónico con el texto de ayuda y la validación de entrada de la expresión 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>
El marco de experiencia de identidad presenta la notificación de dirección de correo electrónico con la validación de entrada de formato de correo electrónico:
UserInputType
Azure AD B2C admite una serie de tipos de entrada de usuario, como una lista de cuadro de texto, contraseña y menú desplegable que puede usarse al escribir manualmente los datos de notificación para el tipo de notificación. Debe especificar UserInputType al recopilar información del usuario mediante un perfil técnico autoafirmado y controles de visualización.
Consulte la demostración en directo del tipo de entrada del usuario.
Los tipos de entrada de usuario disponibles del elemento UserInputType:
UserInputType | Compatible con ClaimType | Descripción |
---|---|---|
CheckboxMultiSelect | string |
Cuadro desplegable de selección múltiple. El valor de la notificación se representa en una cadena con delimitador de coma de los valores seleccionados. |
DateTimeDropdown | date , dateTime |
Se despliega para seleccionar un día, un mes y un año. |
DropdownSingleSelect | string |
Cuadro desplegable de selección única. El valor de la notificación es el valor seleccionado. |
EmailBox | string |
Campo de entrada de correo electrónico. |
Paragraph | boolean , date , dateTime , duration , int , , long string |
Campo que muestra solo texto en una etiqueta de párrafo. |
Contraseña | string |
Cuadro de texto de contraseña. |
RadioSingleSelect | string |
Colección de botones de radio. El valor de la notificación es el valor seleccionado. |
Readonly | boolean , date , dateTime , duration , int , , long string |
Cuadro de texto de solo lectura. |
TextBox | boolean , int , , phoneNumber , string |
Cuadro de texto de una sola línea. |
TextBox
El tipo de entrada de usuario TextBox se usa para proporcionar un cuadro de texto de una sola línea.
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
EmailBox
El tipo de entrada de usuario EmailBox se usa para proporcionar un campo de entrada de correo electrónico 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>
Contraseña
El tipo de entrada de usuario Password se usa para registrar una contraseña escrita por el usuario.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
El tipo de entrada de usuario DateTimeDropdown se usa para proporcionar un conjunto de listas desplegables para seleccionar un día, un mes y un año. Puede usar los elementos Predicates y PredicateValidations para controlar los valores de fecha mínimo y máximo. Para obtener más información, vea la sección Configure a date range (Configurar un intervalo de fechas) de Predicates and PredicateValidations (Predicados y validaciones de predicados).
<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
El tipo de entrada de usuario RadioSingleSelect se usa para proporcionar una serie de botones de opción que permiten al usuario seleccionar una opción.
<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
El tipo de entrada de usuario DropdownSingleSelect se usa para proporcionar un cuadro desplegable que permite al usuario seleccionar una opción.
<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
El tipo de entrada de usuario CheckboxMultiSelect se usa para proporcionar una serie de casillas de selección que permiten al usuario seleccionar varias opciones.
<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
El tipo de entrada de usuario Readonly se usa para proporcionar un campo de solo lectura para mostrar la notificación y el valor.
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
Paragraph
El tipo de entrada de usuario Paragraph se usa para proporcionar un campo que muestra solo texto en una etiqueta de párrafo. Por ejemplo, <p>texto</p>. Tipo de entrada de usuario párrafoOutputClaim
de un perfil técnico autoafirmado, se debe establecer el atributo Required
false
(valor predeterminado). Este tipo de entrada de usuario solo se admite en diseños de página autoafirmados. Es posible que las páginas de inicio de sesión y registro unificados (unifiedssp) no se muestren correctamente.
<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>