Partager via


Personnaliser les revendications avec la stratégie de mappage des revendications dans Microsoft Graph

Vous pouvez ajouter des attributs utilisateur supplémentaires aux jetons d’accès pour aider votre application à prendre de meilleures décisions en matière d’autorisation. Cet article explique comment utiliser les API Microsoft Graph pour créer et attribuer une stratégie de mappage de revendications, ajouter des revendications personnalisées aux jetons d’accès et vérifier la revendication personnalisée dans le jeton.

Configuration requise

Pour suivre ce didacticiel, vous avez besoin des éléments suivants :

  • Accès à un client API tel que Graph Explorer, connecté avec un compte Microsoft Entra qui a le rôle Administrateur d’application et accordez les autorisations déléguées suivantes : Policy.Read.All, Policy.ReadWrite.ApplicationConfiguration et Application.ReadWrite.All.
  • Principal de service client auquel attribuer la stratégie de mappage des revendications.
  • Un principal de service de ressources qui expose des API.

Créez une stratégie de mappage de revendications

Cette stratégie ajoute la department revendication de l’objet utilisateur au jeton.

Demande

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"
}

Réponse

Enregistrez l’ID de la réponse à utiliser plus loin dans cet article.

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
}

Vous pouvez également ajouter plusieurs attributs à la stratégie. L’exemple suivant ajoute les department revendications et companyname au jeton.

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

Affecter la stratégie à un principal de service de ressources

La requête suivante affecte la stratégie de mappage de revendications à un principal de service. Une réponse réussie retourne 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"
}

Activer les revendications mappées dans l’objet d’application de ressource

Mettez à jour l’objet d’application pour accepter les revendications mappées et utiliser le jeton d’accès version 2. Une réponse réussie retourne 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
  }
}

Tester le jeton d’accès

Dans un client API qui vous permet de suivre le flux de code d’autorisation Plateforme d'identités Microsoft et OAuth 2.0, obtenez un jeton d’accès. Dans le paramètre scope , incluez l’une des étendues exposées par votre principal de service de ressources, par openid profile email scope-defined-by-your-api exemple, où scope-defined-by-your-api peut être api://00001111-aaaa-2222-bbbb-3333cccc4444/test.

Utilisez jwt.ms pour décoder le jeton d’accès. La department revendication doit apparaître dans le jeton.

Nettoyer les ressources

Pour annuler l’affectation de la stratégie de mappage de revendications du principal de service, utilisez la requête suivante. Une réponse réussie retourne 204 No Content.

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