Alıştırma - MSAL ile Microsoft Graph API'sine erişimi yetkilendirme

Tamamlandı

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.

  1. 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.

    Screenshot showing the API permissions blade of an app registered with Microsoft Entra ID on Azure portal.

Uygulamayı çalıştırma

Önceki alıştırmada çalıştırdığınız uygulamada Graph API çağrısını deneyebilirsiniz.

  1. 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.

    Screenshot showing the button to call graph displayed on the page after successfully signing in to sample application.

  2. 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.

  1. ./src/main/resources/authentication.properties dosyasında değeri aad.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.

  2. 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 /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();