Partager via


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

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 :

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.

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é.

  1. 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.

  2. 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
    }
    
  3. 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.

  1. 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.

  2. 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": []
                    }
                ]
            }
        ]
    }
    
  3. 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.

  1. 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.

  2. 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.

  3. 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": [...]
    }