Fordern Sie in PIM über das unifiedRoleEligibilityScheduleRequest-Objekt eine Rollenberechtigung für einen Prinzipal an. Mit diesem Vorgang können sowohl Administratoren als auch berechtigte Benutzer berechtigte Zuweisungen hinzufügen, widerrufen oder erweitern.
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
Berechtigungstyp
Berechtigungen mit den geringsten Berechtigungen
Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto)
RoleEligibilitySchedule.ReadWrite.Directory
RoleManagement.ReadWrite.Directory
Delegiert (persönliches Microsoft-Konto)
Nicht unterstützt
Nicht unterstützt
Anwendung
RoleEligibilitySchedule.ReadWrite.Directory
RoleManagement.ReadWrite.Directory
Wichtig
In delegierten Szenarien mit Geschäfts-, Schul- oder Unikonten muss dem angemeldeten Benutzer eine unterstützte Microsoft Entra Rolle oder eine benutzerdefinierte Rolle mit einer unterstützten Rollenberechtigung zugewiesen werden. Die folgenden Rollen mit den geringsten Berechtigungen werden für diesen Vorgang unterstützt.
Für Lesevorgänge: Globaler Leser, Sicherheitsoperator, Sicherheitsleseberechtigter, Sicherheitsadministrator oder Administrator für privilegierte Rollen
Für Schreibvorgänge: Administrator für privilegierte Rollen
HTTP-Anforderung
POST /roleManagement/directory/roleEligibilityScheduleRequests
Sie können die folgenden Eigenschaften angeben, wenn Sie eine unifiedRoleEligibilityScheduleRequest erstellen.
Eigenschaft
Typ
Beschreibung
Aktion
unifiedRoleScheduleRequestActions
Stellt den Vorgangstyp für die Rollenberechtigungsanforderung dar. Die möglichen Werte sind: adminAssign, adminUpdate, adminRemove, selfActivate, selfDeactivate, adminExtend, adminRenew, selfExtend, selfRenew, . unknownFutureValue
adminAssign: Administratoren können Prinzipalen berechtigte Rollen zuweisen.
adminRemove: Administratoren können berechtigte Rollen aus Prinzipalen entfernen.
adminUpdate: Administratoren können vorhandene Rollenberechtigungen ändern.
adminExtend: Damit Administratoren ablaufende Rollenberechtigungen erweitern können.
adminRenew: Administratoren können abgelaufene Berechtigungen verlängern.
selfActivate: Benutzer können ihre Zuweisungen aktivieren.
selfDeactivate: Damit Benutzer ihre aktiven Zuweisungen deaktivieren können.
selfExtend: Benutzer können eine Verlängerung ihrer ablaufenden Zuweisungen anfordern.
SelfRenew: Damit Benutzer die Verlängerung ihrer abgelaufenen Zuweisungen anfordern können.
appScopeId
String
Bezeichner des app-spezifischen Bereichs, wenn die Rollenberechtigung auf eine App festgelegt ist. Der Umfang einer Rollenberechtigung bestimmt die Gruppe von Ressourcen, auf die der Prinzipal zugreifen kann. App-Bereiche sind Bereiche, die nur von dieser Anwendung definiert und verstanden werden. Wird / für mandantenweite App-Bereiche verwendet. Verwenden Sie directoryScopeId , um den Bereich auf bestimmte Verzeichnisobjekte zu beschränken, z. B. Auf Verwaltungseinheiten. Entweder directoryScopeId oder appScopeId ist erforderlich.
directoryScopeId
String
Bezeichner des Verzeichnisobjekts, das den Bereich der Rollenberechtigung darstellt. Der Umfang einer Rollenberechtigung bestimmt die Gruppe von Ressourcen, für die dem Prinzipal Zugriff gewährt wurde. Verzeichnisbereiche sind freigegebene Bereiche, die im Verzeichnis gespeichert sind und von mehreren Anwendungen verstanden werden. Verwenden Sie / für mandantenweiten Bereich. Verwenden Sie appScopeId , um den Bereich nur auf eine Anwendung zu beschränken. Entweder directoryScopeId oder appScopeId ist erforderlich.
isValidationOnly
Boolesch
Bestimmt, ob der Aufruf eine Überprüfung oder ein tatsächlicher Aufruf ist. Legen Sie diese Eigenschaft nur fest, wenn Sie überprüfen möchten, ob eine Aktivierung zusätzlichen Regeln wie MFA unterliegt, bevor Sie die Anforderung tatsächlich übermitteln. Optional.
Rechtfertigung
String
Eine Meldung, die von Benutzern und Administratoren beim Erstellen des unifiedRoleEligibilityScheduleRequest-Objekts bereitgestellt wird.
Optional für selfDeactivate - und adminRemove -Aktionen; kann für andere Aktionstypen optional oder erforderlich sein, abhängig von den Regeln in der Richtlinie, die mit der Microsoft Entra Rolle verknüpft ist. Weitere Informationen finden Sie unter Regeln in PIM.
principalId
String
Bezeichner des Prinzipals, dem die Rollenberechtigung gewährt wurde. Erforderlich.
Der Zeitraum der Rollenberechtigung. Optional, wenn die Aktion ist adminRemove. Der Berechtigungszeitraum hängt von den Einstellungen der Microsoft Entra Rolle ab.
Ticketdetails, die mit der Rollenberechtigungsanforderung verknüpft sind, einschließlich Details der Ticketnummer und des Ticketsystems.
Optional für selfDeactivate - und adminRemove -Aktionen; kann für andere Aktionstypen optional oder erforderlich sein, abhängig von den Regeln in der Richtlinie, die mit der Microsoft Entra Rolle verknüpft ist. Weitere Informationen finden Sie unter Regeln in PIM.
// 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)
Beispiel 2: Admin, um eine vorhandene Anforderung für einen Rollenberechtigungsplan zu entfernen
In der folgenden Anforderung erstellt der Administrator eine Anforderung zum Widerrufen der Berechtigung eines Prinzipals mit der ID 071cc716-8147-4397-a5ba-b2105951cc0b für eine Rolle mit der 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)
Das folgende Beispiel zeigt die Antwort. Das Antwortobjekt zeigt, dass eine vorherige Rollenberechtigung für einen Prinzipal ist Revoked. Dem Prinzipal wird seine zuvor berechtigte Rolle nicht mehr angezeigt.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.