Configurar permissões herdáveis para planos de identidade de agentes

Configure permissões herdáveis em um blueprint de identidade do agente para pré-autorizar um conjunto base de escopos delegados e funções de aplicativo. As identidades do agente criadas a partir do blueprint herdam automaticamente essas permissões sem avisos de consentimento interativos.

Para obter informações conceituais sobre como as permissões herdáveis se relacionam com o acesso aos recursos necessários e as concessões de permissão direta, consulte as permissões herdáveis e o acesso necessário aos recursos.

Pré-requisitos

  • Um modelo de identidade de agente existente já foi criado e configurado
  • Uma das seguintes permissões:
    • Função de desenvolvedor para ID do agente para gerenciar blueprints de identidade do agente de propriedade do usuário
    • Função de Administrador de ID de Agente para gerenciar modelos de identidade do agente

Como funcionam as permissões herdáveis

Durante a emissão de um token para a identidade de um agente, a plataforma mescla os escopos qualificados herdados com os escopos delegados solicitados pelo agente. Escopos herdados aparecem na declaração scp do token de acesso e as funções herdadas aparecem na declaração de funções . Para obter detalhes sobre as condições de herança e a relação entre declarações, concessões e permissões efetivas, consulte as permissões herdáveis e o acesso necessário aos recursos.

Padrões de herança

O artigo de conceito descreve padrões de herança em um alto nível. A tabela a seguir mostra os valores específicos kind usados na API ao configurar a herança por aplicativo de recurso:

Herança Variante Descrição
Tudo Permitido allAllowed Herda todos os escopos delegados disponíveis ou funções de aplicativo para o aplicativo de recursos especificado. Os escopos ou funções concedidos recentemente na entidade do blueprint de identidade do agente são incluídos automaticamente.
None none Não herde escopos ou funções para o aplicativo de recurso especificado. Use isso para desabilitar explicitamente a herança para escopos (noScopes) ou funções (noRoles) de forma independente.

Você pode configurar escopos e funções independentemente no mesmo recurso. Por exemplo, você pode herdar todos os escopos sem herdar nenhum papel, ou vice-versa.

Limitações de permissões herdáveis

  • No máximo, 50 aplicativos de recursos por blueprint de identidade de agente (por exemplo, até 50 entradas na coleção inheritablePermissions). Se você exceder esse limite, reduza o número de aplicativos de recursos para permanecer dentro do limite com suporte.

Examine e monitore regularmente a configuração de permissões herdáveis. Reavaliar escopos e funções herdados para garantir que permaneçam apropriados para seu caso de uso. Audite quais escopos e funções herdados estão sendo usados pelos agentes e remova quaisquer permissões não utilizadas tanto da entidade do blueprint de identidade do agente quanto da lista de permissões herdáveis para manter a higiene de segurança.

Configurar permissões herdáveis (usando Microsoft Graph)

Para configurar permissões herdáveis, use a propriedade de navegação inheritablePermissions no recurso do aplicativo agentIdentityBlueprint. Cada entrada especifica a configuração de herança de escopos e funções para um único aplicativo de recurso. Documente suas decisões de configuração acompanhando por que cada escopo ou função é herdável e quem a aprovou para fins de auditoria.

Ao especificar o resourceAppId em suas solicitações, verifique se você fornece um formato GUID válido. GUIDs inválidos resultam em Erro 400 de Solicitação Inválida.

Adicionar todos os escopos e a herança de funções para o Microsoft Graph

Solicitação

POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0

{
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Adicionar todos os escopos e herança de funções para vários recursos

Você pode configurar permissões herdáveis para vários aplicativos de recursos no mesmo blueprint. Cada recurso requer uma solicitação POST separada. O exemplo a seguir adiciona herança para Microsoft Graph e SharePoint Online.

Request (Microsoft Graph)

POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0

{
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Request (SharePoint Online)

POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0

{
  "resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Adicionar somente herança de escopos (sem funções)

Para herdar escopos delegados, mas não funções de aplicativo, defina inheritableRoles como noRoles.

Solicitação

POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0

{
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.noRoles",
    "kind": "none"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.noRoles",
    "kind": "none"
  }
}

Adicionar somente herança de funções (sem escopos)

Para herdar funções de aplicativo, mas não escopos delegados, defina inheritableScopes como noScopes.

Solicitação

POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0

{
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.noScopes",
    "kind": "none"
  },
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.noScopes",
    "kind": "none"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Atualizar para desabilitar a herança de funções

Se já existir uma entrada para um resourceAppId, use PATCH para atualizá-la em vez de tentar criar uma entrada duplicada, o que resultaria em um erro de conflito 409. O exemplo a seguir desabilita a herança de função mantendo a herança de escopo habilitada.

Solicitação

PATCH https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
Content-Type: application/json
OData-Version: 4.0

{
  "inheritableRoles": {
    "@odata.type": "#microsoft.graph.noRoles",
    "kind": "none"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.allAllowedScopes",
    "kind": "allAllowed"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.noRoles",
    "kind": "none"
  }
}

Atualizar para desativar a herança de escopos

O exemplo a seguir desabilita a herança de escopo mantendo a herança de função habilitada.

Solicitação

PATCH https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
Content-Type: application/json
OData-Version: 4.0

{
  "inheritableScopes": {
    "@odata.type": "#microsoft.graph.noScopes",
    "kind": "none"
  }
}

Resposta

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
  "resourceAppId": "00000003-0000-0000-c000-000000000000",
  "inheritableScopes": {
    "@odata.type": "microsoft.graph.noScopes",
    "kind": "none"
  },
  "inheritableRoles": {
    "@odata.type": "microsoft.graph.allAllowedRoles",
    "kind": "allAllowed"
  }
}

Excluir permissões herdáveis existentes

Solicitação

DELETE https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
OData-Version: 4.0

Resposta

HTTP/1.1 204 No Content