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.
Uygulama kayıtları ekranında API izinleri'ni seçerek uygulamanızın ihtiyaç duyduğu API'lere erişim ekleyin.
İzin ekle'yi 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.İzinler ekle'yi seçin.
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çmaya 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 uç noktasına çağrı yapmak ve görüntülenen kullanıcı ayrıntılarını görmek için Arama Grafı'nı.
Microsoft Graph erişimi için koda genel bakış
Microsoft Graph API'sine erişecek kodu, örnek projenin CallGraphServlet.java dizininin altındaki servlet sınıfında 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ğeri
aad.scopesUser.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_tokenolarak kodlanır.Kullanıcı adresine
/call_graphgittiğ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/meuç 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
/mesahip olması koşuluyla uç noktaya erişmek üzere yazmasıUser.Readiçin gereken tek koddur.//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();