Compartir a través de


Personalización de notificaciones mediante PowerShell y la directiva de asignación de notificaciones

Una notificación es información que un proveedor de identidades declara sobre un usuario dentro del token que se emite para dicho usuario. Los administradores de inquilinos usan la personalización de notificaciones para personalizar las notificaciones que se emiten en tokens para una aplicación específica de su inquilino. Puede usar directivas de asignación de notificaciones para:

  • seleccionar las notificaciones que se incluyen en tokens.
  • crear tipos de notificación que aún no existen.
  • elegir o cambiar el origen de los datos emitidos en notificaciones concretas.

La personalización de notificaciones admite la configuración de directivas de asignación de notificaciones para los protocolos SAML, OAuth y OpenID Connect.

Nota:

La directiva de asignación de notificaciones reemplaza tanto la directiva de notificaciones personalizadas como la personalización de notificaciones que se ofrece a través del Centro de administración de Microsoft Entra. Personalizar las notificaciones de una aplicación mediante la directiva de asignación de notificaciones significa que los tokens emitidos para esa aplicación omitirán la configuración en la directiva de notificaciones personalizadas o la configuración en la hoja de personalización de notificaciones del Centro de administración de Microsoft Entra.

Requisitos previos

Introducción

En los ejemplos siguientes, va a crear, actualizar, vincular y eliminar directivas de entidades de servicio. Las directivas de asignación de notificaciones solo pueden asignarse a objetos de entidades de servicio.

Al crear una directiva de asignación de notificaciones, también puede emitir una notificación de un atributo de extensión de directorio en los tokens. Use ExtensionID para el atributo de extensión en lugar de ID en el elemento ClaimsSchema. Para más información sobre los atributos de extensión, consulte Uso de atributos de extensión de directorio.

Nota:

El SDK de PowerShell de Microsoft Graph es necesario para configurar directivas de asignación de notificaciones.

Abra un terminal y ejecute el siguiente comando para iniciar sesión en su cuenta de administrador de Microsoft Entra. Ejecute este comando cada vez que inicie una nueva sesión.

Import-Module Microsoft.Graph.Identity.SignIns

Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration", "Policy.Read.All"

Ahora puede crear una directiva de asignación de notificaciones y asígnela a una entidad de servicio. Consulte los ejemplos siguientes para escenarios comunes:

Después de crear una directiva de asignación de notificaciones, configure la aplicación para que reconozca que los tokens contendrán notificaciones personalizadas. Para obtener más información, lea las consideraciones sobre la seguridad.

Omisión de las notificaciones básicas de los tokens

En este ejemplo se crea una directiva que quita el conjunto de notificaciones básicas de los tokens emitidos para entidades de servicio vinculadas.

  1. Cree una directiva de asignación de notificaciones. Esta directiva, que se vincula a entidades de servicio concretas, quita el conjunto de notificaciones básicas de los tokens.

  2. Con el terminal que tiene abierto, ejecute el siguiente comando para crear la directiva:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"false"}}') -DisplayName "OmitBasicClaims"
    
  3. Para ver la nueva directiva y obtener su ObjectId, ejecute el siguiente comando:

    Get-MgPolicyClaimMappingPolicy
    
    Definition                    DeletedDateTime Description DisplayName      Id
    ----------                    --------------- ----------- -----------      --
    {"ClaimsMappingPolicy":{..}}                              OmitBasicClaims  36d1aa10-f9ac...
    

Incorporación de EmployeeID y TenantCountry como reclamaciones en tokens

En este ejemplo se crea una directiva que agrega EmployeeID y TenantCountry a los tokens emitidos para entidades de servicio vinculadas. EmployeeID se emite como tipo de notificación de nombre en los tokens SAML y JWT. TenantCountry se emite como tipo de notificación de país o región en los tokens SAML y JWT. En este ejemplo se sigue incluyendo el conjunto de notificaciones básicas en los tokens.

  1. Cree una directiva de asignación de notificaciones. Esta directiva, que se vincula a entidades de servicio concretas, agrega las notificaciones EmployeeID y TenantCountry a los tokens.

  2. Para crear la directiva, ejecute el siguiente comando en su terminal:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"employeeid","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/employeeid","JwtClaimType":"employeeid"},{"Source":"company","ID":"tenantcountry","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country","JwtClaimType":"country"}]}}') -DisplayName "ExtraClaimsExample"
    
  3. Para ver la nueva directiva y obtener su ObjectId, ejecute el siguiente comando:

    Get-MgPolicyClaimMappingPolicy
    

Uso de una transformación de notificaciones en los tokens

En este ejemplo se crea una directiva que emite una notificación "JoinedData" personalizada para los tokens JWT emitidos para entidades de servicio vinculadas. Esta notificación contiene un valor creado mediante la combinación de los datos almacenados en el atributo extensionattribute1 en el objeto de usuario que incluye "-ext". En este ejemplo se excluye el conjunto de notificaciones básicas en los tokens.

  1. Cree una directiva de asignación de notificaciones. Esta directiva, vinculada a entidades de servicio específicas, emite una reclamación JoinedData personalizada a los tokens.

  2. Ejecute el siguiente comando para crear la directiva:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema":[{"Source":"user","ID":"extensionattribute1"},{"Source":"transformation","ID":"DataJoin","TransformationId":"JoinTheData","JwtClaimType":"JoinedData"}],"ClaimsTransformations":[{"ID":"JoinTheData","TransformationMethod":"Join","InputClaims":[{"ClaimTypeReferenceId":"extensionattribute1","TransformationClaimType":"string1"}], "InputParameters": [{"ID":"string2","Value":"ext"},{"ID":"separator","Value":"-"}],"OutputClaims":[{"ClaimTypeReferenceId":"DataJoin","TransformationClaimType":"outputClaim"}]}]}}') -DisplayName "TransformClaimsExample"
    
  3. Para ver la nueva directiva y obtener su ObjectId, ejecute el siguiente comando:

    Get-MgPolicyClaimMappingPolicy
    

Asignar la directiva de asignación de notificaciones a la entidad de servicio

Para asignar la directiva a la entidad de servicio, necesitará la ObjectId de la directiva de asignación de notificaciones y la objectId la entidad de servicio a la que se debe asignar la directiva.

  1. Para ver todas las entidades de servicio de su organización, puede consultar la Microsoft Graph API o comprobarlas en Microsoft Graph Explorer.

  2. Para ver todas las directivas de asignación de notificaciones del inquilino y para obtener la directiva ObjectId, ejecute el siguiente comando:

    Get-MgPolicyClaimMappingPolicy
    
  3. Cuando tenga el ObjectId de su directiva de asignación de notificaciones y la entidad de servicio, ejecute el siguiente comando:

    New-MgServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId <servicePrincipalId> -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/<claimsMappingPolicyId>"}