Interpretar uma solicitação Microsoft Graph
Este passo a passo explica como um aplicativo Web Java pode ler o perfil do usuário conectado de Microsoft Graph. A solicitação, Java fragmento e resposta abaixo são exemplos ilustrativos com explicações, não um laboratório ou um requisito para enviar uma solicitação de API real.
Relacionar configuração, escopos e consentimento
O exemplo de servlet de referência usa a permissão delegada User.Read . Sua propriedade de configuração aad.scopes fornece esse valor para Config.SCOPES, que o código de autenticação solicita durante o login.
A lista de permissões de API do registro de aplicativo descreve as permissões configuradas. A captura de tela a seguir é um exemplo dessa exibição, não uma instrução para alterar um registro.
Três fatos explicam o contexto de autorização:
- O código solicita a permissão delegada
User.Readpara o Microsoft Graph. - O consentimento pode vir do usuário ou de um administrador autorizado, dependendo da política de locatário e das concessões existentes.
- Adicionar uma permissão ao registro em si não concede consentimento nem altera os escopos solicitados do código.
O exemplo solicita essa permissão durante a entrada, portanto, não há uma suposição separada de que cada solicitação do Graph exibe um prompt de consentimento.
Ler a solicitação HTTP
O exemplo HTTP a seguir mostra as partes essenciais de uma solicitação de perfil.
<graph-access-token> é um marcador explicativo, não um token para ser obtido ou colado em uma ferramenta.
GET /v1.0/me HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer <graph-access-token>
A solicitação usa HTTPS para acessar https://graph.microsoft.com/v1.0/me.
/me identifica o usuário conectado em um contexto delegado. O Authorization cabeçalho carrega um token de acesso destinado a Microsoft Graph; ele não carrega o token de ID do aplicativo, um código de autorização ou um segredo do cliente.
User.Read é suficiente para a operação ilustrada de leitura do perfil do usuário conectado. Ele não autoriza o acesso arbitrário às informações de outros usuários. A referência da API para obter um usuário descreve o endpoint e as permissões.
Ler o equivalente do SDK Java
O CallGraphServlet do exemplo histórico gerencia sua própria rota /call_graph e usa o SDK do Microsoft Graph para fazer a solicitação à API. O fragmento a seguir ilustra essa chamada após a aquisição do token ter sido bem-sucedida.
User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();
GraphHelper é uma função auxiliar definida pelo exemplo, não uma API nativa da MSAL4J. Ele cria um GraphServiceClient cujo provedor de autenticação fornece o token de acesso ao Graph do usuário conectado a partir do contexto autenticado do exemplo.
contextAdapter conecta a solicitação atual a esse contexto de aplicativo.
Nesta versão do SDK, me() seleciona o ponto de extremidade do usuário conectado, buildRequest() cria a solicitação e get() a envia e desserializa a resposta em um modelo Microsoft GraphUser. O fragmento omite o servlet ao redor, importações, tratamento de sessão e processamento de erros; não é um aplicativo completo.
Note
Este fragmento reflete a sintaxe do Microsoft Graph SDK para Java da amostra histórica 5.5.0. O SDK v6 altera o padrão de solicitação, a construção do cliente, a integração de autenticação e o acesso ao modelo. O guia de atualização do SDK v6 do Microsoft Graph Java explica essas diferenças. Uma expressão de solicitação somente v6 não é compatível com a dependência v5 do exemplo e o código auxiliar.
Interprete uma resposta de exemplo
Uma resposta de exemplo abreviada pode conter os campos de perfil a seguir. Os valores são fictícios e não são saídas que o aprendiz precisa reproduzir.
{
"displayName": "Avery Rivera",
"jobTitle": "Service specialist",
"mail": "avery@example.com"
}
O aplicativo pode usar esses campos para apresentar informações de perfil. Os valores reais dependem do perfil de diretório do usuário e os campos podem estar ausentes ou nulos. Um campo de perfil não é uma prova de emprego ou um substituto para a política de autorização do aplicativo.
A divisão geral de responsabilidades é importante: Microsoft Entra ID emite um token sob as regras de permissão e consentimento aplicáveis, o MSAL4J adquire esse token e o SDK do Graph ou um cliente HTTP o usa para solicitar dados. A mera construção de um cliente do Graph não concede acesso.