Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Erstellen Sie ein neues unifiedRoleAssignmentScheduleRequest-Objekt . Dieser Vorgang ermöglicht sowohl Administratoren als auch Benutzern das Hinzufügen, Entfernen, Erweitern oder Erneuern von Zuweisungen. Um diese Anforderung auszuführen, muss der aufrufende Benutzer die mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erzwungen haben und die Abfrage in einer Sitzung ausführen, in der er zur MFA aufgefordert wurde. Weitere Informationen finden Sie unter Aktivieren von benutzerspezifischen Microsoft Entra mehrstufiger Authentifizierung zum Schützen von Anmeldeereignissen.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service |
US Government L4 |
US Government L5 (DOD) |
China, betrieben von 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Berechtigungen
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) |
RoleAssignmentSchedule.ReadWrite.Directory |
RoleAssignmentSchedule.Remove.Directory, RoleEligibilitySchedule.Remove.Directory, RoleManagement.ReadWrite.Directory |
| Delegiert (persönliches Microsoft-Konto) |
Nicht unterstützt |
Nicht unterstützt |
| Application |
RoleAssignmentSchedule.ReadWrite.Directory |
RoleManagement.ReadWrite.Directory, RoleAssignmentSchedule.Remove.Directory, RoleEligibilitySchedule.Remove.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/roleAssignmentScheduleRequests
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung des unifiedRoleAssignmentScheduleRequest-Objekts an.
In der folgenden Tabelle sind die Eigenschaften aufgeführt, die erforderlich sind, wenn Sie unifiedRoleAssignmentScheduleRequest erstellen.
| Eigenschaft |
Typ |
Beschreibung |
| id |
Zeichenfolge |
Der eindeutige Bezeichner für unifiedRoleAssignmentScheduleRequest. Schlüssel, lässt keine NULL-Werte zu, schreibgeschützt. |
| Aktion |
Zeichenfolge |
Stellt den Typ des Vorgangs für die Rollenzuweisung dar. Die folgenden Werte sind möglich:-
AdminAssign: Administratoren können Benutzern oder Gruppen Rollen zuweisen. -
AdminRemove: Administratoren können Benutzer oder Gruppen aus Rollen entfernen. -
AdminUpdate: Administratoren können vorhandene Rollenzuweisungen ändern. -
AdminExtend: Administratoren können ablaufende Zuweisungen erweitern. -
AdminRenew: Administratoren können abgelaufene Zuweisungen 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.
|
| principalId |
Zeichenfolge |
Bezeichner des Prinzipals, dem die Zuweisung gewährt wird. |
| roleDefinitionId |
Zeichenfolge |
Bezeichner der unifiedRoleDefinition, für die die Zuweisung gilt. Schreibgeschützt. |
| directoryScopeId |
Zeichenfolge |
Bezeichner des Verzeichnisobjekts, das den Bereich der Zuweisung darstellt. Der Bereich einer Zuweisung 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. |
| appScopeId |
Zeichenfolge |
Bezeichner des app-spezifischen Bereichs, wenn der Zuweisungsbereich app-spezifisch ist. Der Bereich einer Zuweisung bestimmt die Gruppe von Ressourcen, für die dem Prinzipal Zugriff gewährt wurde. 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. |
| isValidationOnly |
Boolean |
Gibt an, 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. |
| targetScheduleId |
Zeichenfolge |
ID des an die Zuweisung angefügten Zeitplanobjekts. |
| Rechtfertigung |
Zeichenfolge |
Eine Meldung, die von Benutzern und Administratoren beim Erstellen der Anforderung bereitgestellt wird, um zu erfahren, warum sie benötigt wird. |
| scheduleInfo |
requestSchedule |
Das Schedule-Objekt der Rollenzuweisungsanforderung. |
| ticketInfo |
ticketInfo |
Das ticketInfo-Objekt, das an die Rollenzuweisungsanforderung angefügt ist und Details zur Ticketnummer und zum Ticketsystem enthält. |
Antwort
Bei erfolgreicher Ausführung gibt die Methode den 201 Created Antwortcode und ein unifiedRoleAssignmentScheduleRequest-Objekt im Antworttext zurück.
Wenn der aufrufende Benutzer während seiner Anmeldesitzung nicht zur mehrstufigen Authentifizierung aufgefordert wurde, schlägt eine Anforderung mit der SelfActivate-Aktion fehl und gibt einen 400 Bad request Antwortcode zurück.
Beispiele
Beispiel 1: Admin Zuweisen einer Verzeichnisrolle zu einem Prinzipal
Anforderung
In der folgenden Anforderung erstellt der Administrator eine Anforderung zum Zuweisen einer Durch identifizierten fdd7a751-b60b-444a-984c-02652fe8fa1c Rolle zu einem Prinzipal, der durch id07706ff1-46c7-4847-ae33-3003830675a1 identifiziert wird. Der Bereich ihrer Rolle besteht aus allen Verzeichnisobjekten im Mandanten, und die Zuweisung ist dauerhaft, d. h. sie läuft nicht ab.
POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignmentScheduleRequests/
Content-Type: application/json
{
"action": "AdminAssign",
"justification": "Assign User Admin to IT Helpdesk (User) group",
"roleDefinitionId": "fdd7a751-b60b-444a-984c-02652fe8fa1c",
"directoryScopeId": "/",
"principalId": "07706ff1-46c7-4847-ae33-3003830675a1",
"scheduleInfo": {
"startDateTime": "2021-07-01T00:00:00Z",
"expiration": {
"type": "NoExpiration"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new UnifiedRoleAssignmentScheduleRequest
{
Action = "AdminAssign",
Justification = "Assign User Admin to IT Helpdesk (User) group",
RoleDefinitionId = "fdd7a751-b60b-444a-984c-02652fe8fa1c",
DirectoryScopeId = "/",
PrincipalId = "07706ff1-46c7-4847-ae33-3003830675a1",
ScheduleInfo = new RequestSchedule
{
StartDateTime = DateTimeOffset.Parse("2021-07-01T00:00:00Z"),
Expiration = new ExpirationPattern
{
Type = ExpirationPatternType.NoExpiration,
},
},
};
// 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.RoleAssignmentScheduleRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUnifiedRoleAssignmentScheduleRequest()
action := "AdminAssign"
requestBody.SetAction(&action)
justification := "Assign User Admin to IT Helpdesk (User) group"
requestBody.SetJustification(&justification)
roleDefinitionId := "fdd7a751-b60b-444a-984c-02652fe8fa1c"
requestBody.SetRoleDefinitionId(&roleDefinitionId)
directoryScopeId := "/"
requestBody.SetDirectoryScopeId(&directoryScopeId)
principalId := "07706ff1-46c7-4847-ae33-3003830675a1"
requestBody.SetPrincipalId(&principalId)
scheduleInfo := graphmodels.NewRequestSchedule()
startDateTime , err := time.Parse(time.RFC3339, "2021-07-01T00:00:00Z")
scheduleInfo.SetStartDateTime(&startDateTime)
expiration := graphmodels.NewExpirationPattern()
type := graphmodels.NOEXPIRATION_EXPIRATIONPATTERNTYPE
expiration.SetType(&type)
scheduleInfo.SetExpiration(expiration)
requestBody.SetScheduleInfo(scheduleInfo)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
roleAssignmentScheduleRequests, err := graphClient.RoleManagement().Directory().RoleAssignmentScheduleRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleAssignmentScheduleRequest unifiedRoleAssignmentScheduleRequest = new UnifiedRoleAssignmentScheduleRequest();
unifiedRoleAssignmentScheduleRequest.setAction("AdminAssign");
unifiedRoleAssignmentScheduleRequest.setJustification("Assign User Admin to IT Helpdesk (User) group");
unifiedRoleAssignmentScheduleRequest.setRoleDefinitionId("fdd7a751-b60b-444a-984c-02652fe8fa1c");
unifiedRoleAssignmentScheduleRequest.setDirectoryScopeId("/");
unifiedRoleAssignmentScheduleRequest.setPrincipalId("07706ff1-46c7-4847-ae33-3003830675a1");
RequestSchedule scheduleInfo = new RequestSchedule();
OffsetDateTime startDateTime = OffsetDateTime.parse("2021-07-01T00:00:00Z");
scheduleInfo.setStartDateTime(startDateTime);
ExpirationPattern expiration = new ExpirationPattern();
expiration.setType(ExpirationPatternType.NoExpiration);
scheduleInfo.setExpiration(expiration);
unifiedRoleAssignmentScheduleRequest.setScheduleInfo(scheduleInfo);
UnifiedRoleAssignmentScheduleRequest result = graphClient.roleManagement().directory().roleAssignmentScheduleRequests().post(unifiedRoleAssignmentScheduleRequest);
const options = {
authProvider,
};
const client = Client.init(options);
const unifiedRoleAssignmentScheduleRequest = {
action: 'AdminAssign',
justification: 'Assign User Admin to IT Helpdesk (User) group',
roleDefinitionId: 'fdd7a751-b60b-444a-984c-02652fe8fa1c',
directoryScopeId: '/',
principalId: '07706ff1-46c7-4847-ae33-3003830675a1',
scheduleInfo: {
startDateTime: '2021-07-01T00:00:00Z',
expiration: {
type: 'NoExpiration'
}
}
};
await client.api('/roleManagement/directory/roleAssignmentScheduleRequests/')
.version('beta')
.post(unifiedRoleAssignmentScheduleRequest);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\UnifiedRoleAssignmentScheduleRequest;
use Microsoft\Graph\Beta\Generated\Models\RequestSchedule;
use Microsoft\Graph\Beta\Generated\Models\ExpirationPattern;
use Microsoft\Graph\Beta\Generated\Models\ExpirationPatternType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UnifiedRoleAssignmentScheduleRequest();
$requestBody->setAction('AdminAssign');
$requestBody->setJustification('Assign User Admin to IT Helpdesk (User) group');
$requestBody->setRoleDefinitionId('fdd7a751-b60b-444a-984c-02652fe8fa1c');
$requestBody->setDirectoryScopeId('/');
$requestBody->setPrincipalId('07706ff1-46c7-4847-ae33-3003830675a1');
$scheduleInfo = new RequestSchedule();
$scheduleInfo->setStartDateTime(new \DateTime('2021-07-01T00:00:00Z'));
$scheduleInfoExpiration = new ExpirationPattern();
$scheduleInfoExpiration->setType(new ExpirationPatternType('noExpiration'));
$scheduleInfo->setExpiration($scheduleInfoExpiration);
$requestBody->setScheduleInfo($scheduleInfo);
$result = $graphServiceClient->roleManagement()->directory()->roleAssignmentScheduleRequests()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.Governance
$params = @{
action = "AdminAssign"
justification = "Assign User Admin to IT Helpdesk (User) group"
roleDefinitionId = "fdd7a751-b60b-444a-984c-02652fe8fa1c"
directoryScopeId = "/"
principalId = "07706ff1-46c7-4847-ae33-3003830675a1"
scheduleInfo = @{
startDateTime = [System.DateTime]::Parse("2021-07-01T00:00:00Z")
expiration = @{
type = "NoExpiration"
}
}
}
New-MgBetaRoleManagementDirectoryRoleAssignmentScheduleRequest -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.unified_role_assignment_schedule_request import UnifiedRoleAssignmentScheduleRequest
from msgraph_beta.generated.models.request_schedule import RequestSchedule
from msgraph_beta.generated.models.expiration_pattern import ExpirationPattern
from msgraph_beta.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 = UnifiedRoleAssignmentScheduleRequest(
action = "AdminAssign",
justification = "Assign User Admin to IT Helpdesk (User) group",
role_definition_id = "fdd7a751-b60b-444a-984c-02652fe8fa1c",
directory_scope_id = "/",
principal_id = "07706ff1-46c7-4847-ae33-3003830675a1",
schedule_info = RequestSchedule(
start_date_time = "2021-07-01T00:00:00Z",
expiration = ExpirationPattern(
type = ExpirationPatternType.NoExpiration,
),
),
)
result = await graph_client.role_management.directory.role_assignment_schedule_requests.post(request_body)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/directory/roleAssignmentScheduleRequests/$entity",
"id": "b5a22921-656a-4429-9c4e-59a5f576614d",
"status": "Provisioned",
"createdDateTime": "2021-07-27T09:18:40.2029365Z",
"completedDateTime": "2021-07-27T09:18:42.7811184Z",
"approvalId": null,
"customData": null,
"action": "AdminAssign",
"principalId": "07706ff1-46c7-4847-ae33-3003830675a1",
"roleDefinitionId": "fdd7a751-b60b-444a-984c-02652fe8fa1c",
"directoryScopeId": "/",
"appScopeId": null,
"isValidationOnly": false,
"targetScheduleId": "b5a22921-656a-4429-9c4e-59a5f576614d",
"justification": "Assign User Admin to IT Helpdesk (User) group",
"createdBy": {
"application": null,
"device": null,
"user": {
"displayName": null,
"id": "fc9a2c2b-1ddc-486d-a211-5fe8ca77fa1f"
}
},
"scheduleInfo": {
"startDateTime": "2021-07-27T09:18:42.7811184Z",
"recurrence": null,
"expiration": {
"type": "noExpiration",
"endDateTime": null,
"duration": null
}
},
"ticketInfo": {
"ticketNumber": null,
"ticketSystem": null
}
}
Beispiel 2: Benutzer, der seine berechtigte Rolle aktiviert
Anforderung
In der folgenden Anforderung aktiviert ein durch principalIdc6ad1942-4afa-47f8-8d48-afb5d8d69d2f identifizierter Benutzer seine eigene berechtigte Rolle, die durch identifiziert wird 9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3. Der Bereich ihrer Rolle besteht aus allen Verzeichnisobjekten im Mandanten, und die Zuweisung dauert fünf Stunden. Um diese Anforderung auszuführen, muss der aufrufende Benutzer die mehrstufige Authentifizierung (Multi-Factor Authentication, MFA) erzwungen haben und die Abfrage in einer Sitzung ausführen, in der er zur MFA aufgefordert wurde.
POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignmentScheduleRequests/
Content-Type: application/json
{
"action": "SelfActivate",
"principalId": "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f",
"roleDefinitionId": "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3",
"directoryScopeId": "/",
"justification": "Need to update app roles for selected apps.",
"scheduleInfo": {
"startDateTime": "2021-08-17T17:40:00.000Z",
"expiration": {
"type": "AfterDuration",
"duration": "PT5H"
}
},
"ticketInfo": {
"ticketNumber": "CONTOSO:Normal-67890",
"ticketSystem": "MS Project"
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new UnifiedRoleAssignmentScheduleRequest
{
Action = "SelfActivate",
PrincipalId = "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f",
RoleDefinitionId = "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3",
DirectoryScopeId = "/",
Justification = "Need to update app roles for selected apps.",
ScheduleInfo = new RequestSchedule
{
StartDateTime = DateTimeOffset.Parse("2021-08-17T17:40:00.000Z"),
Expiration = new ExpirationPattern
{
Type = ExpirationPatternType.AfterDuration,
Duration = TimeSpan.Parse("PT5H"),
},
},
TicketInfo = new TicketInfo
{
TicketNumber = "CONTOSO:Normal-67890",
TicketSystem = "MS Project",
},
};
// 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.RoleAssignmentScheduleRequests.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewUnifiedRoleAssignmentScheduleRequest()
action := "SelfActivate"
requestBody.SetAction(&action)
principalId := "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f"
requestBody.SetPrincipalId(&principalId)
roleDefinitionId := "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3"
requestBody.SetRoleDefinitionId(&roleDefinitionId)
directoryScopeId := "/"
requestBody.SetDirectoryScopeId(&directoryScopeId)
justification := "Need to update app roles for selected apps."
requestBody.SetJustification(&justification)
scheduleInfo := graphmodels.NewRequestSchedule()
startDateTime , err := time.Parse(time.RFC3339, "2021-08-17T17:40:00.000Z")
scheduleInfo.SetStartDateTime(&startDateTime)
expiration := graphmodels.NewExpirationPattern()
type := graphmodels.AFTERDURATION_EXPIRATIONPATTERNTYPE
expiration.SetType(&type)
duration , err := abstractions.ParseISODuration("PT5H")
expiration.SetDuration(&duration)
scheduleInfo.SetExpiration(expiration)
requestBody.SetScheduleInfo(scheduleInfo)
ticketInfo := graphmodels.NewTicketInfo()
ticketNumber := "CONTOSO:Normal-67890"
ticketInfo.SetTicketNumber(&ticketNumber)
ticketSystem := "MS Project"
ticketInfo.SetTicketSystem(&ticketSystem)
requestBody.SetTicketInfo(ticketInfo)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
roleAssignmentScheduleRequests, err := graphClient.RoleManagement().Directory().RoleAssignmentScheduleRequests().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
UnifiedRoleAssignmentScheduleRequest unifiedRoleAssignmentScheduleRequest = new UnifiedRoleAssignmentScheduleRequest();
unifiedRoleAssignmentScheduleRequest.setAction("SelfActivate");
unifiedRoleAssignmentScheduleRequest.setPrincipalId("c6ad1942-4afa-47f8-8d48-afb5d8d69d2f");
unifiedRoleAssignmentScheduleRequest.setRoleDefinitionId("9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3");
unifiedRoleAssignmentScheduleRequest.setDirectoryScopeId("/");
unifiedRoleAssignmentScheduleRequest.setJustification("Need to update app roles for selected apps.");
RequestSchedule scheduleInfo = new RequestSchedule();
OffsetDateTime startDateTime = OffsetDateTime.parse("2021-08-17T17:40:00.000Z");
scheduleInfo.setStartDateTime(startDateTime);
ExpirationPattern expiration = new ExpirationPattern();
expiration.setType(ExpirationPatternType.AfterDuration);
PeriodAndDuration duration = PeriodAndDuration.ofDuration(Duration.parse("PT5H"));
expiration.setDuration(duration);
scheduleInfo.setExpiration(expiration);
unifiedRoleAssignmentScheduleRequest.setScheduleInfo(scheduleInfo);
TicketInfo ticketInfo = new TicketInfo();
ticketInfo.setTicketNumber("CONTOSO:Normal-67890");
ticketInfo.setTicketSystem("MS Project");
unifiedRoleAssignmentScheduleRequest.setTicketInfo(ticketInfo);
UnifiedRoleAssignmentScheduleRequest result = graphClient.roleManagement().directory().roleAssignmentScheduleRequests().post(unifiedRoleAssignmentScheduleRequest);
const options = {
authProvider,
};
const client = Client.init(options);
const unifiedRoleAssignmentScheduleRequest = {
action: 'SelfActivate',
principalId: 'c6ad1942-4afa-47f8-8d48-afb5d8d69d2f',
roleDefinitionId: '9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3',
directoryScopeId: '/',
justification: 'Need to update app roles for selected apps.',
scheduleInfo: {
startDateTime: '2021-08-17T17:40:00.000Z',
expiration: {
type: 'AfterDuration',
duration: 'PT5H'
}
},
ticketInfo: {
ticketNumber: 'CONTOSO:Normal-67890',
ticketSystem: 'MS Project'
}
};
await client.api('/roleManagement/directory/roleAssignmentScheduleRequests/')
.version('beta')
.post(unifiedRoleAssignmentScheduleRequest);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\UnifiedRoleAssignmentScheduleRequest;
use Microsoft\Graph\Beta\Generated\Models\RequestSchedule;
use Microsoft\Graph\Beta\Generated\Models\ExpirationPattern;
use Microsoft\Graph\Beta\Generated\Models\ExpirationPatternType;
use Microsoft\Graph\Beta\Generated\Models\TicketInfo;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UnifiedRoleAssignmentScheduleRequest();
$requestBody->setAction('SelfActivate');
$requestBody->setPrincipalId('c6ad1942-4afa-47f8-8d48-afb5d8d69d2f');
$requestBody->setRoleDefinitionId('9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3');
$requestBody->setDirectoryScopeId('/');
$requestBody->setJustification('Need to update app roles for selected apps.');
$scheduleInfo = new RequestSchedule();
$scheduleInfo->setStartDateTime(new \DateTime('2021-08-17T17:40:00.000Z'));
$scheduleInfoExpiration = new ExpirationPattern();
$scheduleInfoExpiration->setType(new ExpirationPatternType('afterDuration'));
$scheduleInfoExpiration->setDuration(new \DateInterval('PT5H'));
$scheduleInfo->setExpiration($scheduleInfoExpiration);
$requestBody->setScheduleInfo($scheduleInfo);
$ticketInfo = new TicketInfo();
$ticketInfo->setTicketNumber('CONTOSO:Normal-67890');
$ticketInfo->setTicketSystem('MS Project');
$requestBody->setTicketInfo($ticketInfo);
$result = $graphServiceClient->roleManagement()->directory()->roleAssignmentScheduleRequests()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.Governance
$params = @{
action = "SelfActivate"
principalId = "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f"
roleDefinitionId = "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3"
directoryScopeId = "/"
justification = "Need to update app roles for selected apps."
scheduleInfo = @{
startDateTime = [System.DateTime]::Parse("2021-08-17T17:40:00.000Z")
expiration = @{
type = "AfterDuration"
duration = "PT5H"
}
}
ticketInfo = @{
ticketNumber = "CONTOSO:Normal-67890"
ticketSystem = "MS Project"
}
}
New-MgBetaRoleManagementDirectoryRoleAssignmentScheduleRequest -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.unified_role_assignment_schedule_request import UnifiedRoleAssignmentScheduleRequest
from msgraph_beta.generated.models.request_schedule import RequestSchedule
from msgraph_beta.generated.models.expiration_pattern import ExpirationPattern
from msgraph_beta.generated.models.expiration_pattern_type import ExpirationPatternType
from msgraph_beta.generated.models.ticket_info import TicketInfo
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = UnifiedRoleAssignmentScheduleRequest(
action = "SelfActivate",
principal_id = "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f",
role_definition_id = "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3",
directory_scope_id = "/",
justification = "Need to update app roles for selected apps.",
schedule_info = RequestSchedule(
start_date_time = "2021-08-17T17:40:00.000Z",
expiration = ExpirationPattern(
type = ExpirationPatternType.AfterDuration,
duration = "PT5H",
),
),
ticket_info = TicketInfo(
ticket_number = "CONTOSO:Normal-67890",
ticket_system = "MS Project",
),
)
result = await graph_client.role_management.directory.role_assignment_schedule_requests.post(request_body)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#roleManagement/directory/roleAssignmentScheduleRequests/$entity",
"id": "163daf73-8746-4996-87de-ab71dc624bf9",
"status": "Granted",
"createdDateTime": "2021-08-17T17:39:36.7040696Z",
"completedDateTime": "2021-08-17T17:40:00Z",
"approvalId": null,
"customData": null,
"action": "SelfActivate",
"principalId": "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f",
"roleDefinitionId": "9b895d92-2cd3-44c7-9d02-a6ac2d5ea5c3",
"directoryScopeId": "/",
"appScopeId": null,
"isValidationOnly": false,
"targetScheduleId": "163daf73-8746-4996-87de-ab71dc624bf9",
"justification": "Need to update app roles for selected apps.",
"createdBy": {
"application": null,
"device": null,
"user": {
"displayName": null,
"id": "c6ad1942-4afa-47f8-8d48-afb5d8d69d2f"
}
},
"scheduleInfo": {
"startDateTime": "2021-08-17T17:40:00Z",
"recurrence": null,
"expiration": {
"type": "afterDuration",
"endDateTime": null,
"duration": "PT5H"
}
},
"ticketInfo": {
"ticketNumber": "CONTOSO:Normal-67890",
"ticketSystem": "MS Project"
}
}