Nota do editor: Bem-vindo ao quarto e último tutorial prático da série «Compreender e prevenir ataques à identidade do agente Entra ID: Um guia abrangente». Este guia técnico em várias partes ajuda-o a compreender a abordagem da Microsoft em relação às identidades dos agentes e a forma como pode protegê-las contra agentes maliciosos. Para rever os capítulos anteriores e as lições práticas, comece aqui.
No Capítulo 5 do nosso guia, aprendeu e praticou a utilização do Registo de Agentes da Microsoft e acompanhou passo a passo as operações de três fluxos de autenticação de identidade de agentes no Entra ID.
Neste «Practice Checkpoint», iremos verificar os três fluxos que discutimos, acompanhando cada um deles de início a fim através do Microsoft Graph e mostrando as reivindicações reais do token em cada etapa, para ligar todos os pontos.
Por uma questão de coerência e clareza, continuaremos a utilizar a mesma identidade de agente que criámos nos passos anteriores e analisaremos os tokens resultantes produzidos em cada fluxo.
Eis um breve resumo das informações de que precisa:
- ID do projeto = 3534ec06-21ea-4080-abd4-95116e260203
- ID do Blueprint SP = 17a48807-f813-421b-85b9-8c7e794bc4b9
- Identificação do agente: ID = b85d92be-fa90-486b-94ed-b5ad91d35ceb
- ID do agente do utilizador = 2954440b-1617-46b1-9156-dad15f1f824f
- Permissões delegadas hereditárias = Group.Read.All
- Permissões diretas exclusivas da aplicação ao nível da identidade do agente = User.Read.All
Fluxo autónomo
Neste fluxo, a própria identidade do agente precisa de aceder a um recurso.
Para começar, precisamos de obter o token T1. Este processo é semelhante à obtenção de um token de acesso para um modelo de identidade de agente, mas com duas diferenças fundamentais:
- âmbito =
api://AzureADTokenExchange/.default - incluir fmi_path =
<agent-identity-id>

Podemos descodificar o token T1, em que:
- O «oid» corresponde ao ID do SP do blueprint.
- azp corresponde ao ID do modelo de identidade do agente.
- aud pertence à aplicação «AAD Token Exchange Endpoint», que é
api://AzureADTokenExchange.

Utilizando o token T1, podemos agora obter o token de acesso de identidade do agente.

Ao analisarmos o token Graph, podemos constatar que:
- A alegação da aud é o Microsoft Graph.
- O «appid», bem como a declaração «oid», corresponde ao ID de identidade do agente.
- O funções A reivindicação inclui o
User.Read.Allautorização, que atribuímos anteriormente e que foi atribuída diretamente à identidade do agente como uma autorização exclusiva da aplicação.
Nesta fase, a identidade do agente pode aceder ao Graph no inquilino, de acordo com as suas permissões exclusivas da aplicação.

Fluxo «em nome de»
Neste fluxo, a identidade do agente executa ações delegadas na qualidade de utilizador e demonstra âmbitos de delegação hereditários.
Para começar, teremos de obter um token de cliente (TC). Para tal, temos primeiro de definir os âmbitos de autorização OAuth2 no blueprint e dar o meu consentimento como utilizador.

Como próximo passo, iremos criar uma aplicação SAP através da interface do utilizador.

Vamos adicionar as permissões do Blueprint que acabámos de criar à nossa aplicação DemoSAP:

Para esta demonstração, vamos também permitir o fluxo do cliente público:

Agora podemos obter um token TC. O ClientID é o ID da aplicação que acabámos de criar:

A seguir, temos de passar pelas solicitações de consentimento habituais.

Isto irá devolver o token TC, que me pertence enquanto utilizador. Podemos ver que a reivindicação «aud» corresponde ao ID do Blueprint:

Agora podemos obter o token T1 utilizando o mesmo método que já utilizámos.

Antes de continuarmos, teríamos de dar o nosso consentimento para que a identidade do agente possa agir em nome do nosso utilizador, utilizando uma chamada padrão do OAuth2PermissionGrants com o âmbito que atribuímos como permissões hereditárias.
Se já tiver dado o seu consentimento para «AllPrincipals» na secção «Configurar permissões herdáveis», pode ignorar esta chamada.

Por fim, utilizando os tokens TC e T1, podemos obter o token de acesso (TR).

O token de acesso descodificado apresenta:
- Reivindicação SCP com as permissões hereditárias «Group.Read.All» que adicionámos anteriormente ao nível do blueprint.
- o nome de exibição da aplicação e a reivindicação «appid», que identificam a identidade do agente que está a agir em nome do utilizador.
- As reivindicações «idtyp», «name» e «oid» pertencem todas ao utilizador (uma vez que se trata de um token delegado).

Fluxo de utilizadores do agente
Este fluxo é relevante para um utilizador agente que precise de realizar ações com um contexto de utilizador.
Tal como no fluxo autónomo de identidade do agente, precisamos de obter um token T1.

Em seguida, teríamos de dar o nosso consentimento para permitir que a identidade do agente atue em nome do utilizador do agente, tal como fizemos no fluxo OBO.
Desta vez, iremos especificar o ID do utilizador do agente como o ID do principal. Se já tiver dado o seu consentimento para «AllPrincipals» na secção «Configurar permissões herdáveis», pode ignorar esta chamada.

Agora, utilizando o token T1, podemos obter o token T2.

O token T2 descodificado revela as reivindicações «azp», «oid» e «sub», todas definidas com o ID de identidade do agente.

Utilizando os tokens T1 e T2, podemos obter o token de acesso TR.

Como podemos ver, este token de acesso foi emitido para o Microsoft Graph. Apresenta o seguinte:
- A reivindicação idtyp é um utilizador
- A reivindicação «oid» corresponde ao ID de utilizador do agente
- O «appid» está definido como o ID de identidade do agente, que é o pai do utilizador do agente.
- scp contém o
Group.Read.All, os escopos que adicionámos anteriormente.

Agora já tem uma identidade de agente ativa. Como é que a protege?
A criação da sua identidade de agente através destas sessões práticas deverá ter-lhe proporcionado uma compreensão prática de como os agentes irão trabalhar no seu inquilino Entra ID.
Agora, leia o capítulo final do nosso guia para ter uma visão geral do que pode correr mal — e de como proteger estas novas identidades.
Descubra como evitar uma catástrofe no Capítulo 6.
Explore o guia
- Introdução: Compreender e prevenir ataques à identidade do agente Entra ID: Um guia completo
- Capítulo 1: Conheça as identidades dos agentes da Entra ID (a propósito, não são pessoas)
- Capítulo 2: A taxonomia das identidades de carga de trabalho no Entra ID: aplicações empresariais, entidades de serviço e outras formas de confusão organizada
- Capítulo 3: Compreender o Microsoft Agent ID e a Plataforma de Identidade do Agente
- Ponto de verificação 1: Criação de um ID de agente com o MS Graph
- Capítulo 4: Identidades dos agentes: análise aprofundada do design
- Ponto de verificação 2: Definição das permissões de identidade do agente
- Capítulo 5: O Registo de Agentes e o Funcionamento das Identidades dos Agentes no Entra ID
- Ponto de verificação 3: Registo de um agente — com e sem ID de agente
- Capítulo 6: Onde as coisas podem correr mal com as identidades dos agentes no Entra ID — e como evitar o desastre
