Gérer les attributions d’attributs de sécurité personnalisées

Les attributs de sécurité personnalisés dans Microsoft Entra ID sont des attributs spécifiques à l’entreprise (paires clé-valeur) que vous pouvez définir et affecter à Microsoft Entra objets. Ces attributs peuvent être utilisés pour stocker des informations, catégoriser des objets ou appliquer un contrôle d’accès affiné sur des ressources Azure spécifiques via le contrôle d’accès basé sur les attributs Azure (Azure ABAC).

Les attributs de sécurité personnalisés sont pris en charge uniquement pour les utilisateurs et les principaux de service. Cet article fournit des exemples d’affectation, de mise à jour, de liste ou de suppression de différents types d’attributs de sécurité personnalisés pour les utilisateurs et les applications à l’aide de Microsoft Graph.

Configuration requise

Attribuer des attributs de sécurité personnalisés

Exemple 1 : Attribuer un attribut de sécurité personnalisé avec une valeur de chaîne à un utilisateur

L’exemple suivant montre comment utiliser l’API Update user pour affecter un attribut de sécurité personnalisé avec une valeur de chaîne à un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : ProjectDate
  • Type de données d’attribut : chaîne
  • Valeur d’attribut : "2022-10-01"

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":"2022-10-01"
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 2 : attribuer un attribut de sécurité personnalisé avec une valeur de chaîne à un principal du service

L’exemple suivant montre comment utiliser l’API Update servicePrincipal pour affecter un attribut de sécurité personnalisé avec une valeur de chaîne à un principal de service.

  • Jeu d’attributs : Engineering
  • Attribut : ProjectDate
  • Type de données d’attribut : chaîne
  • Valeur d’attribut : "2022-10-01"

Demande

PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":"2022-10-01"
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 3 : Attribuer un attribut de sécurité personnalisé avec une valeur multi-chaîne à un utilisateur

L’exemple suivant montre comment utiliser l’API d’utilisateur Mettre à jour pour affecter un attribut de sécurité personnalisé avec une valeur multi-chaîne à un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : Project
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["Baker","Cascade"]

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Project@odata.type":"#Collection(String)",
            "Project":["Baker","Cascade"]
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 4 : Affecter un attribut de sécurité personnalisé avec une valeur entière à un utilisateur

L’exemple suivant montre comment utiliser l’API Update user pour affecter un attribut de sécurité personnalisé avec une valeur entière à un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : NumVendors
  • Type de données d’attribut : Integer
  • Valeur d’attribut : 4

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "NumVendors@odata.type":"#Int32",
            "NumVendors":4
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 5 : Affecter un attribut de sécurité personnalisé avec une valeur multi-entier à un utilisateur

L’exemple suivant montre comment utiliser l’API d’utilisateur Mettre à jour pour affecter un attribut de sécurité personnalisé avec une valeur multi-entier à un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : CostCenter
  • Type de données d’attribut : collection de nombres entiers
  • Valeur d’attribut : [1001,1003]

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "CostCenter@odata.type":"#Collection(Int32)",
            "CostCenter":[1001,1003]
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 6 : Affecter un attribut de sécurité personnalisé avec une valeur booléenne à un utilisateur

L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour affecter un attribut de sécurité personnalisé avec une valeur booléenne à un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : Certification
  • Type de données d’attribut : booléen
  • Valeur d’attribut : true

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Certification":true
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Mettre à jour les attributions d’attributs de sécurité personnalisées

Exemple 1 : Mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur entière pour un utilisateur

L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur entière pour un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : NumVendors
  • Type de données d’attribut : Integer
  • Valeur d’attribut : 8

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "NumVendors@odata.type":"#Int32",
            "NumVendors":8
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 2 : Mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur booléenne pour un utilisateur

L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour mettre à jour une attribution d’attribut de sécurité personnalisée avec une valeur booléenne pour un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : Certification
  • Type de données d’attribut : booléen
  • Valeur d’attribut : false

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Certification":false
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Répertorier les attributions d’attributs de sécurité personnalisées

Exemple 1 : Obtenir les attributions d’attributs de sécurité personnalisées pour un utilisateur

L’exemple suivant montre comment utiliser l’API Get user pour obtenir les attributions d’attributs de sécurité personnalisées pour un utilisateur.

Attribut #1

  • Jeu d’attributs : Engineering
  • Attribut : Project
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["Baker","Cascade"]

Attribut #2

  • Jeu d’attributs : Engineering
  • Attribut : CostCenter
  • Type de données d’attribut : collection de nombres entiers
  • Valeur d’attribut : [1001]

Attribut #3

  • Jeu d’attributs : Engineering
  • Attribut : Certification
  • Type de données d’attribut : booléen
  • Valeur d’attribut : true

Attribut #4

  • Jeu d’attributs : Marketing
  • Attribut : EmployeeId
  • Type de données d’attribut : chaîne
  • Valeur d’attribut : "QN26904"

Demande

GET https://graph.microsoft.com/v1.0/users/{id}?$select=customSecurityAttributes

Réponse

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
    "customSecurityAttributes": {
        "Marketing": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "EmployeeId": "QN26904"
        },
        "Engineering": {
            "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
            "Project@odata.type": "#Collection(String)",
            "Project": [
                "Baker",
                "Cascade"
            ],
            "CostCenter@odata.type": "#Collection(Int32)",
            "CostCenter": [
                1001
            ],
            "Certification": true
        }
    }
}

Si aucun attribut de sécurité personnalisé n’est attribué à l’utilisateur du service ou si le principal appelant n’a pas d’accès, la réponse ressemble à :

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(customSecurityAttributes)/$entity",
    "customSecurityAttributes": null
}

Exemple 2 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur

L’exemple suivant montre comment utiliser l’API Répertorier les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui est égale à une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé AppCountry avec une valeur égale Canadaà . La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.

Utilisateur n°1

  • Jeu d’attributs : Marketing
  • Attribut : AppCountry
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["India","Canada"]

Utilisateur n°2

  • Jeu d’attributs : Marketing
  • Attribut : AppCountry
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["Canada","Mexico"]

Demande

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada'
ConsistencyLevel: eventual

Réponse

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 2,
    "value": [
        {
            "id": "dbaf3778-4f81-4ea0-ac1c-502a293c12ac",
            "displayName": "Jiya",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Datacenter@odata.type": "#Collection(String)",
                    "Datacenter": [
                        "India"
                    ]
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "India",
                        "Canada"
                    ],
                    "EmployeeId": "KX19476"
                }
            }
        },
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Exemple 3 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui commence par une valeur

L’exemple suivant montre comment utiliser l’API Répertorier les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui commence par une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé EmployeeId avec une valeur qui commence par GS. La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.

Utilisateur n°1

  • Jeu d’attributs : Marketing
  • Attribut : EmployeeId
  • Type de données d’attribut : chaîne
  • Valeur d’attribut : "KX19476"

Utilisateur n°2

  • Jeu d’attributs : Marketing
  • Attribut : EmployeeId
  • Type de données d’attribut : chaîne
  • Valeur d’attribut : "GS46982"

Demande

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')
ConsistencyLevel: eventual

Réponse

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 1,
    "value": [
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

Exemple 4 : Répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui n’est pas égale à une valeur

L’exemple suivant montre comment utiliser l’API Lister les utilisateurs pour répertorier tous les utilisateurs avec une attribution d’attribut de sécurité personnalisée qui n’est pas égale à une valeur. L’exemple récupère les utilisateurs avec un attribut de sécurité personnalisé nommé AppCountry avec une valeur qui n’est pas égale Canadaà . La valeur du filtre respecte la casse. Vous devez ajouter ConsistencyLevel=eventual dans la requête ou l’en-tête. Vous devez également inclure $count=true pour vous assurer que la demande est correctement routée.

Utilisateur n°1

  • Jeu d’attributs : Marketing
  • Attribut : AppCountry
  • Type de données d’attribut : collection de chaînes
  • Valeur d’attribut : ["France"]

Tous les autres utilisateurs

  • AppCountry attribut non ajouté

Demande

GET https://graph.microsoft.com/v1.0/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry ne 'Canada'
ConsistencyLevel: eventual

Réponse

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 32,
    "value": [
        {
            "id": "c4f9ecd3-d3c1-4544-b49a-bc9bb62beb67",
            "displayName": "Alain",
            "customSecurityAttributes": null
        },
        {
            "id": "de4f1218-b0fb-4449-b3a0-1e1dd193e6e7",
            "displayName": "Joe",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Project3@odata.type": "#Collection(String)",
                    "Project3": [
                        "Baker",
                        "Cascade"
                    ],
                    "CostCenter@odata.type": "#Collection(Int32)",
                    "CostCenter": [
                        1001
                    ],
                    "Certification": true
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "EmployeeId": "QN26904"
                }
            }
        },
        {
            "id": "f24d1474-ded5-432d-be08-8abd39921aac",
            "displayName": "Isabella",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "France"
                    ]
                }
            }
        },
        {
            "id": "849e81fe-1109-4d57-9536-a25d537eec1f",
            "displayName": "Dara",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "ProjectDate": "2023-04-12"
                }
            }
        },
        {
            "id": "42c88239-db99-45f0-85af-cbb6c8acb2a3",
            "displayName": "Chandra",
            "customSecurityAttributes": null
        }
    ]
}

Supprimer les attributions d’attributs de sécurité personnalisées

Exemple 1 : Supprimer d’un utilisateur une attribution d’attribut de sécurité personnalisé à valeur unique

L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour supprimer une attribution d’attribut de sécurité personnalisée qui prend en charge une valeur unique d’un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : ProjectDate
  • Valeur d’attribut : null

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "ProjectDate":null
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Exemple 2 : Supprimer une attribution d’attribut de sécurité personnalisé à valeurs multiples d’un utilisateur

L’exemple suivant montre comment utiliser l’API Mettre à jour l’utilisateur pour supprimer une attribution d’attribut de sécurité personnalisée qui prend en charge plusieurs valeurs d’un utilisateur.

  • Jeu d’attributs : Engineering
  • Attribut : Project
  • Valeur d’attribut : []

Demande

PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json

{
    "customSecurityAttributes":
    {
        "Engineering":
        {
            "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
            "Project":[]
        }
    }
}

Réponse

HTTP/1.1 204 No Content

Étape suivante