Поделиться через


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

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

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

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

Вы можете моделировать право на роль с помощью групп двумя способами:

  • Предоставьте группе постоянное назначение ролей и сделайте участников подходящими для группы. В этом сценарии члены группы активируют свое членство в группе, чтобы получить активные назначения ролей.
  • Предоставьте группе соответствующее назначение ролей и сделайте участников постоянными членами группы. В этом сценарии члены группы активируют назначения ролей для получения привилегий.

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

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

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

Чтобы завершить работу с этим руководством, вам потребуется:

  • Клиент Microsoft Entra с лицензией Microsoft Entra ID P2 или Управление Microsoft Entra ID
  • Клиент API, например Graph, Обозреватель вошел с учетной записью, которая имеет по крайней мере роль администратора привилегированных ролей.
  • Тестовый пользователь, включенный для MFA, с доступом к приложению Microsoft Authenticator
  • Делегированные разрешения:
    • Group.ReadWrite.All , чтобы создать группу
    • 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/e2330663-f949-41b5-a3dc-faeb793e14c6"
    ],
    "members@odata.bind": [
        "https://graph.microsoft.com/v1.0/users/e2330663-f949-41b5-a3dc-faeb793e14c6",
        "https://graph.microsoft.com/v1.0/users/d9771b4c-06c5-491a-92cb-3aa4e225a725"
    ]
}

Отклик

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

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups/$entity",
    "id": "1189bbdd-1268-4a72-8c6d-6fe77d28f2e3",
    "description": "IT Helpdesk to support Contoso employees",
    "displayName": "IT Helpdesk (User)",
    "groupTypes": [],
    "isAssignableToRole": true,
    "mailEnabled": false,
    "mailNickname": "userHelpdesk",
    "securityEnabled": true
}

Шаг 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": "1189bbdd-1268-4a72-8c6d-6fe77d28f2e3",
    "scheduleInfo": {
        "startDateTime": "2025-03-21T11:06:00Z",
        "expiration": {
            "endDateTime": "2026-03-21T00: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": "12956159-24b8-4619-b9ea-8ce21f81a38f",
    "status": "Provisioned",
    "createdDateTime": "2025-03-21T11:07:23.4563591Z",
    "completedDateTime": "2025-03-21T11:07:24.8573295Z",
    "action": "adminAssign",
    "principalId": "1189bbdd-1268-4a72-8c6d-6fe77d28f2e3",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "targetScheduleId": "12956159-24b8-4619-b9ea-8ce21f81a38f",
    "justification": "Assign User Admin eligibility to IT Helpdesk (User) group",
    "createdBy": {
        "application": null,
        "device": null,
        "user": {
            "id": "e2330663-f949-41b5-a3dc-faeb793e14c6"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2025-03-21T11:07:24.8573295Z",
        "expiration": {
            "type": "afterDateTime",
            "endDateTime": "2026-03-21T00:00:00Z",
            "duration": null
        }
    },
    "ticketInfo": {}
}

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

Члены группы теперь имеют право на роль администратора пользователей, но не могут использовать роль, пока они не активируют ее. Следующий запрос подтверждает существующие назначения активных ролей пользователя. Запрос возвращает пустую коллекцию.

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignments?$filter=principalId eq 'd9771b4c-06c5-491a-92cb-3aa4e225a725'

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

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

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

Войдите в Graph Обозреватель как Aline. В следующем запросе показано, как активировать роль администратора пользователей в течение пяти часов.

Запрос

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

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

{
    "action": "SelfActivate",
    "principalId": "d9771b4c-06c5-491a-92cb-3aa4e225a725",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "scheduleInfo": {
        "startDateTime": "2025-03-21T11:46: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": "fdde3804-2cd0-4349-b1f6-674927c94f0b",
    "status": "Provisioned",
    "createdDateTime": "2025-03-21T11:46:41.9645736Z",
    "completedDateTime": "2025-03-21T11:46:42.4165908Z",
    "action": "selfActivate",
    "principalId": "d9771b4c-06c5-491a-92cb-3aa4e225a725",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "isValidationOnly": false,
    "targetScheduleId": "fdde3804-2cd0-4349-b1f6-674927c94f0b",
    "justification": "Need to invalidate all app refresh tokens for Contoso users.",
    "createdBy": {
        "user": {
            "id": "d9771b4c-06c5-491a-92cb-3aa4e225a725"
        }
    },
    "scheduleInfo": {
        "startDateTime": "2025-03-21T11:46:42.4165908Z",
        "expiration": {
            "type": "afterDuration",
            "endDateTime": null,
            "duration": "PT5H"
        }
    },
    "ticketInfo": {
        "ticketNumber": "CONTOSO:Security-012345",
        "ticketSystem": "Contoso ICM"
    }
}

Шаг 5. Подтверждение назначения роли

Вы можете подтвердить назначение, выполнив следующий запрос. Объект ответа возвращает только что активированное назначение роли с состоянием Provisioned или Granted. С вашей новой привилегией выполняйте все разрешенные действия в течение пяти часов, для выполнения задания. По истечении пяти часов срок действия активного назначения истекает, но благодаря вашему членству в группе ИТ-поддержки (пользователи) вы получите право на роль администратора пользователей.

GET https://graph.microsoft.com/v1.0/roleManagement/directory/roleAssignmentScheduleRequests/filterByCurrentUser(on='principal')?$expand=roleDefinition

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

Войдите в систему с правами администратора привилегированных ролей и удалите ресурсы, созданные для этого руководства.

Отмена права на роль для группы

Запрос

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

{
    "action": "AdminRemove",
    "principalId": "1189bbdd-1268-4a72-8c6d-6fe77d28f2e3",
    "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": "749ebf39-ffa9-4f43-aaaf-58e0d41f9efc",
    "status": "Revoked",
    "createdDateTime": "2025-03-21T12:03:14.551954Z",
    "action": "adminRemove",
    "principalId": "1189bbdd-1268-4a72-8c6d-6fe77d28f2e3",
    "roleDefinitionId": "fe930be7-5e62-47db-91af-98c3a49a38b1",
    "directoryScopeId": "/",
    "createdBy": {
        "user": {
            "displayName": null,
            "id": "e2330663-f949-41b5-a3dc-faeb793e14c6"
        }
    }
}

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

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

DELETE https://graph.microsoft.com/v1.0/groups/d9771b4c-06c5-491a-92cb-3aa4e225a725

Заключение

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

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