Compartir a través de


Personalización de notificaciones con la directiva de asignación de notificaciones en Microsoft Graph

Puede agregar atributos de usuario adicionales a tokens de acceso para ayudar a la aplicación a tomar mejores decisiones de autorización. En este artículo se muestra cómo usar las API de Microsoft Graph para crear y asignar una directiva de asignación de notificaciones, agregar notificaciones personalizadas a tokens de acceso y comprobar la notificación personalizada en el token.

Requisitos previos

Para completar este tutorial, necesita:

  • Acceso a un cliente de API, como Graph Explorer, que ha iniciado sesión con una cuenta de Microsoft Entra que tiene el rol administrador de aplicaciones y concede los siguientes permisos delegados: Policy.Read.All, Policy.ReadWrite.ApplicationConfiguration y Application.ReadWrite.All.
  • Una entidad de servicio de cliente a la que se va a asignar la directiva de asignación de notificaciones.
  • Una entidad de servicio de recursos que expone las API.

Crear una directiva de asignación de notificaciones

Esta directiva agrega la department notificación del objeto de usuario al token.

Solicitud

POST https://graph.microsoft.com/beta/policies/claimsMappingPolicies
Content-type: application/json

{
 "definition": [
   "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"}]}}"
 ],
 "displayName": "ExtraClaimsTest"
}

Respuesta

Registre el identificador de la respuesta que se usará más adelante en este artículo.

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#policies/claimsMappingPolicies/$entity",
  "id": "06d5d20d-2955-45f8-a15d-cf2f434b8116",
  "deletedDateTime": null,
  "definition": [
      "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"}]}}"
  ],
  "displayName": "ExtraClaimsTest",
  "isOrganizationDefault": false
}

También puede agregar más de un atributo a la directiva. En el ejemplo siguiente se agregan las department notificaciones y companyname al token.

{
  "definition": [
        "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"department\",\"JwtClaimType\":\"department\"},{\"Source\":\"user\",\"ID\":\"companyname\",\"JwtClaimType\":\"companyname\"}]}}"
    ],
 "displayName": "ExtraClaimsTest"
}

Asignación de la directiva a una entidad de servicio de recursos

La siguiente solicitud asigna la directiva de asignación de notificaciones a una entidad de servicio. Una respuesta correcta devuelve 204 No Content.

POST https://graph.microsoft.com/v1.0/servicePrincipals/3bdbbc1a-5e94-4c2b-895f-231d8af4beee/claimsMappingPolicies/$ref
Content-type: application/json

{
 "@odata.id": "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/06d5d20d-2955-45f8-a15d-cf2f434b8116"
}

Habilitación de notificaciones asignadas en el objeto de aplicación de recursos

Actualice el objeto de aplicación para aceptar notificaciones asignadas y usar la versión 2 del token de acceso. Una respuesta correcta devuelve 204 No Content.

PATCH https://graph.microsoft.com/v1.0/applications/3dfbe85f-2d14-4660-b1a2-cb9c633ceebb
Content-type: application/json

{
  "api": {
    "acceptMappedClaims": true,
    "requestedAccessTokenVersion": 2
  }
}

Prueba del token de acceso

En un cliente de API que le permite seguir el flujo de código de autorización de Plataforma de identidad de Microsoft y OAuth 2.0, obtenga un token de acceso. En el parámetro scope , incluya uno de los ámbitos expuestos por la entidad de servicio de recursos, como openid profile email scope-defined-by-your-api dónde scope-defined-by-your-api podría ser api://00001111-aaaa-2222-bbbb-3333cccc4444/test.

Use jwt.ms para descodificar el token de acceso. La department notificación debe aparecer en el token.

Limpie los recursos

Para anular la asignación de notificaciones de la entidad de servicio, use la siguiente solicitud. Una respuesta correcta devuelve 204 No Content.

DELETE https://graph.microsoft.com/v1.0/servicePrincipals/3bdbbc1a-5e94-4c2b-895f-231d8af4beee/claimsMappingPolicies//06d5d20d-2955-45f8-a15d-cf2f434b8116/$ref