Alıştırma - MSAL ile Microsoft Graph API'sine erişimi yetkilendirme
Bu alıştırmada, uygulamayı izinlerle yapılandıracak ve Microsoft Graph (MS Graph) API'sinden kullanıcı profili bilgilerine erişmek için MSAL kullanacaksınız.
Uygulama kaydına Microsoft Graph izinleri ekleme
Microsoft Entra Id ile güvenliği sağlanan web hizmetleri, API işlevselliğine ve bu hizmet tarafından kullanıma sunulan verilere erişim sağlayan bir izin kümesi tanımlar. Bir uygulamanın verilere erişebilmesi veya kullanıcı adına işlem yapması için önce bu izinlerin kullanıcılar tarafından onaylanmasını istemesi gerekir. Bu API izinlerini Azure portalından uygulama kaydınıza atayabilirsiniz. Uygulamanıza Microsoft Graph API izinleri atama adımları aşağıda verilmiştir.
Uygulamanın kayıt ekranında, uygulamanızın ihtiyaç duyduğu API'lere erişim eklemek için soldaki API izinleri dikey penceresini seçin.
+ İzin ekle düğmesini seçin.
Microsoft API'leri sekmesinin seçili olduğundan emin olun.
Yaygın kullanılan Microsoft API'leri bölümünde Microsoft Graph'ı ve ardından Temsilci izinleri'ni seçin.
Temsilci izinleri bölümünde aşağı kaydırın ve listeden User.Read öğesini seçin. Bu özel izin, oturum açmış kullanıcının bilgilerine uç noktadan erişmeye yöneliktir
https://graph.microsoft.com/v1.0/me
.Alttaki İzin ekle düğmesine tıklayın.
Uygulamayı çalıştırma
Önceki alıştırmada çalıştırdığınız uygulamada Graph API çağrısını deneyebilirsiniz.
Tarayıcınızı açın ve adresine
http://localhost:8080/msal4j-servlet-graph/
gidin. Henüz oturum açmadıysanız, Microsoft Entra Id ile oturum açmak için yeniden yönlendirilirsiniz. Başarılı bir şekilde oturum açtığınızda, aşağıdaki görüntüde gösterildiği gibi bir sayfa görmeniz gerekir.Microsoft Graph'ın
/me
uç noktasına çağrı yapmak ve görüntülenen kullanıcı ayrıntılarını görmek için Grafı Ara düğmesini seçin.
Microsoft Graph erişimi için koda genel bakış
Microsoft Graph API'sine erişmek için kodu örnek projenin msal4j/callgraphwebapp/
dizininin altındaki servlet sınıfında CallGraphServlet.java
bulabilirsiniz. Uygulamadaki uç noktayı tanımlar /call_graph
ve oturum açmış kullanıcının profil bilgilerini almak için Microsoft Graph API'sinin https://graph.microsoft.com/v1.0/me
uç noktasına yetkili çağrılar yapar. Graph erişim kodunun diğer ayrıntıları aşağıdadır.
./src/main/resources/authentication.properties
dosyasında değeriaad.scopes
User.Read kapsamına ayarlanır.Kapsamlar, Microsoft Entra ID'ye uygulamanın istediği erişim düzeyini bildirir ve uygulama kaydındaki izinlerle eşler. İstenen kapsamlara bağlı olarak, Microsoft Entra Id oturum açtıktan sonra kullanıcıya bir onay iletişim kutusu sunar. Kullanıcı bir veya daha fazla kapsama onay verirse, kimlik doğrulama yanıtında döndürülen sonuç
access_token
olarak kodlanır.Kullanıcı adresine
/call_graph
gittiği zaman uygulama, oturum açmış kullanıcının erişim belirtecini geçirerek IGraphServiceClient'ın (Microsoft Graph SDK Java) bir örneğini oluşturur. Buradan Graph istemcisi, erişim belirtecini isteklerinin Yetkilendirme üst bilgilerine yerleştirir. Uygulama daha sonra Graph İstemcisi'nden oturum açmış olan kullanıcının ayrıntılarını vermek için Microsoft Graph'ın/me
uç noktasını çağırmasını ister.Aşağıdaki kod, bir uygulama geliştiricisinin kapsamına sahip Graph Hizmeti için geçerli bir erişim belirtecine
/me
sahip olması koşuluyla uç noktaya erişmek üzere yazmasıUser.Read
için gereken tek koddur.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();