unifiedRoleDefinition : assignedPrincipals

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Obtenez la liste des principaux de sécurité (utilisateurs, groupes et principaux de service) qui sont affectés à un rôle spécifique pour différentes étendues directement ou transitivement. Vous pouvez également utiliser le $count paramètre de requête pour obtenir le nombre.

Pour répertorier les attributions de rôles directes et transitives pour un principal spécifique, utilisez l’API List transitiveRoleAssignments .

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) RoleManagement.Read.Directory Directory.Read.All, RoleManagement.ReadWrite.Directory
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application RoleManagement.Read.Directory Directory.Read.All, RoleManagement.ReadWrite.Directory

Si l’appelant n’a pas l’autorisation de lire les propriétés de certains des objets inclus dans le jeu de résultats, la réponse suit le modèle d’informations limitées retournées pour les objets membres inaccessibles .

Pour lire les propriétés qui peuvent nécessiter des autorisations pour l’objet, accordez-lui les autorisations nécessaires pour récupérer des informations sur l’objet. Pour plus d’informations, consultez Autorisations pour les utilisateurs, lesgroupes et les principaux de service.

Requête HTTP

GET /roleManagement/directory/roleDefinitions/{unifiedRoleDefinitionId}/assignedPrincipals(transitive=@transitive,directoryScopeType='@directoryScopeType',directoryScopeId='@directoryScopeId')

Paramètres de fonction

Dans l’URL de la demande, indiquez les paramètres de requête suivants avec leurs valeurs. Le tableau suivant indique les paramètres qui peuvent être utilisés avec cette fonction.

Paramètre Type Description
Transitive Valeur booléenne Indique s’il faut inclure les principaux attribués via l’appartenance au groupe (directe ou transitive). false par défaut.
directoryScopeType Chaîne Étendue de répertoire pour laquelle obtenir des principaux attribués. Les valeurs prises en charge sont tenant, administrativeUnitet resource.
directoryScopeId Chaîne ID de l’étendue du répertoire pour lequel obtenir des principaux attribués. Par défaut, toutes les étendues sont prises en compte.

Vous pouvez également combiner tous les paramètres de fonction pris en charge dans une requête pour obtenir des résultats affinés.

Exemples de modèles de requête pour directoryScopeType

Portée Requête Pris en charge pour
Toutes les étendues /assignedPrincipals(transitive={true | false}) Tous les rôles
Étendue du locataire /assignedPrincipals(directoryScopeType='tenant', transitive={true | false}) Tous les rôles
Toutes les étendues d’unité administrative /assignedPrincipals(directoryScopeType='administrativeUnit', transitive={true | false}) Rôles d’annuaire
Étendue d’unité administrative spécifique /assignedPrincipals(directoryScopeType='administrativeUnit', directoryScopeId ='{roleDefinitionId | templateId}', transitive={true | false}) Rôles d’annuaire
Toutes les étendues de ressources /assignedPrincipals(directoryScopeType='resource', transitive={true | false}) Rôles d’annuaire
Étendue de ressource spécifique /assignedPrincipals(directoryScopeType='resource', directoryScopeId ='{roleDefinitionId | templateId}', transitive={true | false}) Rôles d’annuaire

Paramètres facultatifs de la requête

Cette méthode prend en charge les $countparamètres de requête , $select, $filteret $orderby OData pour vous aider à personnaliser la réponse. Vous pouvez également filtrer par type d’objet à l’aide du cast OData. Par exemple, /assignedPrincipals(transitive=false)/microsoft.graph.user et /assignedPrincipals(transitive=true)/microsoft.graph.servicePrincipal/$count. Pour des informations générales, consultez paramètres de la requête OData.

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
ConsistencyLevel éventuellement. Obligatoire. Pour plus d’informations sur l’utilisation de ConsistencyLevel, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.

Corps de la demande

N’indiquez pas le corps de la demande pour cette méthode.

Réponse

Si elle réussit, cette fonction renvoie un 200 OK code de réponse et une collection directoryObject dans le corps de la réponse.

Exemples

Pour les exemples de cette section, envisagez le scénario d’attribution de rôle suivant. Un utilisateur nommé User1 a des attributions de rôles directes et transitives comme suit :

Utilisateur Groupe Role Portée
Utilisateur1
6c62e70d-f5f5-4b9d-9eea-ed517ed9341f
Rôle1 Étendue1
Utilisateur1
6c62e70d-f5f5-4b9d-9eea-ed517ed9341f
Rôle1 Étendue2
Groupe1
86b38db7-6e8b-4ad2-b2aa-ced7f09486c1
(User1 est membre)
Rôle1 Étendue1
Groupe2
182351a6-d974-4d18-88ae-8a148da44cd2
(User1 est membre)
Rôle1 Étendue1
Groupe3
b93d5379-a464-4db5-b8e1-694910f1e11e
(User2 est membre)
(Utilisateur3 est membre)
Rôle1 Étendue3
  • Le rôle Role1 est attribué directement à l’utilisateur1 au niveau de l’étendue Étendue1.
  • Le rôle Role1 est attribué directement à l’utilisateur1 au niveau de l’étendue Étendue2.
  • User1 est membre du groupe Group1 et Group1 se voit attribuer le rôle Role1 au niveau de l’étendue Étendue1.
  • User1 est membre du groupe Group2 et Group2 se voit attribuer le rôle Role1 au niveau de l’étendue Étendue1.
  • User2 est membre du groupe Group3 et Group3 se voit attribuer le rôle Role1 dans l’étendue Étendue3.
  • User3 est membre du groupe Group3 et Group3 se voit attribuer le rôle Role1 au niveau de l’étendue Étendue3.

Exemple 1 : Obtenir le nombre de principaux affectés directs et transitifs pour toutes les étendues

Demande

GET https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/644ef478-e28f-4e28-b9dc-3fdde9aa0b1f/assignedPrincipals(transitive=true)/$count

Réponse

La requête ci-dessus retourne un nombre de 6 représentant les attributions de rôles suivantes :

  • Deux attributions de rôles directes à l’utilisateur1 au niveau de l’étendue1 et de l’étendue2
  • Deux attributions de rôles transitives à User1 à Group1 et Group2
  • Deux attributions de rôles transitives à User 2 et User3 via Group3.
HTTP/1.1 200 OK
Content-type: text/plain

6

Selon le même scénario, les exemples suivants montrent les nombres retournés pour chaque modèle de requête :

Exemple Count
/assignedPrincipals(transitive=false)/$count 4
(Utilisateur1, Groupe1, Groupe2, Groupe3)
/assignedPrincipals(transitive=false)/microsoft.graph.user/$count 1
(Utilisateur1)
/assignedPrincipals(transitive=true)/microsoft.graph.user/$count 3
(Utilisateur1, Utilisateur2, Utilisateur3)
/assignedPrincipals(transitive=false)/microsoft.graph.group/$count 3
(Groupe1, Groupe2, Groupe3)
/assignedPrincipals(transitive=true)/microsoft.graph.group/$count 3
(Groupe1, Groupe2, Groupe3)

Exemple 2 : Obtenir des principaux directement attribués pour une étendue d’unité administrative et un rôle d’annuaire spécifiques

Demande

GET https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/644ef478-e28f-4e28-b9dc-3fdde9aa0b1f/assignedPrincipals(directoryScopeType='administrativeUnit', directoryScopeId ='d0c2e067-9ae9-4dbf-a280-51a51c46f432')

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#directoryObjects",
  "value": [
    {
        "@odata.type": "#microsoft.graph.user",
        "id": "6c62e70d-f5f5-4b9d-9eea-ed517ed9341f"
    }
  ]
}

Exemple 3 : Obtenir des principaux directement attribués pour toutes les étendues

Demande

GET https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/644ef478-e28f-4e28-b9dc-3fdde9aa0b1f/assignedPrincipals

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#directoryObjects",
  "value": [
    {
        "@odata.type": "#microsoft.graph.user",
        "id": "6c62e70d-f5f5-4b9d-9eea-ed517ed9341f",
        "displayName": null,
        "userPrincipalName": null
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "86b38db7-6e8b-4ad2-b2aa-ced7f09486c1",
        "displayName": "Group1"
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "182351a6-d974-4d18-88ae-8a148da44cd2",
        "displayName": "Group2"
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "b93d5379-a464-4db5-b8e1-694910f1e11e",
        "displayName": "Group3"
    }
  ]
}

Exemple 4 : Obtenir des utilisateurs directement affectés uniquement pour une étendue à l’échelle du locataire

Demande

GET https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/644ef478-e28f-4e28-b9dc-3fdde9aa0b1f/assignedPrincipals(directoryScopeType='tenant')/microsoft.graph.user

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users",
  "value": [
    {
        "id": "6c62e70d-f5f5-4b9d-9eea-ed517ed9341f",
        "displayName": null,
        "userPrincipalName": null
    }
  ]
}

Exemple 5 : Obtenir des principaux et un nombre inline attribués directement

L’exemple suivant obtient les principaux directement attribués et affiche un nombre inline.

Demande

GET https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions/644ef478-e28f-4e28-b9dc-3fdde9aa0b1f/assignedPrincipals?$count=true

Réponse

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#directoryObjects",
  "@odata.count": 4,
  "value": [
    {
        "@odata.type": "#microsoft.graph.user",
        "id": "6c62e70d-f5f5-4b9d-9eea-ed517ed9341f",
        "displayName": null,
        "userPrincipalName": null
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "86b38db7-6e8b-4ad2-b2aa-ced7f09486c1",
        "displayName": "Group1"
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "182351a6-d974-4d18-88ae-8a148da44cd2",
        "displayName": "Group2"
    },
    {
        "@odata.type": "#microsoft.graph.group",
        "id": "b93d5379-a464-4db5-b8e1-694910f1e11e",
        "displayName": "Group3"
    }
  ]
}