Exercício – Autorizar o acesso à API do Microsoft Graph com a MSAL
Neste exercício, você configurará o aplicativo com permissões e usará a MSAL para acessar informações de perfil de usuário da API do Microsoft Graph (MS Graph).
Adicionar permissões do Microsoft Graph ao registro de aplicativo
Os serviços Web protegidos pelo Microsoft Entra ID definem um conjunto de permissões que fornecem acesso à funcionalidade da API e aos dados expostos por esse serviço. Antes que um aplicativo possa acessar dados ou agir em nome de um usuário, ele deve solicitar que essas permissões sejam aprovadas pelos usuários. Você pode atribuir essas permissões de API ao registro do aplicativo no portal do Azure. Estas são as etapas para atribuir permissões da API do Microsoft Graph ao seu aplicativo.
Na tela Registros de aplicativo, selecione Permissões de API para adicionar acesso às APIs de que seu aplicativo precisa.
Selecione Adicionar permissão.
Verifique se a guia APIs da Microsoft está selecionada.
Na seção APIs da Microsoft comumente usadas, selecione Microsoft Graph e, em seguida, selecione Permissões delegadas.
Na seção Permissões delegadas, role para baixo e selecione User.Read na lista. Essa permissão específica é usada para acessar as informações do usuário conectado no ponto de extremidade
https://graph.microsoft.com/v1.0/me
.Selecione Adicionar Permissões.
Executar o aplicativo
Você pode experimentar a chamada à API do Graph no aplicativo que está em execução do exercício anterior.
Abra o navegador e navegue até
http://localhost:8080/msal4j-servlet-graph/
. Se você ainda não estiver conectado, será redirecionado para entrar com o Microsoft Entra ID. Na entrada bem-sucedida, você deverá ver uma página, conforme mostrado na imagem a seguir.Selecione o botão Grafo de chamadas para fazer uma chamada ao ponto de extremidade
/me
do Microsoft Graph e ver os detalhes do usuário exibidos.
Visão geral do código para acesso ao Microsoft Graph
Você pode encontrar o código para acessar a API do Microsoft Graph na classe servlet CallGraphServlet.java
no diretório msal4j/callgraphwebapp/ do projeto de exemplo. Ele define o ponto de extremidade /call_graph
no aplicativo, que faz chamadas autorizadas para o ponto de extremidade https://graph.microsoft.com/v1.0/me
da API do Microsoft Graph para recuperar as informações de perfil do usuário conectado. Veja mais detalhes sobre o código de acesso do Graph.
No arquivo ./src/main/resources/authentication.properties, o valor de
aad.scopes
é definido como o escopo User.Read.Os escopos informam ao Microsoft Entra ID o nível de acesso que o aplicativo está solicitando e mapeiam para as permissões no registro do aplicativo. Com base nos escopos solicitados, o Microsoft Entra ID apresenta uma caixa de diálogo de consentimento para o usuário no momento da conexão. Se o usuário consentir com um ou mais escopos, ele será codificado no
access_token
resultante retornado na resposta de autenticação.Quando o usuário navega para
/call_graph
, o aplicativo cria uma instância do IGraphServiceClient (SDK Java do Microsoft Graph), passando o token de acesso do usuário conectado. O cliente do Graph daqui em diante coloca o token de acesso nos cabeçalhos de autorização de suas solicitações. Em seguida, o aplicativo solicita que o cliente do Graph chame o ponto de extremidade/me
do Microsoft Graph para gerar detalhes para o usuário conectado.O código a seguir é tudo o que um desenvolvedor de aplicativos precisa escrever para acessar o ponto de extremidade
/me
, desde que ele já tenha um token de acesso válido para o serviço do Graph com o escopoUser.Read
.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();