Personnaliser les revendications à l’aide de la stratégie de revendications personnalisées Microsoft Graph (préversion)
Une revendication concerne ce qu’un fournisseur d’identité déclare sur un utilisateur dans le jeton qu’il émet sur cet utilisateur. Les administrateurs de locataire utilisent la personnalisation des revendications pour personnaliser les revendications émises dans des jetons pour une application spécifique au sein de leur locataire. La personnalisation des revendications prend en charge la configuration des revendications des applications qui utilisent les protocoles SAML, OAuth et OpenID Connect. Vous pouvez utiliser la personnalisation des revendications pour :
- sélectionner les revendications incluses dans les jetons ;
- créer des types de revendications inexistants ;
- choisir ou modifier la source des données émises dans des revendications spécifiques.
Dans ce guide pratique, nous abordons quelques scénarios courants susceptibles de vous aider à comprendre comment utiliser la stratégie de revendications personnalisées.
Prérequis
- Un locataire Microsoft Entra.
- Une application d’entreprise configurée dans le centre d’administration Microsoft Entra.
- Pour les utilisateurs PowerShell, téléchargez le dernier SDK Microsoft Graph PowerShell. Cette étape est facultative.
Personnalisation des revendications dans Microsoft Entra ID
Microsoft Entra ID prend en charge deux façons de personnaliser les revendications à l’aide de Microsoft Graph/PowerShell pour vos applications :
- Utilisation de la stratégie de revendications personnalisées (préversion)
- Utilisation de la stratégie de mappage des revendications
Dans les exemples suivants, vous créez, mettez à jour et remplacez des stratégies pour les principaux de service. Les stratégies de revendications personnalisées sont toujours liées à des objets de principal de service. Veillez à configurer votre application d’entreprise dans le cadre des prérequis avant de créer une stratégie de revendications personnalisées pour l’application/le principal de service.
Ouvrez l’Afficheur Microsoft Graph dans votre navigateur, connectez-vous-y au moins en tant qu’Administrateur d’application et choisissez l’un des scénarios suivants.
- Omettre les revendications de base dans les jetons
- Inclure EmployeeID et TenantCountry comme des revendications dans les jetons
- Utiliser une transformation de revendications dans les jetons
Après avoir créé une stratégie de revendications personnalisées, configurez votre application pour reconnaître que les jetons contiennent les revendications personnalisées. Pour plus d’informations, consultez Considérations sur la sécurité.
Omettre les revendications de base dans les jetons
Dans cet exemple, vous créez une stratégie de revendications personnalisées qui supprime l’ensemble de revendications de base des jetons qui sont émis au principal de service lié.
Dans l’Afficheur Microsoft Graph, identifiez l’application pour laquelle vous souhaitez configurer la stratégie de revendications personnalisées en utilisant l’API du principal de service.
Créez la stratégie de revendications personnalisées en exécutant l’API suivante. Cette stratégie, liée à un principal de service, omet les revendications de base des jetons.
PUT https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Corps de la demande :
{ "includeBasicClaimSet": false }
Pour voir votre nouvelle stratégie, exécutez la commande suivante :
GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Réponse :
HTTP/1.1 200 OK Content-type: application/json { "@odata.context": "…", "id": "aaaaaaaa-bbbb-cccc-1111-222222222222.", "includeBasicClaimSet": false, "includeApplicationIdInIssuer": false, "audienceOverride": null, "groupFilter": null, "claims": [] }
Inclure les EmployeeID
et TenantCountry
comme créances dans les jetons
Dans cet exemple, vous créez une personnalisation des revendications qui ajoute EmployeeID
et TenantCountry
aux jetons. Dans cet exemple, nous incluons également l’ensemble de revendications de base dans les jetons.
Dans l’Afficheur Microsoft Graph, identifiez l’application pour laquelle vous souhaitez configurer la stratégie de revendications personnalisées en utilisant l’API du principal de service.
Créez la stratégie de revendications personnalisées en exécutant l’API suivante. Cette stratégie, liée à un principal de service, ajoute les revendications EmployeeID et TenantCountry aux jetons.
PUT https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Corps de la demande :
{ "includeBasicClaimSet": true, "claims": [ { "@odata.type": "#microsoft.graph.customClaim", "name": "employeeId", "namespace": null, "tokenFormat": [ "jwt" ], "samlAttributeNameFormat": null, "configurations": [ { "condition": null, "attribute": { "@odata.type": "#microsoft.graph.sourcedAttribute", "id": " employeeid", "source": "user", "isExtensionAttribute": false }, "transformations": [] } ] }, { "@odata.type": "#microsoft.graph.customClaim", "name": "country", "namespace": null, "tokenFormat": [ "jwt" ], "samlAttributeNameFormat": null, "configurations": [ { "condition": null, "attribute": { "@odata.type": "#microsoft.graph.sourcedAttribute", "id": " tenantcountry", "source": "user", "isExtensionAttribute": false }, "transformations": [] } ] } ] }
Pour afficher votre nouvelle stratégie, exécutez la commande suivante :
GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Réponse :
{ "@odata.context": "…", "id": "aaaaaaaa-bbbb-cccc-1111-222222222222", "includeBasicClaimSet": true, "includeApplicationIdInIssuer": false, "audienceOverride": null, "groupFilter": null, "claims": [...] }
Utiliser une transformation de revendications dans les jetons
Dans cet exemple, vous mettez à jour une stratégie pour émettre une revendication personnalisée « JoinedData » à des jetons JWT émis aux principaux de service liés. Cette revendication contient une valeur créée en joignant les données stockées dans l'attribut extensionattribute1 sur l'objet utilisateur avec « -ext ». Dans cet exemple, nous excluons l’ensemble de revendications de base des jetons.
Dans l’Afficheur Microsoft Graph, identifiez l’application pour laquelle vous souhaitez configurer la stratégie de revendications personnalisées en utilisant l’API du principal de service.
Créez la stratégie de revendications personnalisées en exécutant l’API suivante. Cette stratégie émet une revendication personnalisée
JoinedData
aux jetons.PATCH https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Corps de la demande :
{ "includeBasicClaimSet": true, "claims": [ { "@odata.type": "#microsoft.graph.customClaim", "name": "JoinedData", "namespace": null, "tokenFormat": [ "jwt" ], "samlAttributeNameFormat": null, "configurations": [ { "condition": null, "attribute": null, "transformations": [ { "@odata.type": "#microsoft.graph.joinTransformation", "separator": "-", "input": { "treatAsMultiValue": false, "attribute": { "@odata.type": "#microsoft.graph.sourcedAttribute", "id": "extensionattribute1", "source": "user", "isExtensionAttribute": false } }, "input2": { "treatAsMultiValue": false, "attribute": { "@odata.type":"#microsoft.graph.valueBasedAttribute", "value": "ext" } } } ] } ] } ] }
Remarque
La stratégie de revendications personnalisées est une stratégie fortement typée et chaque transformation utilise une valeur
@odata.type
différente.Pour voir votre nouvelle stratégie, et pour obtenir la stratégie
ObjectId
, exécutez la commande suivante :GET https://graph.microsoft.com/beta/servicePrincipals/<servicePrincipal-id>/claimsPolicy
Réponse :
{ "@odata.context": "…", "id": "aaaaaaaa-bbbb-cccc-1111-222222222222", "includeBasicClaimSet": true, "includeApplicationIdInIssuer": false, "audienceOverride": null, "groupFilter": null, "claims": [...] }
Contenu connexe
- En savoir plus sur les différences entre les stratégies dans Personnalisation des revendications à l’aide d’une stratégie
- Connexions des identités Microsoft Graph