Criar roleDefinitions

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Crie um novo objeto unifiedRoleDefinition para um provedor RBAC. Esse recurso requer uma licença P1 ou P2 do Microsoft Entra ID.

Atualmente, há suporte para os seguintes provedores RBAC:

  • PC na nuvem.
  • gerenciamento de dispositivos (Intune)
  • Defender (Microsoft Defender XDR)
  • diretório (Microsoft Entra ID)

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet
✅ ✅ ✅ ✅

Permissões

As tabelas a seguir mostram a permissão ou permissões menos privilegiadas necessárias para chamar essa API em cada tipo de recurso com suporte. Siga as práticas recomendadas para solicitar permissões com privilégios mínimos. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Para um provedor de PC na nuvem

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) DeviceManagementRBAC.ReadWrite.All CloudPC.ReadWrite.All, Directory.ReadWrite.All, RoleManagement.ReadWrite.CloudPC, RoleManagement.ReadWrite.Directory
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application DeviceManagementRBAC.ReadWrite.All CloudPC.ReadWrite.All, Directory.ReadWrite.All, RoleManagement.ReadWrite.CloudPC, RoleManagement.ReadWrite.Directory

Para um provedor de gerenciamento de dispositivos (Intune)

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) RoleManagement.ReadWrite.Defender Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application RoleManagement.ReadWrite.Defender Indisponível.

Para um provedor Defender

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) RoleManagement.ReadWrite.Directory Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application RoleManagement.ReadWrite.Directory Directory.ReadWrite.All

Para um provedor de diretório (Microsoft Entra ID)

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) DeviceManagementRBAC.ReadWrite.All CloudPC.ReadWrite.All, Directory.ReadWrite.All, RoleManagement.ReadWrite.CloudPC, RoleManagement.ReadWrite.Directory
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application DeviceManagementRBAC.ReadWrite.All CloudPC.ReadWrite.All, Directory.ReadWrite.All, RoleManagement.ReadWrite.CloudPC, RoleManagement.ReadWrite.Directory

Importante

Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. O Administrador de Função Privilegiada é a função com menos privilégios com suporte para esta operação.

Solicitação HTTP

Para criar uma definição de função para um provedor de gerenciamento de dispositivos:

POST /roleManagement/deviceManagement/roleDefinitions

Para criar uma definição de função para um provedor do Defender:

POST /roleManagement/defender/roleDefinitions

Para criar uma definição de função para um provedor de diretório:

POST /roleManagement/directory/roleDefinitions

Para criar uma definição de função para um provedor de PC na nuvem:

POST /roleManagement/cloudPc/roleDefinitions

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON do objeto unifiedRoleDefinition .

A tabela a seguir mostra as propriedades que são necessárias ao criar um roleDefinition.

Parâmetro Tipo Descrição
displayName string O nome de exibição para a definição de função.
isEnabled Booliano Sinalizador que indica se a função está habilitada para atribuição. Se for false, a função não estará disponível para atribuição.
rolePermissions Coleção unifiedRolePermission Lista de permissões incluídas na função.

Resposta

Se for bem-sucedido, esse método retornará 201 Created o código de resposta e um novo objeto unifiedRoleDefinition no corpo da resposta.

Exemplo 1: Criar uma função personalizada para um provedor de diretório

Solicitação

POST https://graph.microsoft.com/beta/roleManagement/directory/roleDefinitions
Content-type: application/json

{
  "description": "Update basic properties of application registrations",
  "displayName": "Application Registration Support Administrator",
  "rolePermissions":
    [
        {
            "allowedResourceActions": 
            [
                "microsoft.directory/applications/basic/read"
            ]
        }
    ],
    "isEnabled" : "true"
}

Resposta

O exemplo a seguir mostra a 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/beta/$metadata#roleManagement/directory/roleDefinitions/$entity",
    "id": "d5eec5e0-6992-4c6b-b430-0f833f1a815a",
    "description": "Update basic properties of application registrations",
    "displayName": "Application Registration Support Administrator",
    "isBuiltIn": false,
    "isEnabled": true,
    "templateId": "d5eec5e0-6992-4c6b-b430-0f833f1a815a",
    "version": null,
    "rolePermissions": [
        {
            "allowedResourceActions": [
                "microsoft.directory/applications/standard/read",
                "microsoft.directory/applications/basic/update"
            ],
            "condition": null
        }
    ],
    "inheritsPermissionsFrom": []
}

Exemplo 2: Criar uma função personalizada para um provedor de PC na nuvem

Solicitação

POST https://graph.microsoft.com/beta/roleManagement/cloudPC/roleDefinitions
Content-type: application/json

{
  "description": "An example custom role",
  "displayName": "ExampleCustomRole",
  "rolePermissions":
    [
        {
            "allowedResourceActions": 
            [
                "Microsoft.CloudPC/CloudPCs/Read"
            ]
        }
    ],
    "condition" : "null"
}

Resposta

O exemplo a seguir mostra a 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/beta/$metadata#roleManagement/cloudPc/roleDefinitions/$entity",
    "id": "b7f5ddc1-b7dc-4d37-abce-b9d6fc15ffff",
    "description": "An example custom role",
    "displayName": "ExampleCustomRole",
    "isBuiltIn": false,
    "isEnabled": true,
    "templateId": "b7f5ddc1-b7dc-4d37-abce-b9d6fc15ffff",
    "version": null,
    "rolePermissions": [
        {
            "allowedResourceActions": [
                "Microsoft.CloudPC/CloudPCs/Read"
            ],
            "condition": null
        }
    ],
    "resourceScopes":["/"]
}

Exemplo 3: Criar uma função personalizada para um provedor do Defender

Solicitação

POST https://graph.microsoft.com/beta/roleManagement/defender/roleDefinitions
Content-type: application/json

{
  "description": "Role 1 description",
  "displayName": "Role 1",
  "rolePermissions":
    [
        {
            "allowedResourceActions": 
            [
                "microsoft.xdr/securityposture/read"
            ]
        }
    ]
}

Resposta

O exemplo a seguir mostra a 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/beta/$metadata#roleManagement/defender/roleDefinitions/$entity",
    "id": "d5eec5e0-6992-4c6b-b430-0f833f1a815b",
    "description": "Role 1 description",
    "displayName": "Role 1",
    "rolePermissions": [
        {
            "allowedResourceActions": [
                "microsoft.xdr/securityposture/read"
            ]
        }
    ]
}