Transformaciones de notificaciones de cadena
En este artículo se proporcionan ejemplos para usar las transformaciones de notificaciones de cadena del esquema de Identity Experience Framework en Azure Active Directory B2C (Azure AD B2C). Para más información, consulte Transformaciones de notificaciones.
AssertStringClaimsAreEqual
Compara dos notificaciones y emitir una excepción si no son iguales según la comparación especificada inputClaim1, inputClaim2 y stringComparison.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim1 | string | Tipo de la primera notificación, que se va a comparar. |
InputClaim | inputClaim2 | string | Tipo de la segunda notificación, que se va a comparar. |
InputParameter | stringComparison | string | comparación de cadenas, uno de los valores: Ordinal, OrdinalIgnoreCase. |
La transformación de notificaciones AssertStringClaimsAreEqual siempre se ejecuta desde un perfil técnico de validación llamado por un perfil técnico autoafirmado o un elemento DisplayControl. Los metadatos UserMessageIfClaimsTransformationStringsAreNotEqual
de un perfil técnico autoafirmado controlan el mensaje de error que se presenta al usuario. Los mensajes de error se pueden localizar.
Ejemplo de AssertStringClaimsAreEqual
Puede usar esta transformación de notificaciones para asegurarse de que dos notificaciones tienen el mismo valor. Si no es así, se emite un mensaje de error. En el ejemplo siguiente se comprueba que la notificación strongAuthenticationEmailAddress se igual que la notificación email. De lo contrario, se emite un mensaje de error.
<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
</InputParameters>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Parámetros de entrada:
- stringComparison: ordinalIgnoreCase
- Resultado: aparece un error
Llamada a la transformación de notificaciones AssertStringClaimsAreEqual
El perfil técnico de validación login-NonInteractive llama a la transformación de notificaciones AssertEmailAndStrongAuthenticationEmailAddressAreEqual.
<TechnicalProfile Id="login-NonInteractive">
...
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
</OutputClaimsTransformations>
</TechnicalProfile>
El perfil técnico autoafirmado llama al perfil técnico login-NonInteractive de validación.
<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
<Metadata>
<Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
</Metadata>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
BuildUri
Crea una hora basada en el URI de contraseña de hora (TOTP). El URI es una combinación del identificador único del usuario, como la dirección de correo electrónico y una clave secreta. El URI se convierte posteriormente en un código QR que se presenta al usuario. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | path | string | Identificador único del usuario, como la dirección de correo electrónico, el nombre de usuario o el número de teléfono. |
InputClaim | query.secret | string | Clave secreta TOTP. |
InputParameter | scheme | string | Parte del esquema del URI. Por ejemplo, otpauth . |
InputParameter | host | string | Parte del esquema del URI. Por ejemplo, totp . |
InputParameter | query.issuer | string | Parte del emisor del URI. Por ejemplo, {AuthenticatorIssuer} . |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Ejemplo de BuildUri
La siguiente transformación de notificaciones genera un URI de TOTP que se mostrará en el código QR o el vínculo profundo.
<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
<InputClaims>
<InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
<InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
</InputClaims>
<InputParameters>
<InputParameter Id="scheme" DataType="string" Value="otpauth" />
<InputParameter Id="host" DataType="string" Value="totp" />
<InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- ruta de acceso: emily@fabrikam.com
- query.secret:
fay2lj7ynpntjgqa
- Parámetros de entrada:
- esquema:
otpauth
- host:
totp
- query.issuer:
{AuthenticatorIssuer}
- esquema:
- Notificaciones de salida:
- outputClaim:
otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo
- outputClaim:
ChangeCase
Cambia el uso de mayúsculas y minúsculas en la notificación proporcionada, dependiendo del operador. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim1 | string | Notificación que se va a cambiar. |
InputParameter | toCase | string | Puede ser uno de los siguientes valores: LOWER o UPPER . |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Ejemplo de ChangeCase
La siguiente transformación de notificación cambia la notificación de correo electrónico a minúsculas.
<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- email: SomeOne@contoso.com
- Parámetros de entrada:
- toCase: LOWER
- Notificaciones de salida:
- email: someone@contoso.com
CompareClaims
Determine si una notificación de cadena es igual a otra. El resultado es una nueva notificación booleana con un valor de true
o false
. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim1 | string | Tipo de la primera notificación, que se va a comparar. |
InputClaim | inputClaim2 | string | Tipo de la segunda notificación, que se va a comparar. |
InputParameter | operator | string | Valores posibles: EQUAL o NOT EQUAL . |
InputParameter | ignoreCase | string | Especifica si la comparación distingue entre mayúsculas y minúsculas en las cadenas que se están comparando. |
OutputClaim | outputClaim | boolean | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Ejemplo de CompareClaims
Use esta transformación de notificaciones para comprobar si una notificación es igual a otra notificación. La siguiente transformación de notificaciones comprueba si el valor de la notificación email es igual al de la notificación Verified.Email.
<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim1: someone@contoso.com
- inputClaim2: someone@outlook.com
- Parámetros de entrada:
- operator: NOT EQUAL
- ignoreCase: true
- Notificaciones de salida:
- outputClaim: true
CompareClaimToValue
Determina si un valor de notificación es igual al valor del parámetro de entrada. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim1 | string | Tipo de la notificación, que se va a comparar. |
InputParameter | operator | string | Valores posibles: EQUAL o NOT EQUAL . |
InputParameter | compareTo | string | Comparación de cadenas, uno de los valores, es decir, la cadena a la que se deben comparar los valores de la notificación de entrada con: Ordinal, OrdinalIgnoreCase. |
InputParameter | ignoreCase | string | Especifica si la comparación distingue entre mayúsculas y minúsculas en las cadenas que se están comparando. |
OutputClaim | outputClaim | boolean | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Ejemplo de CompareClaimToValue
Use esta transformación de notificaciones para comprobar si una notificación es igual a un valor que haya especificado. Por ejemplo, la siguiente transformación de notificaciones comprueba si el valor de la notificación termsOfUseConsentVersion es igual a V2
.
<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
</InputClaims>
<InputParameters>
<InputParameter Id="compareTo" DataType="string" Value="V2" />
<InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim1: v1
- Parámetros de entrada:
- compareTo: V2
- operator: NOT EQUAL
- ignoreCase: true
- Notificaciones de salida:
- outputClaim: true
CopyClaimIfPredicateMatch
Copia el valor de una notificación en otra si el valor de la notificación de entrada coincide con el predicado de la notificación de salida. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de la notificación que se va a copiar. |
OutputClaim | outputClaim | string | El tipo de notificación que se genera después de que se haya invocado esta transformación de notificaciones. El valor de la notificación de entrada se comprueba con este predicado de notificación. |
Ejemplo de CopyClaimIfPredicateMatch
En el ejemplo siguiente se intenta copiar el valor de la notificación signInName en la notificación phoneNumber. En este ejemplo, el valor no se copiará. La notificación signInName no tiene el formato esperado: número de teléfono. Para ver el ejemplo completo, consulte la directiva del módulo Inicio de sesión con número de teléfono o correo electrónico.
<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: bob@contoso.com
- Notificaciones de salida:
- outputClaim: la notificación de salida no se cambiará de su valor original.
Ejemplo de CopyClaimIfPredicateMatch que ajusta el predicado
En este ejemplo, la transformación de notificaciones copiará el valor. La notificación signInName tiene el formato correcto: número de teléfono.
- Notificaciones de entrada:
- inputClaim: +11234567890
- Notificaciones de salida:
- outputClaim: +11234567890
CreateOtpSecret
Crea una notificación de cadena TOTP. La salida de esta transformación de notificaciones es un secreto TOTP que se almacena posteriormente en la cuenta de usuario de Azure AD B2C y se comparte con la aplicación Microsoft Authenticator. La aplicación autenticadora usa la clave para generar códigos TOTP cuando el usuario necesita para superar la MFA. La directiva usa la clave para validar el código TOTP proporcionado por el usuario.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
OutputClaim | outputClaim | string | La notificación que se genera después de que se haya invocado esta transformación de notificaciones con el código TOPT generado. |
Ejemplo de CreateOtpSecret
La siguiente transformación de notificaciones para crear un secreto para el autenticador multifactor de TOTP.
<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de salida:
- outputClaim:
hmlcmd4ph6fph64c
- outputClaim:
CreateRandomString
Crea una cadena aleatoria mediante el generador de números aleatorios. Si el generador de números aleatorios es de tipo integer
, opcionalmente se pueden proporcionar un parámetro de inicialización y un número máximo. Un parámetro de formato de cadena opcional permite que la salida tenga ese formato, y un parámetro de base64 opcional especifica si la salida randomGeneratorType [guid, integer] outputClaim (String) está codificada en base64 .
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputParameter | randomGeneratorType | string | Especifica el valor aleatorio que se genera, GUID (identificador único global) o INTEGER (un número). |
InputParameter | stringFormat | string | [Opcional] Formato del valor aleatorio. |
InputParameter | base64 | boolean | [Opcional] Convertir el valor aleatorio en base64. Si se aplica el formato de cadena, el valor después del formato de cadena está codificado en base64. |
InputParameter | maximumNumber | int | [Opcional] Solo para randomGeneratorType INTEGER . Especifique el número máximo. |
InputParameter | seed | int | [Opcional] Solo para randomGeneratorType INTEGER . Especifique el valor de inicialización del valor aleatorio. Nota: El mismo valor de inicialización genera la misma secuencia de números aleatorios. |
OutputClaim | outputClaim | string | Las notificaciones que se genera después de que se haya invocado esta transformación de notificaciones. El valor aleatorio. |
Ejemplo de CreateRandomString
El ejemplo siguiente genera un identificador único global. Esta transformación de notificaciones se usa para crear el UPN (nombre principal del usuario) aleatorio.
<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Parámetros de entrada:
- randomGeneratorType: GUID
- Notificaciones de salida:
- outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc
Ejemplo de CreateRandomString para crear un valor numérico
El ejemplo siguiente genera un valor entero aleatorio entre 0 y 1000. El valor pasa a tener el formato OTP_ {valor_aleatorio}.
<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
<InputParameters>
<InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
<InputParameter Id="maximumNumber" DataType="int" Value="1000" />
<InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
<InputParameter Id="base64" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Parámetros de entrada:
- randomGeneratorType: INTEGER
- maximumNumber: 1000
- stringFormat: OTP_{0}
- base64: false
- Notificaciones de salida:
- outputClaim: OTP_853
CreateStringClaim
Crea una notificación de cadena a partir del parámetro de entrada proporcionado en la transformación. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputParameter | value | string | La cadena que va a establecerse. Este parámetro de entrada admite expresiones de transformación de notificaciones de cadena. |
OutputClaim | createdClaim | string | La notificación que se genera después de que se haya invocado esta transformación de notificaciones, con el valor especificado en el parámetro de entrada. |
Ejemplo de CreateStringClaim
La siguiente transformación de notificaciones crea un valor de cadena con términos de servicio.
<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
<InputParameters>
<InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
</OutputClaims>
</ClaimsTransformation>
- Parámetro de entrada:
- value: Contoso terms of service...
- Notificaciones de salida:
- createdClaim: La notificación TOS contiene el valor "Contoso terms of service…".
FormatLocalizedString
Aplica formato a varias notificaciones de acuerdo con una cadena de formato localizada proporcionada. Esta transformación usa el método String.Format
de C#. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaims | string | La colección de notificaciones de entrada que actúa como parámetros de formato de cadena {0}, {1}, {2}. | |
InputParameter | stringFormatId | string | El valor StringId de una cadena localizada. |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Nota:
No existe ningún límite en el número de notificaciones de entrada que se pueden especificar, pero la longitud máxima de la cadena con formato es 4000.
Para usar la transformación de notificaciones FormatLocalizedString:
- Defina una cadena de localización y asóciela con un perfil técnico autoafirmado.
- El
ElementType
del elementoLocalizedString
debe establecerse enFormatLocalizedStringTransformationClaimType
. StringId
es un identificador único que se define y se usa más adelante en la transformación de notificacionesstringFormatId
.- En la transformación de notificaciones, especifique la lista de notificaciones que se van a establecer con la cadena localizada. A continuación, establezca
stringFormatId
en el valorStringId
del elemento de cadena localizado. - En un perfil técnico autoafirmado o una transformación de notificaciones de entrada o salida de control de visualización, haga una referencia a la transformación de notificaciones.
Ejemplo de FormatLocalizedString
En el ejemplo siguiente se genera un mensaje de error cuando una cuenta ya está en el directorio. En el ejemplo se definen cadenas localizadas para inglés (valor predeterminado) y español.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
La transformación de notificaciones crea un mensaje de respuesta basado en la cadena localizada. El mensaje contiene la dirección de correo electrónico del usuario insertada en la cadena localizada ResponseMessge_EmailExists.
<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: sarah@contoso.com
- Parámetros de entrada:
- stringFormat: ResponseMessge_EmailExists
- Notificaciones de salida:
- outputClaim: el correo electrónico "sarah@contoso.com" ya es una cuenta de esta organización. Seleccione Siguiente para iniciar sesión con esa cuenta.
FormatStringClaim
Da formato a una notificación de acuerdo con la cadena de formato proporcionada. Esta transformación usa el método String.Format
de C#. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | La notificación que actúa como el parámetro {0} de formato de cadena. |
InputParameter | stringFormat | string | El formato de cadena, incluido el parámetro {0}. Este parámetro de entrada admite expresiones de transformación de notificaciones de cadena. |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Nota:
El formato de cadena máximo permitido es 4000.
Ejemplo de FormatStringClaim
Use esta transformación de notificaciones para dar formato a cualquier cadena con un parámetro {0}. El ejemplo siguiente crea un userPrincipalName. Todos los perfiles técnicos de proveedores de las identidades de redes sociales, como Facebook-OAUTH
llaman a CreateUserPrincipalName para generar un userPrincipalName.
<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
- Parámetros de entrada:
- stringFormat: cpim_{0}@{RelyingPartyTenantId}
- Notificaciones de salida:
- outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com
FormatStringMultipleClaims
Da formato a dos notificaciones de acuerdo con la cadena de formato proporcionada. Esta transformación usa el método String.Format
de C#. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim1 | string | La notificación que actúa como el parámetro {0} de formato de cadena. |
InputClaim | inputClaim2 | string | La notificación que actúa como el parámetro {1} de formato de cadena. |
InputParameter | stringFormat | string | El formato de cadena, incluidos los parámetros {0} y {1}. Este parámetro de entrada admite expresiones de transformación de notificaciones de cadena. |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. |
Nota:
El formato de cadena máximo permitido es 4000.
Ejemplo de FormatStringMultipleClaims
Use esta transformación de notificaciones para dar formato a cualquier cadena con dos parámetros, {0} y {1}. En el ejemplo siguiente se crea un displayName con el formato especificado:
<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
<InputClaims>
<InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
<InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
</InputClaims>
<InputParameters>
<InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim1: Joe
- inputClaim2: Fernando
- Parámetros de entrada:
- stringFormat: {0}{1}
- Notificaciones de salida:
- outputClaim: Joe Fernando
GetLocalizedStringsTransformation
Copia las cadenas localizadas en las notificaciones. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
OutputClaim | Nombre de la cadena localizada. | string | Lista de tipos de notificaciones que se genera después de que se haya invocado esta transformación de notificaciones. |
Para usar la transformación de notificaciones GetLocalizedStringsTransformation:
Defina una cadena de localización para la definición de contenido, como
api.selfasserted
.El
ElementType
del elementoLocalizedString
debe establecerse enGetLocalizedStringsTransformationClaimType
.StringId
es un identificador único que se define y se usa más adelante en la transformación de notificaciones.En la transformación de notificaciones, especifique la lista de notificaciones que se van a establecer con la cadena localizada.
ClaimTypeReferenceId
es una referencia a una notificación ya definida en la sección ClaimsSchema de la directiva.TransformationClaimType
es el nombre de la cadena localizada tal como se define enStringId
del elementoLocalizedString
.En una transformación de notificaciones del perfil técnico autoafirmado o de transformación de notificaciones, realice una referencia a su transformación de notificaciones.
Asocie el perfil técnico a la definición de contenido, como
api.selfasserted
. En el ejemplo siguiente se muestra cómo asociar un perfil técnico a la definición de contenidoapi.selfasserted
.<Metadata> <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item> </Metadata>
En el diagrama siguiente se muestra cómo configurar la transformación de notificaciones con los elementos de localización:
Ejemplo de GetLocalizedStringsTransformation
En el siguiente ejemplo se busca el asunto, el cuerpo, el mensaje de código y la firma del correo electrónico en las cadenas localizadas. Las notificaciones se usan posteriormente en la plantilla de comprobación de correo electrónico personalizada.
Defina cadenas localizadas para inglés (predeterminado) y español.
<Localization Enabled="true">
<SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
<SupportedLanguage>en</SupportedLanguage>
<SupportedLanguage>es</SupportedLanguage>
</SupportedLanguages>
<LocalizedResources Id="api.localaccountsignup.en">
<LocalizedStrings>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
<LocalizedResources Id="api.localaccountsignup.es">
<LocalizedStrings>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
<LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
</LocalizedStrings>
</LocalizedResources>
</Localization>
La transformación de notificaciones establece el valor del tipo de notificación subject con el valor de StringId
email_subject de .
<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
<OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
<OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
<OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de salida:
- subject: Código de verificación del correo electrónico de la cuenta de Contoso
- message: Gracias por comprobar la cuenta
- codeIntro: Su código es
- signature: Atentamente
GetMappedValueFromLocalizedCollection
Asigna un elemento de la colección Restriction de la notificación de entrada. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | mapFromClaim | string | La notificación que contiene el texto que se va a buscar en las notificaciones restrictionValueClaim con la colección Restriction. |
OutputClaim | restrictionValueClaim | string | La notificación que contiene la colección Restriction. Una vez que se ha invocado la transformación de notificaciones, el valor de esta notificación contiene el valor del elemento seleccionado. |
Ejemplo de GetMappedValueFromLocalizedCollection
En el ejemplo siguiente se busca la descripción del mensaje de error según la clave de error. La notificación responseMsg contiene una colección de mensajes de error para presentar al usuario final o a enviar al usuario de confianza.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<UserInputType>Paragraph</UserInputType>
<Restriction>
<Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
<Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
<Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
</Restriction>
</ClaimType>
La transformación de notificaciones busca el texto del elemento y devuelve su valor. Si la restricción se localiza mediante <LocalizedCollection>
, la transformación de notificaciones devuelve el valor localizado.
<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- mapFromClaim: B2C_V1_90001
- Notificaciones de salida:
- restrictionValueClaim: no puede iniciar sesión porque es menor.
LookupValue
Busca un valor de notificación en una lista de valores en función del valor de otra notificación. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputParameterId | string | La notificación que contiene el valor de búsqueda. |
InputParameter | string | Colección de inputParameters. | |
InputParameter | errorOnFailedLookup | boolean | Controlar si se devuelve un error cuando una búsqueda no tiene resultados. |
OutputClaim | outputClaim | string | La notificación que se genera después de que se haya invocado esta transformación de notificaciones. Valor del Id coincidente. |
Ejemplo de LookupValue
En el ejemplo siguiente se busca el nombre de dominio en una de las colecciones inputParameters. La transformación de notificaciones busca el nombre de dominio en el identificador y devuelve su valor (un identificador de aplicación).
<ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
</InputClaims>
<InputParameters>
<InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
<InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
<InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
<InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputParameterId: test.com
- Parámetros de entrada:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: false
- Notificaciones de salida:
- outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9
Ejemplo de LookupValue con error
Cuando el parámetro de entrada errorOnFailedLookup
está establecido en true
, la transformación de notificaciones LookupValue siempre se ejecuta desde un perfil técnico de validación llamado por un perfil técnico autofirmado o un elemento DisplayControl. Los metadatos LookupNotFound
de un perfil técnico autoafirmado controlan el mensaje de error que se presenta al usuario.
En el ejemplo siguiente se busca el nombre de dominio en una de las colecciones inputParameters. La transformación de notificaciones busca el nombre de dominio en el identificador y devuelve su valor (un identificador de aplicación), o bien genera un mensaje de error.
<ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
<InputClaims>
<InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
</InputClaims>
<InputParameters>
<InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
<InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
<InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
<InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputParameterId: live.com
- Parámetros de entrada:
- contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
- microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
- test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
- errorOnFailedLookup: true
- Error:
- No se encontró ninguna coincidencia para el valor de notificaciones de entrada en la lista de identificadores de parámetro de entrada y errorOnFailedLookup es true.
NullClaim
Limpia el valor de una notificación determinada. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
OutputClaim | claim_to_null | string | El valor de la notificación está establecido en NULL. |
Ejemplo de NullClaim
Use esta transformación de notificaciones para quitar datos innecesarios de la bolsa de propiedades de notificaciones, para que la cookie de la sesión sea menor. En el ejemplo siguiente se quita el valor del tipo de notificación TermsOfService
.
<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- outputClaim: Bienvenidos a Contoso App. Si continúa explorando y usando este sitio web, acepta los siguientes términos y condiciones, que regirán su uso del sitio web...
- Notificaciones de salida:
- outputClaim: NULL
ParseDomain
Obtiene la parte de dominio de una dirección de correo electrónico. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | emailAddress | string | La notificación que contiene la dirección de correo electrónico. |
OutputClaim | dominio | string | La notificación que se genera después de que se haya invocado esta transformación de notificaciones: el dominio. |
Ejemplo de ParseDomain
Use esta transformación de notificaciones para analizar el nombre de dominio después el símbolo @ del usuario. La siguiente transformación de notificaciones muestra cómo analizar el nombre de dominio desde una notificación de email.
<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- emailAddress: joe@outlook.com
- Notificaciones de salida:
- domain: outlook.com
SetClaimIfBooleansMatch
Comprueba que una notificación booleana es true
o false
. En caso afirmativo, establece las notificaciones de salida con el valor presente en el parámetro de entrada outputClaimIfMatched
. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | claimToMatch | string | Tipo de la notificación que se va a comprobar. Un valor nulo inicia una excepción. |
InputParameter | matchTo | string | Valor que se va a comparar con la notificación de entrada claimToMatch . Valores posibles: true o false . |
InputParameter | outputClaimIfMatched | string | Valor que se va a establecer si la notificación de entrada es igual al parámetro de entrada matchTo . |
OutputClaim | outputClaim | string | Si la notificación de entrada claimToMatch es igual al parámetro de entrada matchTo , esta notificación de salida contiene el valor del parámetro de entrada outputClaimIfMatched . |
Ejemplo de SetClaimIfBooleansMatch
Por ejemplo, la siguiente transformación de notificaciones comprueba si el valor de la notificación hasPromotionCode es igual a true
. En caso afirmativo, devuelve el valor Promotion code not found.
<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="true" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- claimToMatch: true
- Parámetros de entrada:
- matchTo: true
- outputClaimIfMatched: "Promotion code not found".
- Notificaciones de salida:
- outputClaim: "Promotion code not found."
SetClaimsIfRegexMatch
Comprueba que una notificación de cadena claimToMatch
y el parámetro de entrada matchTo
son iguales, y establece las notificaciones de salida con el valor presente en el parámetro de entrada outputClaimIfMatched
, junto con la notificación de salida del resultado de la comparación, que debe establecerse en true
o false
según el resultado de la comparación.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
inputClaim | claimToMatch | string | Tipo de la notificación que se va a comparar. |
InputParameter | matchTo | string | La expresión regular con la que debe coincidir. |
InputParameter | outputClaimIfMatched | string | Valor que debe establecerse si las cadenas son iguales. |
InputParameter | extractGroups | boolean | [Opcional] Especifica si la coincidencia de Regex debe extraer los valores de los grupos. Valores posibles: true o false (valor predeterminado). |
OutputClaim | outputClaim | string | Si la expresión regular coincide, esta notificación de salida contiene el valor del parámetro de entrada outputClaimIfMatched . Si no hay coincidencia, el valor es NULL. |
OutputClaim | regexCompareResultClaim | boolean | Tipo de la notificación de salida del resultado de la coincidencia de la expresión regular, que debe establecerse en true o false en función del resultado de la coincidencia. |
OutputClaim | El nombre de la notificación | string | Si el parámetro de entrada extractGroups se establece en true, la lista de tipos de notificación que se produce después de que se haya invocado esta transformación de notificaciones. El nombre de la notificación debe coincidir con el nombre del grupo Regex. |
Ejemplo de SetClaimsIfRegexMatch
Comprueba si el número de teléfono indicado es válido, en función del patrón de expresión regular de número de teléfono.
<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- claimToMatch: "64854114520"
- Parámetros de entrada:
- matchTo: "^[0-9]{4,16}$"
- outputClaimIfMatched: "Phone"
- Notificaciones de salida:
- outputClaim: "iPhone"
- regexCompareResultClaim: true
Ejemplo de SetClaimsIfRegexMatch con grupos de extracción
Comprueba si la dirección de correo electrónico proporcionada es válida y devuelve el alias de correo electrónico. Consulte la demo en vivo de esta transformación de notificaciones con grupos de extracción.
<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="(?<mailAlias>.*)@(.*)$" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
<InputParameter Id="extractGroups" DataType="boolean" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
<OutputClaim ClaimTypeReferenceId="mailAlias" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- claimToMatch: "emily@contoso.com"
- Parámetros de entrada:
- matchTo:
(?<mailAlias>.*)@(.*)$
- outputClaimIfMatched: "isEmail"
- extractGroups: true
- matchTo:
- Notificaciones de salida:
- outputClaim: "isEmail"
- regexCompareResultClaim: true
- mailAlias: emily
SetClaimsIfStringsAreEqual
Comprueba que una notificación de cadena y el parámetro de entrada matchTo
son iguales, y establece las notificaciones de salida con el valor presente en los parámetros de entrada stringMatchMsg
y stringMatchMsgCode
, junto con la notificación de salida del resultado de la comparación, que debe establecerse en true
o false
según el resultado de la comparación.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de la notificación que se va a comparar. |
InputParameter | matchTo | string | Cadena que se va a comparar con inputClaim . |
InputParameter | stringComparison | string | Valores posibles: Ordinal o OrdinalIgnoreCase . |
InputParameter | stringMatchMsg | string | Primer valor que debe establecerse si las cadenas son iguales. |
InputParameter | stringMatchMsgCode | string | Segundo valor que debe establecerse si las cadenas son iguales. |
OutputClaim | outputClaim1 | string | Si las cadenas son iguales, esta notificación de salida contiene el valor del parámetro de entrada stringMatchMsg . |
OutputClaim | outputClaim2 | string | Si las cadenas son iguales, esta notificación de salida contiene el valor del parámetro de entrada stringMatchMsgCode . |
OutputClaim | stringCompareResultClaim | boolean | Tipo de la notificación de salida del resultado de la comparación, que debe establecerse en true o false en función del resultado de la comparación. |
Ejemplo de SetClaimsIfStringsAreEqual
Puede usar esta transformación de notificaciones para comprobar si una notificación es igual a un valor que haya especificado. Por ejemplo, la siguiente transformación de notificaciones comprueba si el valor de la notificación termsOfUseConsentVersion es igual a v1
. En caso afirmativo, cambie el valor a v2
.
<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
<InputClaims>
<InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="v1" />
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
<InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
<InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: v1
- Parámetros de entrada:
- matchTo: V1
- stringComparison: ordinalIgnoreCase
- stringMatchMsgCode: B2C_V1_90005
- stringMatchMsg: La notificación TOS se actualiza a la versión 2
- Notificaciones de salida:
- outputClaim1: B2C_V1_90005
- outputClaim2: The TOS is upgraded to v2
- stringCompareResultClaim: true
SetClaimsIfStringsMatch
Comprueba que una notificación de cadena y el parámetro de entrada matchTo
son iguales, y establece las notificaciones de salida con el valor presente en el parámetro de entrada outputClaimIfMatched
, junto con la notificación de salida del resultado de la comparación, que debe establecerse en true
o false
según el resultado de la comparación.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | claimToMatch | string | Tipo de la notificación que se va a comparar. |
InputParameter | matchTo | string | Cadena que se va a comparar con inputClaim. |
InputParameter | stringComparison | string | Valores posibles: Ordinal o OrdinalIgnoreCase . |
InputParameter | outputClaimIfMatched | string | Valor que debe establecerse si las cadenas son iguales. |
OutputClaim | outputClaim | string | Si las cadenas son iguales, esta notificación de salida contiene el valor del parámetro de entrada outputClaimIfMatched . O null, si las cadenas no coinciden. |
OutputClaim | stringCompareResultClaim | boolean | Tipo de la notificación de salida del resultado de la comparación, que debe establecerse en true o false en función del resultado de la comparación. |
Ejemplo de SetClaimsIfStringsMatch
Por ejemplo, la siguiente transformación de notificaciones comprueba si el valor de la notificación ageGroup es igual a Minor
. En caso afirmativo, devuelve el valor para B2C_V1_90001
.
<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
<InputClaims>
<InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
</InputClaims>
<InputParameters>
<InputParameter Id="matchTo" DataType="string" Value="Minor" />
<InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
<InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
<OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- claimToMatch: Minor
- Parámetros de entrada:
- matchTo: Minor
- stringComparison: ordinalIgnoreCase
- outputClaimIfMatched: B2C_V1_90001
- Notificaciones de salida:
- isMinorResponseCode: true
- isMinor: B2C_V1_90001
StringContains
Determina si una subcadena especificada aparece dentro de la notificación de entrada. El resultado es una nueva notificación booleana con un valor de true
o false
. true
si el parámetro de valor aparece dentro de esta cadena; en caso contrario, false
.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de la notificación que se va a buscar. |
InputParameter | contains | string | Valor que se va a buscar. |
InputParameter | ignoreCase | string | Especifica si la comparación distingue entre mayúsculas y minúsculas en las cadenas que se están comparando. |
OutputClaim | outputClaim | string | Notificación que se genera después de que se haya invocado esta transformación de notificaciones. Indicador booleano si la subcadena aparece dentro de la notificación de entrada. |
Ejemplo de StringContains
Use esta transformación de notificaciones para comprobar si un tipo de notificación de cadena contiene una subcadena. En el siguiente ejemplo se comprueba si el tipo de notificación de cadena roles
contiene el valor admin.
<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="contains" DataType="string" Value="admin"/>
<InputParameter Id="ignoreCase" DataType="string" Value="true"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: "Admin, Approver, Editor"
- Parámetros de entrada:
- contains: "admin,"
- ignoreCase: true
- Notificaciones de salida:
- outputClaim: true
StringSubstring
Extrae partes de un tipo de notificación de cadena, comenzando por el carácter que se encuentra en la posición especificada, y devuelve el número de caracteres especificado. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de notificación que contiene la cadena. |
InputParameter | startIndex | int | Posición de carácter inicial de base cero de una subcadena en la instancia. |
InputParameter | length | int | Número de caracteres de la subcadena. |
OutputClaim | outputClaim | string | Cadena equivalente a la subcadena de longitud que comienza en el valor de startIndex de esta instancia, o bien, un valor vacío si el valor de startIndex es igual a la longitud de esta instancia y length es cero. |
Ejemplo de StringSubstring
Por ejemplo, obtiene el prefijo de país o región del número de teléfono.
<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="startIndex" DataType="int" Value="0" />
<InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: "+1644114520"
- Parámetros de entrada:
- startIndex: 0
- length: 2
- Notificaciones de salida:
- outputClaim: "+1"
StringReplace
Busca un valor especificado en una notificación de tipo cadena y devuelve una nueva notificación de tipo cadena en la que todas las apariciones de una cadena especificada en la cadena actual se reemplazan por otra cadena especificada.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de notificación que contiene la cadena. |
InputParameter | oldValue | string | Cadena que se va a buscar. |
InputParameter | newValue | string | Cadena que va a reemplazar todas las apariciones de oldValue . |
OutputClaim | outputClaim | boolean | Cadena que es equivalente a la cadena actual salvo en que todas las instancias de oldValue se reemplazan por el valor de newValue. Si no se encuentra el valor de oldValue en la instancia actual, el método devuelve la instancia actual sin modificar. |
Ejemplo de StringReplace
Por ejemplo, normaliza un número de teléfono quitando los caracteres -
.
<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
<InputClaims>
<InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="oldValue" DataType="string" Value="-" />
<InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim: "+164-411-452-054"
- Parámetros de entrada:
- oldValue: "-"
- newValue: ""
- Notificaciones de salida:
- outputClaim: "+164411452054"
StringJoin
Concatena los elementos de un tipo de notificación de colección de cadenas especificado, usando el separador indicado entre todos los elementos o miembros.
Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | stringCollection | Colección que contiene las cadenas que se van a concatenar. |
InputParameter | delimiter | string | Cadena que se va a usar como separador; por ejemplo, coma , . |
OutputClaim | outputClaim | string | Cadena que consta de los miembros de la colección de cadenas inputClaim , delimitadas por el parámetro de entrada delimiter . |
Ejemplo de StringJoin
En el ejemplo siguiente se toma una colección de cadenas de roles de usuario y se convierte en una cadena con delimitador de comas. Puede usar este método para almacenar una colección de cadenas en una cuenta de usuario de Azure AD B2C. Más adelante, cuando lea la cuenta desde el directorio, podrá usar StringSplit
para volver a convertir la cadena con delimitador de coma en una colección de cadenas.
<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim:
[ "Admin", "Author", "Reader" ]
- inputClaim:
- Parámetros de entrada:
- delimiter: ","
- Notificaciones de salida:
- outputClaim:
"Admin,Author,Reader"
- outputClaim:
StringSplit
Devuelve una matriz de cadenas que contiene las subcadenas de esta instancia que están delimitadas por elementos de una cadena especificada. Consulte la demo en vivo de esta transformación de notificaciones.
Elemento | TransformationClaimType | Tipo de datos | Notas |
---|---|---|---|
InputClaim | inputClaim | string | Tipo de notificación de cadena que contiene las subcadenas que se van a dividir. |
InputParameter | delimiter | string | Cadena que se va a usar como separador; por ejemplo, coma , . |
OutputClaim | outputClaim | stringCollection | Colección de cadenas cuyos elementos contienen las subcadenas de esta cadena que están delimitadas por el parámetro de entrada delimiter . |
Nota
Se quitarán todos los elementos existentes de stringCollection OutputClaim
.
Ejemplo de StringSplit
En el siguiente ejemplo se toma una cadena con delimitador de coma de roles de usuario y se convierte en una colección de cadenas.
<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
<InputClaims>
<InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter DataType="string" Id="delimiter" Value="," />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Notificaciones de entrada:
- inputClaim:
Admin,Author,Reader
- inputClaim:
- Parámetros de entrada:
- delimiter: ","
- Notificaciones de salida:
- outputClaim:
[ "Admin", "Author", "Reader" ]
- outputClaim:
Expresiones de transformaciones de notificaciones de cadena
Las expresiones de transformaciones de notificaciones de las directivas personalizadas de Azure AD B2C proporcionan información contextual sobre el identificador de inquilino y el identificador de perfil técnico.
Expression | Descripción | Ejemplo |
---|---|---|
{TechnicalProfileId} |
Nombre identificador del perfil técnico. | Facebook-OAUTH |
{RelyingPartyTenantId} |
El identificador de inquilino de la directiva del usuario de confianza. | your-tenant.onmicrosoft.com |
{TrustFrameworkTenantId} |
El identificador de inquilino del marco de confianza. | your-tenant.onmicrosoft.com |
Pasos siguientes
- Encuentre más muestras de transformación de notificaciones en el repositorio de GitHub comunitario de Azure AD B2C.