Назначение административных ролей с помощью PIM для API Microsoft Entra ролей

управление привилегированными пользователями (PIM) позволяет организациям управлять административным доступом к ресурсам в Microsoft Entra ID. Административный доступ может осуществляться через группы с возможностью назначения ролей или Microsoft Entra роли. PIM помогает управлять рисками привилегированного доступа, ограничивая, когда доступ активен, управляя область доступа и предоставляя проверяемый журнал привилегированного доступа.

Компания Contoso хочет назначить административные роли субъектам с помощью групп безопасности. Компания назначает право на участие вместо постоянно активных административных ролей. Этот метод эффективен следующими способами:

  • Удаление существующих или добавление дополнительных участников группы также удалит администраторов.
  • Члены группы наследуют соответствующее назначение ролей. Вы можете назначить группе больше ролей, а не назначать роли непосредственно отдельным пользователям.
  • Назначение прав доступа вместо постоянно активной привилегии администратора пользователей позволяет компании обеспечить JIT-доступ, который предоставляет временные разрешения на выполнение привилегированных задач. Когда участнику группы необходимо использовать привилегии, он активирует свое назначение на временное время. Все записи активаций ролей проверяются компанией.

В этом руководстве рассказывается, как:

  • Создайте группу безопасности с возможностью назначения ролей.
  • Сделайте группу безопасности, назначаемую роли, правой на административную роль.
  • Предоставление JIT-доступа пользователю путем активации соответствующего назначения.

Предварительные требования

Для работы с этим руководством вам потребуются следующие ресурсы и привилегии:

  • Рабочий клиент Microsoft Entra с включенной лицензией Microsoft Entra ID P2 или Управление Microsoft Entra ID.
  • Войдите в клиент API, например Graph Обозреватель, чтобы вызвать Microsoft Graph с учетной записью, которая имеет по крайней мере роль администратора привилегированных ролей.
    • [Необязательно] Запустите новый анонимный сеанс в другом браузере. Вы выполните вход далее в этом руководстве. Тестовый пользователь, для которых включена MFA, и у вас есть доступ к учетной записи приложения Microsoft Authenticator.
  • Предоставьте себе следующие делегированные разрешения: Group.ReadWrite.All, Directory.Read.All, RoleEligibilitySchedule.ReadWrite.Directoryи RoleAssignmentSchedule.ReadWrite.Directoryи RoleManagement.ReadWrite.Directory.

Шаг 1. Создание группы безопасности с возможностью назначения ролей

Назначьте себя владельцем группы, а участниками — вас и тестового пользователя.

Запрос: создание группы с возможностью назначения ролей

POST https://graph.microsoft.com/v1.0/groups
Content-type: application/json

{
    "description": "IT Helpdesk to support Contoso employees",
    "displayName": "IT Helpdesk (User)",
    "mailEnabled": false,
    "mailNickname": "userHelpdesk",
    "securityEnabled": true,
    "isAssignableToRole": true,
    "owners@odata.bind": [
        "https://graph.microsoft.com/v1.0/users/1ed8ac56-4827-4733-8f80-86adc2e67db5"
    ],
    "members@odata.bind": [
        "https://graph.microsoft.com/v1.0/users/1ed8ac56-4827-4733-8f80-86adc2e67db5",
        "https://graph.microsoft.com/v1.0/users/7146daa8-1b4b-4a66-b2f7-cf593d03c8d2"
    ]
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/29a4f813-9274-4e1b-858d-0afa98ae66d4/directoryObjects/e77cbb23-0ff2-4e18-819c-690f58269752/Microsoft.DirectoryServices.Group",
    "id": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "description": "IT Helpdesk to support Contoso employees",
    "displayName": "IT Helpdesk (User)",
    "groupTypes": [],
    "isAssignableToRole": true,
    "mailEnabled": false,
    "mailNickname": "userHelpdesk",
    "securityEnabled": true,
    "securityIdentifier": "S-1-12-1-3883711267-1310199794-258579585-1385637464",
    "visibility": "Private",
    "onPremisesProvisioningErrors": []
}

Шаг 2. Создание unifiedRoleEligibilityScheduleRequest

Теперь, когда у вас есть группа безопасности с возможностью назначения ролей, назначьте ей право на роль администратора пользователей в течение одного года. Оставьте допустимое назначение всем клиентом. Эта область на уровне клиента позволяет администратору пользователей использовать свои привилегии для всех пользователей в клиенте, за исключением пользователей с более высоким уровнем привилегий, таких как глобальный администратор.

Запрос

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests
Content-type: application/json

{
    "action": "AdminAssign",
    "justification": "Assign User Admin eligibility to IT Helpdesk (User) group",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "scheduleInfo": {
        "startDateTime": "2021-07-01T00:00:00Z",
        "expiration": {
            "endDateTime": "2022-06-30T00:00:00Z",
            "type": "AfterDateTime"
        }
    }
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleEligibilityScheduleRequests/$entity",
    "id": "64a8bd54-4591-4f6a-9c77-3e9cb1fdd29b",
    "status": "Provisioned",
    "createdDateTime": "2021-09-03T20:45:28.3848182Z",
    "completedDateTime": "2021-09-03T20:45:39.1194292Z",
    "action": "AdminAssign",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "isValidationOnly": false,
    "targetScheduleId": "64a8bd54-4591-4f6a-9c77-3e9cb1fdd29b",
    "justification": "Assign User Admin eligibility to IT Helpdesk (User) group",
    "createdBy": {
        "user": {
            "id": "1ed8ac56-4827-4733-8f80-86adc2e67db5"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2021-09-03T20:45:39.1194292Z",
        "expiration": {
            "type": "afterDateTime",
            "endDateTime": "2022-06-30T00:00:00Z"
        }
    },
    "ticketInfo": {}
}

Шаг 3. Подтверждение текущих назначений ролей пользователя

Хотя участники группы теперь имеют право на роль администратора пользователей, они по-прежнему не могут использовать роль, если они не активируют роль явным образом. Вы можете подтвердить, проверив текущие назначения ролей пользователя.

Запрос

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId eq '7146daa8-1b4b-4a66-b2f7-cf593d03c8d2'

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments",
    "value": []
}

Пустой объект ответа показывает, что у пользователя нет ролей Microsoft Entra в Contoso. Теперь пользователь будет активировать свою доступную роль администратора пользователей в течение ограниченного времени.

Шаг 4. Пользователь самостоятельно активирует соответствующее назначение

Запрос на инциденты CONTOSO: Security-012345 был поднят в системе управления инцидентами Contoso, и компания требует, чтобы все маркеры обновления сотрудников были признаны недействительными. Как участник службы ИТ-поддержки, Aline отвечает за выполнение этой задачи.

Сначала запустите приложение Authenticator на телефоне и откройте учетную запись Aline Dupuy.

Войдите в Graph Обозреватель как Aline. Для этого шага можно использовать другой браузер. Это не приведет к прерыванию текущего сеанса. Кроме того, можно прервать текущий сеанс, выйдя из Graph Обозреватель и войдите в систему как Aline.

После входа активируйте роль администратора пользователей в течение пяти часов.

Запрос

Чтобы активировать роль, вызовите конечную точку roleAssignmentScheduleRequests . В этом запросе UserActivate действие позволяет активировать соответствующее назначение.

  • Для principalId укажите значение идентификатора (Aline).
  • RoleDefinitionId — это идентификатор роли, на которую вы имеете право, в данном случае — роль администратора пользователей.
  • Введите сведения о системе билетов, которая предоставляет проверяемое обоснование для активации запроса.
POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests
Content-type: application/json

{
    "action": "SelfActivate",
    "principalId": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "scheduleInfo": {
        "startDateTime": "2024-03-25T15:13:00.000Z",
        "expiration": {
            "type": "AfterDuration",
            "duration": "PT5H"
        }
    },
    "ticketInfo": {
        "ticketNumber": "CONTOSO:Security-012345",
        "ticketSystem": "Contoso ICM"
    }
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignmentScheduleRequests/$entity",
    "id": "295edd40-4646-40ca-89b8-ab0b46b6f60e",
    "status": "Granted",
    "createdDateTime": "2021-09-03T21:10:49.6670479Z",
    "completedDateTime": "2021-09-04T15:13:00Z",
    "action": "SelfActivate",
    "principalId": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "isValidationOnly": false,
    "targetScheduleId": "295edd40-4646-40ca-89b8-ab0b46b6f60e",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "createdBy": {
        "user": {
            "id": "7146daa8-1b4b-4a66-b2f7-cf593d03c8d2"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2021-09-04T15:13:00Z",
        "expiration": {
            "type": "afterDuration",
            "endDateTime": null,
            "duration": "PT5H"
        }
    },
    "ticketInfo": {
        "ticketNumber": "CONTOSO:Security-012345",
        "ticketSystem": "Contoso ICM"
    }
}

Вы можете подтвердить назначение, запустив GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests/filterByCurrentUser(on='principal'). Объект ответа возвращает только что активированное назначение роли с состоянием Granted. С вашей новой привилегией выполняйте все разрешенные действия в течение пяти часов, для выполнения задания. По истечении пяти часов срок действия активного назначения истекает, но благодаря вашему членству в группе ИТ-поддержки (пользователи) вы получите право на роль администратора пользователей.

Шаг 6. Очистка ресурсов

Войдите от имени глобального администратора и удалите следующие ресурсы, созданные для этого руководства: запрос на участие в роли и группу ИТ-поддержки (пользователи).

Отмена запроса на участие в роли

Запрос

POST https://graph.microsoft.com/v1.0/roleManagement/directory/roleEligibilityScheduleRequests
Content-type: application/json

{
    "action": "AdminRemove",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/"
}

Отклик

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleEligibilityScheduleRequests/$entity",
    "id": "dcd11a1c-300f-4d17-8c7a-523830400ec8",
    "status": "Revoked",
    "action": "AdminRemove",
    "principalId": "e77cbb23-0ff2-4e18-819c-690f58269752",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/"
}

Удаление группы ИТ-поддержки (пользователи)

Запрос возвращает код отклика 204 No Content.

DELETE https://graph.microsoft.com/v1.0/groups/e77cbb23-0ff2-4e18-819c-690f58269752

Заключение

В этом руководстве вы узнали, как управлять назначениями административных ролей в Microsoft Entra ID с помощью API PIM.

  • Хотя вы сделали группу правой на роль администратора, вы можете также назначить активную роль группе и сделать ее участников право на нее. В этом сценарии используйте PIM для API групп.
  • Для активации роли тестового пользователя требуется многофакторная проверка подлинности. Это требование является частью параметров роли Microsoft Entra, и вы можете изменить правила, чтобы не требовать многофакторной проверки подлинности.
  • В рамках настраиваемых правил можно также настроить следующие параметры:
    • Ограничьте максимально допустимую длительность активации роли.
    • Требовать или не требовать обоснование и сведения о билете для активации роли.