В PIM запросите право на роль для субъекта с помощью объекта unifiedRoleEligibilityScheduleRequest . Эта операция позволяет администраторам и соответствующим пользователям добавлять, отзывать или расширять соответствующие назначения.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
RoleEligibilitySchedule.ReadWrite.Directory
RoleManagement.ReadWrite.Directory
Делегированные (личная учетная запись Майкрософт)
Не поддерживается.
Не поддерживается.
Приложение
RoleManagement.ReadWrite.Directory
Недоступно.
В делегированных сценариях пользователю, выполнившему вход, также необходимо назначить по крайней мере одну из следующих Microsoft Entra ролей:
Для операций чтения: глобальный читатель, оператор безопасности, читатель безопасности, администратор безопасности или администратор привилегированных ролей.
Для операций записи: администратор привилегированных ролей
HTTP-запрос
POST /roleManagement/directory/roleEligibilityScheduleRequests
При создании unifiedRoleEligibilityScheduleRequest можно указать следующие свойства.
Свойство
Тип
Описание
action
unifiedRoleScheduleRequestActions
Представляет тип операции в запросе на получение ролей. Возможные значения: , , , , , , adminExtend, adminRenew, selfExtend, selfRenew. unknownFutureValueselfDeactivateselfActivateadminRemoveadminUpdateadminAssign
adminAssign: администраторы могут назначать соответствующие роли субъектам.
adminRemove: администраторы могут удалять соответствующие роли из субъектов.
adminUpdate: администраторы могут изменить существующие права на роль.
adminExtend: администраторы могут продлить срок действия ролей с истекающим сроком действия.
adminRenew: администраторы могут продлить срок действия.
selfActivate: для активации назначений пользователями.
selfDeactivate: пользователи могут деактивировать свои активные назначения.
selfExtend: пользователи могут запросить продление назначений с истекающим сроком действия.
SelfRenew: пользователи могут запросить продление просроченных назначений.
appScopeId
String
Идентификатор конкретного приложения область, когда допустимость роли ограничена приложением. Область допустимости роли определяет набор ресурсов, доступ к которым имеет субъект. Области приложения — это области, которые определяются и понимаются только этим приложением. Используйте / для областей приложений на уровне клиента. Используйте directoryScopeId, чтобы ограничить область определенными объектами каталога, например административными единицами. Требуется параметр directoryScopeId или appScopeId .
directoryScopeId
String
Идентификатор объекта каталога, представляющего область допустимости роли. Область допустимости роли определяет набор ресурсов, доступ к которым предоставлен субъекту. Области каталога — это общие области, хранящиеся в каталоге, которые понимаются несколькими приложениями. Используйте / для область на уровне клиента. Используйте appScopeId, чтобы ограничить область только приложением. Требуется параметр directoryScopeId или appScopeId .
isValidationOnly
Логический
Определяет, является ли вызов проверкой или фактическим вызовом. Задайте это свойство только в том случае, если вы хотите проверка, подчиняется ли активация дополнительным правилам, таким как MFA, перед фактической отправкой запроса. Необязательный параметр.
Обоснование
String
Сообщение, предоставляемое пользователями и администраторами при создании объекта unifiedRoleEligibilityScheduleRequest .
Необязательный для selfDeactivate действий иadminRemove; может быть необязательным или обязательным для других типов действий в зависимости от правил в политике, связанных с ролью Microsoft Entra. Дополнительные сведения см. в разделе Правила в PIM.
principalId
String
Идентификатор субъекта, которому было предоставлено право на роль. Обязательно.
roleDefinitionId
String
Идентификатор объекта unifiedRoleDefinition , который назначается субъекту. Обязательно.
Сведения о билетах, связанных с запросом на участие в роли, включая сведения о номере билета и системе билетов.
Необязательный для selfDeactivate действий иadminRemove; может быть необязательным или обязательным для других типов действий в зависимости от правил в политике, связанных с ролью Microsoft Entra. Дополнительные сведения см. в разделе Правила в 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);
Пример 2. Администратор удаления существующего запроса на получение ролей
В следующем запросе администратор создает запрос на отмену права участника с идентификатором 071cc716-8147-4397-a5ba-b2105951cc0b на роль с идентификатором 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 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);
Ниже показан пример отклика. Объект ответа показывает, что предыдущее право на роль для субъекта — .Revoked Субъект больше не будет видеть свою ранее допустимую роль.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе https://aka.ms/ContentUserFeedback.