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 objets unifiedRoleAssignment directs et transitifs pour un principal spécifique. Par exemple, si un utilisateur se voit attribuer un rôle Microsoft Entra par le biais de l’appartenance au groupe, l’attribution de rôle est transitive et cette demande répertorie l’ID du groupe en tant que principalId. Les résultats peuvent également être filtrés par roleDefinitionId et directoryScopeId. Pris en charge uniquement pour le fournisseur d’annuaire (Microsoft Entra ID).
Pour répertorier les attributions de rôles transitives pour un fournisseur d’annuaires :
GET /roleManagement/directory/transitiveRoleAssignments?$filter=principalId eq '{principalId}'
Paramètres de requête
Cette méthode nécessite le $filter paramètre de requête OData (eq) pour étendre les attributions de rôles transitives à un principal. Vous pouvez limiter l’étendue de la requête en développant le filtre à d’autres propriétés prises en charge. Cette méthode prend également en charge les $count paramètres de requête OData et $select pour vous aider à personnaliser la réponse. Pour des informations générales, consultez paramètres de la requête OData.
N’indiquez pas le corps de la demande pour cette méthode.
Réponse
Si elle réussit, cette méthode renvoie un 200 OK code de réponse et une collection d’objets unifiedRoleAssignment dans le corps de la réponse.
Si votre requête n’inclut pas l’en-tête ConsistencyLevel défini sur eventual, cette méthode retourne 404 Not Found le code de réponse.
Exemples
Pour les exemples de cette section, envisagez le scénario d’attribution de rôle suivant. Un utilisateur nommé Alice a des attributions de rôles directes et transitives comme suit :
Alice se voit attribuer le rôle Administrateur d’utilisateurs directement au niveau de l’étendue du locataire avec attribution de rôle RA1.
Alice est membre d’un groupe G1 et G1 se voit attribuer le rôle Administrateur d’utilisateurs dans l’étendue du locataire avec attribution de rôle RA2.
Alice est également membre du groupe G2 et G2 se voit attribuer le rôle Administrateur du support technique dans une étendue AU1 d’unité administrative avec attribution de rôle RA3.
Exemple 1 : Obtenir des attributions de rôles directes et transitives d’un principal
Demande
L’exemple suivant illustre une demande. Cette requête nécessite que l’en-tête ConsistencyLevel soit défini sur eventual et les paramètres de $count=true requête et $filter . Pour plus d’informations sur l’utilisation de ConsistencyLevel, $count, et $filter, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.
GET https://graph.microsoft.com/beta/roleManagement/directory/transitiveRoleAssignments?$count=true&$filter=principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516'
ConsistencyLevel: eventual
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.RoleManagement.Directory.TransitiveRoleAssignments.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516'";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta role-management directory transitive-role-assignments list --filter "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516'" --count "true" --consistency-level "eventual"
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleAssignmentCollectionResponse result = graphClient.roleManagement().directory().transitiveRoleAssignments().get(requestConfiguration -> {
requestConfiguration.queryParameters.count = true;
requestConfiguration.queryParameters.filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516'";
requestConfiguration.headers.add("ConsistencyLevel", "eventual");
});
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont renvoyées à partir d’un appel réel.
Exemple 2 : Obtenir des affectations directes et transitives d’un principal, mais uniquement des définitions de rôle spécifiques
Demande
L’exemple suivant illustre une demande. Cette requête nécessite que l’en-tête ConsistencyLevel soit défini sur eventual et les paramètres de $count=true requête et $filter . Pour plus d’informations sur l’utilisation de ConsistencyLevel, $count, et $filter, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.
GET https://graph.microsoft.com/beta/roleManagement/directory/transitiveRoleAssignments?$count=true&$filter=principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and roleDefinitionId eq 'fe930be7-5e62-47db-91af-98c3a49a38b1'
ConsistencyLevel: eventual
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.RoleManagement.Directory.TransitiveRoleAssignments.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and roleDefinitionId eq 'fe930be7-5e62-47db-91af-98c3a49a38b1'";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta role-management directory transitive-role-assignments list --filter "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and roleDefinitionId eq 'fe930be7-5e62-47db-91af-98c3a49a38b1'" --count "true" --consistency-level "eventual"
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleAssignmentCollectionResponse result = graphClient.roleManagement().directory().transitiveRoleAssignments().get(requestConfiguration -> {
requestConfiguration.queryParameters.count = true;
requestConfiguration.queryParameters.filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and roleDefinitionId eq 'fe930be7-5e62-47db-91af-98c3a49a38b1'";
requestConfiguration.headers.add("ConsistencyLevel", "eventual");
});
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont renvoyées à partir d’un appel réel.
Exemple 3 : Obtenir des attributions de rôles directes et transitives d’un principal, mais uniquement une unité administrative délimitée
Demande
L’exemple suivant illustre une demande. Cette requête nécessite que l’en-tête ConsistencyLevel soit défini sur eventual et les paramètres de $count=true requête et $filter . Pour plus d’informations sur l’utilisation de ConsistencyLevel, $count, et $filter, consultez Fonctionnalités de requête avancées sur les objets d’annuaire.
GET https://graph.microsoft.com/beta/roleManagement/directory/transitiveRoleAssignments?$count=true&$filter=principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and directoryScopeId eq '/administrativeUnits/26e79164-0c5c-4281-8c5b-be7bc7809fb2'
ConsistencyLevel: eventual
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.RoleManagement.Directory.TransitiveRoleAssignments.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Count = true;
requestConfiguration.QueryParameters.Filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and directoryScopeId eq '/administrativeUnits/26e79164-0c5c-4281-8c5b-be7bc7809fb2'";
requestConfiguration.Headers.Add("ConsistencyLevel", "eventual");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta role-management directory transitive-role-assignments list --filter "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and directoryScopeId eq '/administrativeUnits/26e79164-0c5c-4281-8c5b-be7bc7809fb2'" --count "true" --consistency-level "eventual"
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleAssignmentCollectionResponse result = graphClient.roleManagement().directory().transitiveRoleAssignments().get(requestConfiguration -> {
requestConfiguration.queryParameters.count = true;
requestConfiguration.queryParameters.filter = "principalId eq '2c7936bc-3517-40f3-8eda-4806637b6516' and directoryScopeId eq '/administrativeUnits/26e79164-0c5c-4281-8c5b-be7bc7809fb2'";
requestConfiguration.headers.add("ConsistencyLevel", "eventual");
});
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité. Toutes les propriétés sont renvoyées à partir d’un appel réel.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez https://aka.ms/ContentUserFeedback.