Создание governanceRoleAssignmentRequest

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Предостережение

Эта версия API Privileged Identity Management (PIM) для ресурсов Azure скоро перестанет поддерживаться. Используйте новый REST API PIM Azure для ролей ресурсов Azure.

Создайте запрос на назначение ролей, чтобы представить операцию, которую требуется выполнить при назначении ролей. В следующей таблице перечислены операции.

Operation Тип
Назначение назначения роли АдминистраторДобавить
Активация допустимого назначения ролей UserAdd
Деактивация активированного назначения ролей UserRemove
Удаление назначения роли AdminRemove
Обновление назначения ролей AdminUpdate
Запрос на продление назначения ролей UserExtend
Расширение назначения ролей AdminExtend
Запрос на продление назначения ролей с истекшим сроком действия UserRenew
Продление назначения ролей с истекшим сроком действия AdminRenew

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

В следующей таблице показаны наименее привилегированные разрешения или разрешения, необходимые для вызова этого API для каждого поддерживаемого типа ресурсов. Следуйте рекомендациям , чтобы запросить разрешения с наименьшими привилегиями. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Поддерживаемый ресурс Делегированное (рабочая или учебная учетная запись) Делегированное (личная учетная запись Майкрософт) Приложение
Microsoft Entra ID PrivilegedAccess.ReadWrite.AzureAD Не поддерживается. Не поддерживается.
Ресурсы Azure PrivilegedAccess.ReadWrite.AzureResources Не поддерживается. Не поддерживается.
group PrivilegedAccess.ReadWrite.AzureADGroup Не поддерживается. Не поддерживается.

HTTP-запрос

POST /privilegedAccess/azureResources/roleAssignmentRequests

Заголовки запросов

Имя Описание
Авторизация Bearer {code}
Content-Type application/json

Текст запроса

В тексте запроса укажите представление объекта governanceRoleAssignmentRequest в формате JSON.

Свойство Тип Описание
resourceId String Уникальный идентификатор ресурса Azure, связанного с запросом на назначение ролей. Ресурсы Azure могут включать подписки, группы ресурсов, виртуальные машины и базы данных SQL. Обязательно.
roleDefinitionId String Идентификатор определения роли Azure, с которым связан запрос на назначение ролей. Обязательно.
subjectId String Уникальный идентификатор субъекта или субъекта, с которым связан запрос на назначение ролей. Субъекты могут быть пользователями, группами или субъектами-службами. Обязательно.
assignmentState String Состояние назначения. Значением может быть Eligible и Active. Обязательно.
type String Тип запроса. Значение может быть , , , , , , UserExtendUserRenewи AdminExtendAdminRenew. AdminRemoveUserRemoveAdminUpdateUserAddAdminAdd Обязательно.
reason String Для запроса на назначение ролей для целей аудита и проверки необходимо указать причину.
schedule governanceSchedule Расписание запроса на назначение ролей. Для типа UserAddзапроса , AdminAdd, AdminUpdateи AdminExtendон является обязательным.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 201 Created и объект governanceRoleAssignmentRequest в теле отклика.

Коды ошибок

Этот API возвращает стандартные коды ошибок HTTP. Кроме того, он также возвращает коды ошибок, перечисленные в следующей таблице.

Код ошибки Сообщение об ошибке Details
400 BadRequest RoleNotFound Не roleDefinitionId удается найти объект, указанный в тексте запроса.
400 BadRequest ResourceIsLocked Ресурс, указанный в тексте запроса, находится в состоянии Locked и не может создавать запросы на назначение ролей.
400 BadRequest SubjectNotFound Не subjectId удается найти объект, указанный в тексте запроса.
400 BadRequest PendingRoleAssignmentRequest В системе уже существует ожидающий объект governanceRoleAssignmentRequest .
400 BadRequest RoleAssignmentExists Объект governanceRoleAssignment, запрошенный для создания, уже существует в системе.
400 BadRequest RoleAssignmentDoesNotExist Элемент governanceRoleAssignment, запрошенный для обновления или расширения, не существует в системе.
400 BadRequest RoleAssignmentRequestPolicyValidationFailed Объект governanceRoleAssignmentRequest не соответствует внутренним политикам и не может быть создан.

Примеры

В следующих примерах показано, как использовать этот API.

Пример 1. Администратор назначает пользователю роль

В этом примере администратор назначает пользователю nawu@contoso.com роль читателя выставления счетов.

Примечание: В дополнение к разрешению в этом примере требуется, чтобы запрашивающий был по крайней мере одно Active назначение роли администратора (owner или user access administrator) в ресурсе.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Допустимые / активные
type String Да АдминистраторДобавить
reason String зависит от параметров роли
schedule governanceSchedule Да

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "ea48ad5e-e3b0-4d10-af54-39a45bbfe68d",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "assignmentState": "Eligible",
  "type": "AdminAdd",
  "reason": "Assign an eligible role",
  "schedule": {
    "startDateTime": "2018-05-12T23:37:43.356Z",
    "endDateTime": "2018-11-08T23:37:43.356Z",
    "type": "Once"
  }
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "1232e4ea-741a-4be5-8044-5edabdd61672",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "roleDefinitionId": "ea48ad5e-e3b0-4d10-af54-39a45bbfe68d",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "linkedEligibleRoleAssignmentId": "",
  "type": "AdminAdd",
  "assignmentState": "Eligible",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": "Evaluate Only",
  "status": {
    "status": "InProgress",
    "subStatus": "Granted",
    "statusDetails": [
      {
        "key": "AdminRequestRule",
        "value": "Grant"
      },
      {
        "key": "ExpirationRule",
        "value": "Grant"
      },
      {
        "key": "MfaRule",
        "value": "Grant"
      }
    ]
  },
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-05-12T23:37:43.356Z",
    "endDateTime": "2018-11-08T23:37:43.356Z",
    "duration": "PT0S"
  }
}

Пример 2. Пользователь активирует доступную роль

В этом примере пользователь nawu@contoso.com активирует допустимую роль читателя выставления счетов.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Активное
type String Да UserAdd
reason String зависит от параметров роли
schedule governanceSchedule Да

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "8b4d1d51-08e9-4254-b0a6-b16177aae376",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "assignmentState": "Active",
  "type": "UserAdd",
  "reason": "Activate the owner role",
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-05-12T23:28:43.537Z",
    "duration": "PT9H"
  },
  "linkedEligibleRoleAssignmentId": "e327f4be-42a0-47a2-8579-0a39b025b394"
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "3ad49a7c-918e-4d86-9f84-fab28f8658c0",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "roleDefinitionId": "8b4d1d51-08e9-4254-b0a6-b16177aae376",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "linkedEligibleRoleAssignmentId": "e327f4be-42a0-47a2-8579-0a39b025b394",
  "type": "UserAdd",
  "assignmentState": "Active",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": "Activate the owner role",
  "status": {
    "status": "InProgress",
    "subStatus": "Granted",
    "statusDetails": [
      {
        "key": "EligibilityRule",
        "value": "Grant"
      },
      {
        "key": "ExpirationRule",
        "value": "Grant"
      },
      {
        "key": "MfaRule",
        "value": "Grant"
      },
      {
        "key": "JustificationRule",
        "value": "Grant"
      },
      {
        "key": "ActivationDayRule",
        "value": "Grant"
      },
      {
        "key": "ApprovalRule",
        "value": "Grant"
      }
    ]
  },
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-05-12T23:28:43.537Z",
    "endDateTime": "0001-01-01T00:00:00Z",
    "duration": "PT9H"
  }
}

Пример 3. Пользователь деактивирует назначенную роль

В этом примере пользователь nawu@contoso.com отключает активную роль читателя выставления счетов.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Активное
type String Да UserRemove
reason String Нет
schedule governanceSchedule Нет

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "bc75b4e6-7403-4243-bf2f-d1f6990be122",
  "resourceId": "fb016e3a-c3ed-4d9d-96b6-a54cd4f0b735",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "assignmentState": "Active",
  "type": "UserRemove",
  "reason": "Deactivate the role",
  "linkedEligibleRoleAssignmentId": "cb8a533e-02d5-42ad-8499-916b1e4822ec"
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "abfcdb57-8e5d-42a0-ae67-7598b96fddb1",
  "resourceId": "fb016e3a-c3ed-4d9d-96b6-a54cd4f0b735",
  "roleDefinitionId": "bc75b4e6-7403-4243-bf2f-d1f6990be122",
  "subjectId": "918e54be-12c4-4f4c-a6d3-2ee0e3661c51",
  "linkedEligibleRoleAssignmentId": "cb8a533e-02d5-42ad-8499-916b1e4822ec",
  "type": "UserRemove",
  "assignmentState": "Active",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": "Evaluate only",
  "schedule": null,
  "status": {
    "status": "Closed",
    "subStatus": "Revoked",
    "statusDetails": []
  }
}

Пример 4. Администратор удаляет пользователя из роли

В этом примере администратор удаляет пользователя nawu@contoso.com из роли читателя выставления счетов.

Примечание: В дополнение к разрешению в этом примере требуется, чтобы запрашивающий был по крайней мере одно Active назначение роли администратора (owner или user access administrator) в ресурсе.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Допустимые / активные
type String Да AdminRemove
reason String Нет
schedule governanceSchedule Нет

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "65bb4622-61f5-4f25-9d75-d0e20cf92019",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "subjectId": "74765671-9ca4-40d7-9e36-2f4a570608a6",
  "assignmentState": "Eligible",
  "type": "AdminRemove"
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "c934fcb9-cf53-42ac-a8b4-6246f6726299",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "roleDefinitionId": "65bb4622-61f5-4f25-9d75-d0e20cf92019",
  "subjectId": "74765671-9ca4-40d7-9e36-2f4a570608a6",
  "linkedEligibleRoleAssignmentId": "",
  "type": "AdminRemove",
  "assignmentState": "Eligible",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": null,
  "status": {
    "status": "Closed",
    "subStatus": "Revoked",
    "statusDetails": []
  },
  "schedule": null
}

Пример 5. Назначение роли обновления администратором

В этом примере администраторы обновляют назначение роли для пользователя nawu@contoso.com до владельца.

Примечание: В дополнение к разрешению в этом примере требуется, чтобы запрашивающий был по крайней мере одно Active назначение роли администратора (owner или user access administrator) в ресурсе.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Допустимые / активные
type String Да AdminUpdate
reason String зависит от roleSettings
schedule governanceSchedule Да

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "70521f3e-3b95-4e51-b4d2-a2f485b02103",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "subjectId": "1566d11d-d2b6-444a-a8de-28698682c445",
  "assignmentState": "Eligible",
  "type": "AdminUpdate",
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-03-08T05:42:45.317Z",
    "endDateTime": "2018-06-05T05:42:31.000Z"
  }
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "4f6d4802-b3ac-4f5a-86d7-a6a4edd7d383",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "roleDefinitionId": "70521f3e-3b95-4e51-b4d2-a2f485b02103",
  "subjectId": "1566d11d-d2b6-444a-a8de-28698682c445",
  "linkedEligibleRoleAssignmentId": "",
  "type": "AdminUpdate",
  "assignmentState": "Eligible",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": null,
  "status": {
    "status": "InProgress",
    "subStatus": "Granted",
    "statusDetails": [
      {
        "key": "AdminRequestRule",
        "value": "Grant"
      },
      {
        "key": "ExpirationRule",
        "value": "Grant"
      },
      {
        "key": "MfaRule",
        "value": "Grant"
      }
    ]
  },
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-03-08T05:42:45.317Z",
    "endDateTime": "2018-06-05T05:42:31Z",
    "duration": "PT0S"
  }
}

Пример 6. Администратор продлевает назначение ролей с истекающим сроком действия

В этом примере назначение ролей с истекающим сроком действия для пользователя ANUJCUSER расширяется до Управление API участника службы.

Примечание: В дополнение к разрешению в этом примере требуется, чтобы запрашивающий был по крайней мере одно Active назначение роли администратора (owner или user access administrator) в ресурсе.

Свойство Тип Обязательный Значение
resourceId String Да <resourceId>
roleDefinitionId String Да <roleDefinitionId>
subjectId String Да <subjectId>
assignmentState String Да Допустимые / активные
type String Да AdminExtend
reason String зависит от roleSettings
schedule governanceSchedule Да

Запрос

POST https://graph.microsoft.com/beta/privilegedAccess/azureResources/roleAssignmentRequests
Content-type: application/json

{
  "roleDefinitionId": "0e88fd18-50f5-4ee1-9104-01c3ed910065",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "subjectId": "74765671-9ca4-40d7-9e36-2f4a570608a6",
  "assignmentState": "Eligible",
  "type": "AdminExtend",
  "reason": "extend role assignment",
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-05-12T23:53:55.327Z",
    "endDateTime": "2018-08-10T23:53:55.327Z"
  }
}

Отклик

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#governanceRoleAssignmentRequests/$entity",
  "id": "486f0c05-47c8-4498-9c06-086a78c83004",
  "resourceId": "e5e7d29d-5465-45ac-885f-4716a5ee74b5",
  "roleDefinitionId": "0e88fd18-50f5-4ee1-9104-01c3ed910065",
  "subjectId": "74765671-9ca4-40d7-9e36-2f4a570608a6",
  "linkedEligibleRoleAssignmentId": "",
  "type": "AdminExtend",
  "assignmentState": "Eligible",
  "requestedDateTime": "0001-01-01T00:00:00Z",
  "reason": "extend role assignment",
  "status": {
    "status": "InProgress",
    "subStatus": "Granted",
    "statusDetails": [
      {
        "key": "AdminRequestRule",
        "value": "Grant"
      },
      {
        "key": "ExpirationRule",
        "value": "Grant"
      },
      {
        "key": "MfaRule",
        "value": "Grant"
      }
    ]
  },
  "schedule": {
    "type": "Once",
    "startDateTime": "2018-05-12T23:53:55.327Z",
    "endDateTime": "2018-08-10T23:53:55.327Z",
    "duration": "PT0S"
  }
}