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
- Obtenga información sobre cómo obtener un inquilino de Microsoft Entra.
- Descargue el SDK de PowerShell de Microsoft Graph más reciente.
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:
- Omisión de las notificaciones básicas de los tokens
- Inclusión de EmployeeID y TenantCountry como notificaciones en los tokens
- Uso de una transformación de notificaciones en los tokens
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.
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.
Con el terminal que tiene abierto, ejecute el siguiente comando para crear la directiva:
New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"false"}}') -DisplayName "OmitBasicClaims"
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.
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.
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"
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.
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.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"
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.
Para ver todas las entidades de servicio de su organización, puede consultar la Microsoft Graph API o comprobarlas en Microsoft Graph Explorer.
Para ver todas las directivas de asignación de notificaciones del inquilino y para obtener la directiva
ObjectId
, ejecute el siguiente comando:Get-MgPolicyClaimMappingPolicy
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>"}