Dans PIM, demandez l’éligibilité à un rôle pour un principal via l’objet unifiedRoleEligibilityScheduleRequest . Cette opération permet aux administrateurs et aux utilisateurs éligibles d’ajouter, de révoquer ou d’étendre des affectations éligibles.
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.
Pour les opérations de lecture : Lecteur général, Opérateur de sécurité, Lecteur de sécurité, Administrateur de la sécurité ou Administrateur de rôle privilégié
Pour les opérations d’écriture : Administrateur de rôle privilégié
Requête HTTP
POST /roleManagement/directory/roleEligibilityScheduleRequests
Vous pouvez spécifier les propriétés suivantes lors de la création d’un unifiedRoleEligibilityScheduleRequest.
Propriété
Type
Description
action
unifiedRoleScheduleRequestActions
Représente le type d’opération sur la demande d’éligibilité au rôle. Les valeurs possibles sont , adminAssign, adminUpdate, adminRemoveselfActivate, , selfDeactivateadminExtend, adminRenew, selfExtend, , selfRenew. unknownFutureValue
adminAssign: pour que les administrateurs attribuent des rôles éligibles aux principaux.
adminRemove: pour que les administrateurs suppriment les rôles éligibles des principaux.
adminUpdate: pour que les administrateurs modifient les éligibilités aux rôles existants.
adminExtend: pour que les administrateurs étendent les éligibilités aux rôles arrivant à expiration.
adminRenew: pour que les administrateurs renouvellent les éligibilités expirées.
selfActivate: pour que les utilisateurs activent leurs affectations.
selfDeactivate: pour que les utilisateurs désactivent leurs affectations actives.
selfExtend: pour que les utilisateurs demandent d’étendre leurs affectations arrivant à expiration.
SelfRenew: pour que les utilisateurs demandent de renouveler leurs affectations expirées.
appScopeId
String
Identificateur de l’étendue spécifique à l’application lorsque l’éligibilité au rôle est limitée à une application. L’étendue de l’éligibilité d’un rôle détermine l’ensemble des ressources auxquelles le principal est éligible. Les étendues d’application sont des étendues définies et comprises par cette application uniquement. Utilisez / pour les étendues d’application à l’échelle du locataire. Utilisez directoryScopeId pour limiter l’étendue à des objets d’annuaire particuliers, par exemple des unités administratives.
directoryScopeId ou appScopeId est requis.
directoryScopeId
String
Identificateur de l’objet directory représentant l’étendue de l’éligibilité au rôle. L’étendue d’un rôle éligible détermine l’ensemble des ressources pour lesquelles le principal a reçu l’accès. Les étendues de répertoire sont des étendues partagées stockées dans le répertoire et comprises par plusieurs applications. Utilisez / pour l’étendue à l’échelle du locataire. Utilisez appScopeId pour limiter l’étendue à une application uniquement.
directoryScopeId ou appScopeId est requis.
isValidationOnly
Boolean
Détermine si l’appel est une validation ou un appel réel. Définissez cette propriété uniquement si vous souhaitez case activée si une activation est soumise à des règles supplémentaires telles que l’authentification multifacteur avant d’envoyer réellement la demande. Optional.
justification
String
Message fourni par les utilisateurs et les administrateurs quand ils créent l’objet unifiedRoleEligibilityScheduleRequest .
Facultatif pour selfDeactivate les actions et adminRemove ; peut être facultatif ou requis pour d’autres types d’actions en fonction des règles de la stratégie liée au rôle Microsoft Entra. Pour plus d’informations, consultez Règles dans PIM.
principalId
String
Identificateur du principal auquel l’éligibilité au rôle a été accordée. Obligatoire.
Période d’éligibilité au rôle. Facultatif lorsque l’action a la valeur adminRemove. La période d’éligibilité dépend des paramètres du rôle Microsoft Entra.
Détails du ticket lié à la demande d’éligibilité au rôle, y compris les détails du numéro de ticket et du système de ticket.
Facultatif pour selfDeactivate les actions et adminRemove ; peut être facultatif ou requis pour d’autres types d’actions en fonction des règles de la stratégie liée au rôle Microsoft Entra. Pour plus d’informations, consultez Règles dans PIM.
Réponse
Si elle réussit, cette méthode renvoie un 201 Created code de réponse et un objet unifiedRoleEligibilityScheduleRequest dans le corps de la réponse.
Exemples
Exemple 1 : Administration pour attribuer une demande de planification d’éligibilité de rôle
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new UnifiedRoleEligibilityScheduleRequest
{
Action = UnifiedRoleScheduleRequestActions.AdminAssign,
Justification = "Assign Attribute Assignment Admin eligibility to restricted user",
RoleDefinitionId = "8424c6f0-a189-499e-bbd0-26c1753c96d4",
DirectoryScopeId = "/",
PrincipalId = "071cc716-8147-4397-a5ba-b2105951cc0b",
ScheduleInfo = new RequestSchedule
{
StartDateTime = DateTimeOffset.Parse("2022-04-10T00:00:00Z"),
Expiration = new ExpirationPattern
{
Type = ExpirationPatternType.AfterDateTime,
EndDateTime = DateTimeOffset.Parse("2024-04-10T00:00:00Z"),
},
},
};
// 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.RoleEligibilityScheduleRequests.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleEligibilityScheduleRequest unifiedRoleEligibilityScheduleRequest = new UnifiedRoleEligibilityScheduleRequest();
unifiedRoleEligibilityScheduleRequest.setAction(UnifiedRoleScheduleRequestActions.AdminAssign);
unifiedRoleEligibilityScheduleRequest.setJustification("Assign Attribute Assignment Admin eligibility to restricted user");
unifiedRoleEligibilityScheduleRequest.setRoleDefinitionId("8424c6f0-a189-499e-bbd0-26c1753c96d4");
unifiedRoleEligibilityScheduleRequest.setDirectoryScopeId("/");
unifiedRoleEligibilityScheduleRequest.setPrincipalId("071cc716-8147-4397-a5ba-b2105951cc0b");
RequestSchedule scheduleInfo = new RequestSchedule();
OffsetDateTime startDateTime = OffsetDateTime.parse("2022-04-10T00:00:00Z");
scheduleInfo.setStartDateTime(startDateTime);
ExpirationPattern expiration = new ExpirationPattern();
expiration.setType(ExpirationPatternType.AfterDateTime);
OffsetDateTime endDateTime = OffsetDateTime.parse("2024-04-10T00:00:00Z");
expiration.setEndDateTime(endDateTime);
scheduleInfo.setExpiration(expiration);
unifiedRoleEligibilityScheduleRequest.setScheduleInfo(scheduleInfo);
UnifiedRoleEligibilityScheduleRequest result = graphClient.roleManagement().directory().roleEligibilityScheduleRequests().post(unifiedRoleEligibilityScheduleRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\UnifiedRoleEligibilityScheduleRequest;
use Microsoft\Graph\Generated\Models\UnifiedRoleScheduleRequestActions;
use Microsoft\Graph\Generated\Models\RequestSchedule;
use Microsoft\Graph\Generated\Models\ExpirationPattern;
use Microsoft\Graph\Generated\Models\ExpirationPatternType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UnifiedRoleEligibilityScheduleRequest();
$requestBody->setAction(new UnifiedRoleScheduleRequestActions('adminAssign'));
$requestBody->setJustification('Assign Attribute Assignment Admin eligibility to restricted user');
$requestBody->setRoleDefinitionId('8424c6f0-a189-499e-bbd0-26c1753c96d4');
$requestBody->setDirectoryScopeId('/');
$requestBody->setPrincipalId('071cc716-8147-4397-a5ba-b2105951cc0b');
$scheduleInfo = new RequestSchedule();
$scheduleInfo->setStartDateTime(new \DateTime('2022-04-10T00:00:00Z'));
$scheduleInfoExpiration = new ExpirationPattern();
$scheduleInfoExpiration->setType(new ExpirationPatternType('afterDateTime'));
$scheduleInfoExpiration->setEndDateTime(new \DateTime('2024-04-10T00:00:00Z'));
$scheduleInfo->setExpiration($scheduleInfoExpiration);
$requestBody->setScheduleInfo($scheduleInfo);
$result = $graphServiceClient->roleManagement()->directory()->roleEligibilityScheduleRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.unified_role_eligibility_schedule_request import UnifiedRoleEligibilityScheduleRequest
from msgraph.generated.models.unified_role_schedule_request_actions import UnifiedRoleScheduleRequestActions
from msgraph.generated.models.request_schedule import RequestSchedule
from msgraph.generated.models.expiration_pattern import ExpirationPattern
from msgraph.generated.models.expiration_pattern_type import ExpirationPatternType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = UnifiedRoleEligibilityScheduleRequest(
action = UnifiedRoleScheduleRequestActions.AdminAssign,
justification = "Assign Attribute Assignment Admin eligibility to restricted user",
role_definition_id = "8424c6f0-a189-499e-bbd0-26c1753c96d4",
directory_scope_id = "/",
principal_id = "071cc716-8147-4397-a5ba-b2105951cc0b",
schedule_info = RequestSchedule(
start_date_time = "2022-04-10T00:00:00Z",
expiration = ExpirationPattern(
type = ExpirationPatternType.AfterDateTime,
end_date_time = "2024-04-10T00:00:00Z",
),
),
)
result = await graph_client.role_management.directory.role_eligibility_schedule_requests.post(request_body)
Exemple 2 : Administration pour supprimer une demande de planification d’éligibilité de rôle existante
Dans la requête suivante, l’administrateur crée une demande pour révoquer l’éligibilité d’un principal avec l’ID 071cc716-8147-4397-a5ba-b2105951cc0b à un rôle avec l’ID 8424c6f0-a189-499e-bbd0-26c1753c96d4.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new UnifiedRoleEligibilityScheduleRequest
{
Action = UnifiedRoleScheduleRequestActions.AdminRemove,
RoleDefinitionId = "8424c6f0-a189-499e-bbd0-26c1753c96d4",
DirectoryScopeId = "/",
PrincipalId = "071cc716-8147-4397-a5ba-b2105951cc0b",
};
// 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.RoleEligibilityScheduleRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUnifiedRoleEligibilityScheduleRequest()
action := graphmodels.ADMINREMOVE_UNIFIEDROLESCHEDULEREQUESTACTIONS
requestBody.SetAction(&action)
roleDefinitionId := "8424c6f0-a189-499e-bbd0-26c1753c96d4"
requestBody.SetRoleDefinitionId(&roleDefinitionId)
directoryScopeId := "/"
requestBody.SetDirectoryScopeId(&directoryScopeId)
principalId := "071cc716-8147-4397-a5ba-b2105951cc0b"
requestBody.SetPrincipalId(&principalId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
roleEligibilityScheduleRequests, err := graphClient.RoleManagement().Directory().RoleEligibilityScheduleRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleEligibilityScheduleRequest unifiedRoleEligibilityScheduleRequest = new UnifiedRoleEligibilityScheduleRequest();
unifiedRoleEligibilityScheduleRequest.setAction(UnifiedRoleScheduleRequestActions.AdminRemove);
unifiedRoleEligibilityScheduleRequest.setRoleDefinitionId("8424c6f0-a189-499e-bbd0-26c1753c96d4");
unifiedRoleEligibilityScheduleRequest.setDirectoryScopeId("/");
unifiedRoleEligibilityScheduleRequest.setPrincipalId("071cc716-8147-4397-a5ba-b2105951cc0b");
UnifiedRoleEligibilityScheduleRequest result = graphClient.roleManagement().directory().roleEligibilityScheduleRequests().post(unifiedRoleEligibilityScheduleRequest);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\UnifiedRoleEligibilityScheduleRequest;
use Microsoft\Graph\Generated\Models\UnifiedRoleScheduleRequestActions;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UnifiedRoleEligibilityScheduleRequest();
$requestBody->setAction(new UnifiedRoleScheduleRequestActions('adminRemove'));
$requestBody->setRoleDefinitionId('8424c6f0-a189-499e-bbd0-26c1753c96d4');
$requestBody->setDirectoryScopeId('/');
$requestBody->setPrincipalId('071cc716-8147-4397-a5ba-b2105951cc0b');
$result = $graphServiceClient->roleManagement()->directory()->roleEligibilityScheduleRequests()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.unified_role_eligibility_schedule_request import UnifiedRoleEligibilityScheduleRequest
from msgraph.generated.models.unified_role_schedule_request_actions import UnifiedRoleScheduleRequestActions
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = UnifiedRoleEligibilityScheduleRequest(
action = UnifiedRoleScheduleRequestActions.AdminRemove,
role_definition_id = "8424c6f0-a189-499e-bbd0-26c1753c96d4",
directory_scope_id = "/",
principal_id = "071cc716-8147-4397-a5ba-b2105951cc0b",
)
result = await graph_client.role_management.directory.role_eligibility_schedule_requests.post(request_body)
L’exemple suivant illustre la réponse. L’objet response indique que l’éligibilité d’un rôle précédent pour un principal est Revoked. Le principal ne verra plus son rôle précédemment éligible.
Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.