Atribuir funções privilegiadas usando o PIM para APIs de funções do Microsoft Entra

O Privileged Identity Management (PIM) ajuda as organizações a reduzir os riscos associados ao acesso privilegiado, limitando quando o acesso está ativo, gerenciando o escopo de acesso e fornecendo um log auditável de acesso privilegiado. O acesso privilegiado é normalmente concedido para fins administrativos por meio de grupos atribuíveis a funções ou funções de administrador.

A Contoso quer delegar algumas funções administrativas atribuindo funções do Microsoft Entra aos usuários por meio de grupos de segurança. A empresa atribui qualificação em vez de funções privilegiadas persistentemente ativas. Esse método é eficaz porque:

  • A remoção ou adição de membros do grupo também remove ou adiciona administradores.
  • Os membros do grupo herdam atribuições de função. Você pode atribuir mais funções a um grupo em vez de atribuir funções diretamente a usuários individuais.
  • Atribuir qualificação em vez de privilégios persistentemente ativos impõe acesso just-in-time, concedendo permissões temporárias para realizar tarefas privilegiadas. Quando um membro do grupo precisa de privilégios, ele ativa sua atribuição temporariamente. Todas as ativações de função são auditáveis.

Você pode modelar a qualificação para função por meio de grupos de duas maneiras:

  • Conceda a um grupo uma atribuição de função permanente e torne as entidades de segurança elegíveis para o grupo. Nesse cenário, os membros do grupo ativam sua associação de grupo para obter atribuições de função ativas.
  • Conceda a um grupo uma atribuição de função qualificada e torne as entidades de segurança membros permanentes do grupo. Nesse cenário, os membros do grupo ativam suas atribuições de função para obter privilégios.

Neste tutorial, você aprende a:

  • Crie um grupo de segurança atribuível à função.
  • Torne um grupo de segurança atribuível de função qualificado para uma função privilegiada.
  • Conceda acesso just-in-time a um usuário ativando sua atribuição qualificada.

Pré-requisitos

Para concluir este tutorial, você precisa:

  • Um locatário do Microsoft Entra com uma licença de Governança do Microsoft Entra ID P2 ou Microsoft Entra ID Governance
  • Um cliente de API, como o Graph Explorer, entrou com uma conta que tem, pelo menos, a função de Administrador de Função Privilegiada
  • Usuário de teste habilitado para MFA com acesso ao aplicativo Microsoft Authenticator
  • Permissões delegadas:
    • Group.ReadWrite.All Para criar o grupo
    • RoleManagement.ReadWrite.Directory para tornar o grupo atribuível a funções e para configurar e gerenciar atribuições de função ativas e qualificadas. Essa permissão deve ser concedida a todos os usuários no locatário.

Etapa 1: Criar um grupo de segurança atribuível à função

Atribua a si mesmo como proprietário do grupo e adicione você e o usuário de teste como membros.

Solicitação: criar um grupo atribuível à função

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"
    ]
}

Resposta

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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
}

Etapa 2: criar um unifiedRoleEligibilityScheduleRequest

Atribua o grupo de segurança como qualificado para a função de Administrador de usuários por um ano. Defina o escopo da atribuição qualificada para todo o locatário. O escopo no nível do locatário permite que o administrador do usuário gerencie todos os usuários em seu locatário, exceto usuários com privilégios mais altos, como Administradores Globais.

Solicitação

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"
        }
    }
}

Resposta

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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": {}
}

Etapa 3: confirmar as atribuições de função atuais do usuário

Os membros do grupo agora estão qualificados para a função de Administrador de Usuários, mas não podem usar a função até que a ativem. A solicitação a seguir confirma as atribuições de função ativas existentes do usuário. A solicitação retorna uma coleção vazia.

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

Etapa 4: o usuário autoativa sua tarefa qualificada

Um tíquete CONTOSO: Security-012345 de incidente requer a invalidação de todos os tokens de atualização do funcionário. Como membro do Helpdesk de TI, Aline deseja resolver essa tarefa.

Inicie o aplicativo Authenticator em seu telefone e abra a conta de Aline Dupuy.

Entre no Graph Explorer como Aline. A solicitação a seguir mostra como ativar sua função de administrador de usuários por cinco horas.

Solicitação

Para ativar uma função, chame o roleAssignmentScheduleRequests ponto de extremidade. Nessa solicitação, a UserActivate ação permite que você ative sua tarefa qualificada.

  • Para principalId, forneça o valor da id (de Aline).
  • O roleDefinitionId é a ID da função para a qual você está qualificado, nesse caso, a função de Administrador de Usuários.
  • Insira os detalhes do sistema de tíquetes que fornece uma justificativa auditável para ativar a solicitação.
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"
    }
}

Resposta

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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"
    }
}

Etapa 5: confirmar a atribuição da função

Você pode confirmar sua atribuição executando a seguinte solicitação. O objeto de resposta retorna sua atribuição de função recém-ativada com seu status definido como ou ProvisionedGranted. Com seu novo privilégio, execute todas as ações permitidas dentro de cinco horas para as quais sua atribuição está ativa. Após cinco horas, a atribuição ativa expira, mas por meio de sua associação ao grupo de Suporte de TI (Usuários), você está qualificado para a função de Administrador de Usuários.

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

Etapa 6: limpar os recursos

Entre como o Administrador de Função Privilegiada e exclua os recursos criados para este tutorial.

Revogar a qualificação de função para o grupo

Solicitação

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": "/"
}

Resposta

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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"
        }
    }
}

Excluir o grupo Suporte de TI (Usuários)

A solicitação retorna o código de resposta 204 No Content.

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

Conclusão

Neste tutorial, você aprendeu a gerenciar atribuições de função privilegiadas no Microsoft Entra ID usando APIs do PIM.

  • Em vez de tornar o grupo qualificado para a função privilegiada, você pode atribuir uma função ativa ao grupo e tornar os membros elegíveis para o grupo usando APIs do PIM for Groups.
  • A MFA era necessária para a ativação da função. Você pode alterar esse requisito nas configurações de função do Microsoft Entra.
  • Você também pode configurar:
    • Duração máxima permitida para ativação de função.
    • Se a justificativa e as informações do tíquete são necessárias para ativar a função.