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.
Cette API est prise en charge uniquement pour le fournisseur d’annuaires (Microsoft Entra ID).
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 |
Importante
Dans les scénarios délégués avec des comptes professionnels ou scolaires, l’utilisateur connecté doit se voir attribuer un rôle Microsoft Entra pris en charge ou un rôle personnalisé avec une autorisation de rôle prise en charge. Les rôles les moins privilégiés suivants sont pris en charge pour cette opération :
- Lecteurs d’annuaire
- Lecteur général
- Administrateur de rôle privilégié
Importante
Lorsqu’une application interroge une relation qui retourne une collection de types directoryObject , si elle n’a pas l’autorisation de lire un certain type de ressource, les membres de ce type sont retournés, mais avec des informations limitées. Par exemple, seule la propriété @odata.type pour le type d’objet et l’ID est retournée, tandis que les autres propriétés sont indiquées comme null
. Avec ce comportement, les applications peuvent demander les autorisations les moins privilégiées dont elles ont besoin, plutôt que de s’appuyer sur l’ensemble de Répertoire.*Autorisations. Pour plus d’informations, consultez Informations limitées retournées pour les objets membres inaccessibles.
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 |
---|---|---|
transitif | Boolean | Indique s’il faut inclure les principaux attribués via l’appartenance au groupe (directe ou transitive).
false par défaut. |
directoryScopeType | String | Étendue de répertoire pour laquelle obtenir des principaux attribués. Les valeurs prises en charge sont tenant , administrativeUnit et resource . |
directoryScopeId | String | 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 $count
paramètres de requête , $select
, $filter
et $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 |
---|---|---|---|
Utilisateur16c62e70d-f5f5-4b9d-9eea-ed517ed9341f |
Rôle1 | Étendue1 | |
Utilisateur16c62e70d-f5f5-4b9d-9eea-ed517ed9341f |
Rôle1 | Étendue2 | |
Groupe186b38db7-6e8b-4ad2-b2aa-ced7f09486c1 (User1 est membre) |
Rôle1 | Étendue1 | |
Groupe2182351a6-d974-4d18-88ae-8a148da44cd2 (User1 est membre) |
Rôle1 | Étendue1 | |
Groupe3b93d5379-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"
}
]
}