تدريب - تخويل الوصول إلى Microsoft Graph API باستخدام MSAL

مكتمل

في هذا التمرين، يمكنك تكوين التطبيق بأذونات واستخدام MSAL للوصول إلى معلومات ملف تعريف المستخدم من واجهة برمجة تطبيقات Microsoft Graph (MS Graph).

إضافة أذونات Microsoft Graph إلى تسجيل التطبيق

تحدد خدمات الويب التي يتم تأمينها بواسطة معرف Microsoft Entra مجموعة من الأذونات التي توفر الوصول إلى وظائف واجهة برمجة التطبيقات والبيانات التي تعرضها تلك الخدمة. قبل أن يتمكن التطبيق من الوصول إلى البيانات أو التصرف نيابة عن المستخدم، يجب عليه طلب هذه الأذونات للموافقة عليها من قبل المستخدمين. يمكنك تعيين أذونات واجهة برمجة التطبيقات هذه لتسجيل التطبيق من مدخل Microsoft Azure. فيما يلي الخطوات لتعيين أذونات Microsoft Graph API للتطبيق الخاص بك.

  1. في شاشة تسجيلات التطبيقات، حدد أذونات واجهة برمجة التطبيقات لإضافة الوصول إلى واجهات برمجة التطبيقات التي يحتاجها تطبيقك.

    لقطة شاشة تعرض قائمة جزء أذونات واجهة برمجة التطبيقات لتطبيق مسجل بمعرف Microsoft Entra على مدخل Microsoft Azure.

    • حدد إضافة إذن.

    • تأكد من تحديد علامة التبويب Microsoft APIs.

    • في قسم واجهات برمجة تطبيقات Microsoft شائعة الاستخدام، حدد Microsoft Graph، ثم حدد الأذونات المفوضة.

    • في قسم الأذونات المفوضة ، مرر لأسفل وحدد User.Read في القائمة. هذا الإذن الخاص هو للوصول إلى معلومات المستخدم الذي قام بتسجيل الدخول من https://graph.microsoft.com/v1.0/me نقطة النهاية.

    • حدد إضافة أذونات.

      لقطة شاشة تعرض جزء أذونات واجهة برمجة التطبيقات لتطبيق مسجل بمعرف Microsoft Entra على مدخل Microsoft Azure.

شغّل التطبيق

يمكنك محاولة استدعاء GRAPH API على التطبيق الذي قمت بتشغيله من التدريب السابق.

  1. افتح المستعرض وانتقل إلى http://localhost:8080/msal4j-servlet-graph/. إذا لم تكن قد سجلت الدخول بالفعل، فستتم إعادة توجيهك لتسجيل الدخول باستخدام معرف Microsoft Entra. عند تسجيل الدخول بنجاح، يجب أن تشاهد صفحة كما هو موضح في الصورة التالية.

    لقطة شاشة تعرض زر استدعاء الرسم البياني المعروض على الصفحة بعد تسجيل الدخول بنجاح إلى نموذج التطبيق.

  2. حدد Call Graph لإجراء مكالمة إلى نقطة نهاية Microsoft Graph /me ورؤية تفاصيل المستخدم المعروضة.

نظرة عامة على التعليمات البرمجية للوصول إلى Microsoft Graph

يمكنك العثور على التعليمات البرمجية للوصول إلى Microsoft Graph API في فئة CallGraphServlet.java servlet ضمن دليل msal4j/callgraphwebapp/ للمشروع النموذجي. وهو يحدد /call_graph نقطة النهاية في التطبيق، والتي تقوم بإجراء مكالمات معتمدة إلى نقطة نهاية Microsoft Graph API https://graph.microsoft.com/v1.0/me لاسترداد معلومات ملف التعريف للمستخدم الذي قام بتسجيل الدخول. فيما يلي مزيد من التفاصيل عن رمز الوصول إلى Graph.

  1. في ملف ./src/main/resources/authentication.properties ، يتم تعيين قيمة aad.scopes إلى نطاق User.Read .

    تخبر النطاقات معرف Microsoft Entra بمستوى الوصول الذي يطلبه التطبيق وتعيينه إلى الأذونات في تسجيل التطبيق. استنادا إلى النطاقات المطلوبة، يقدم معرف Microsoft Entra حوار موافقة للمستخدم عند تسجيل الدخول. إذا وافق المستخدم على نطاق واحد أو أكثر، يتم ترميزه في الناتج الذي access_token تم إرجاعه في استجابة المصادقة.

  2. عند انتقال المستخدم إلى /call_graph، ينشئ التطبيق مثيلًا لـ IGraphServiceClient (Microsoft Graph SDK Java)، مرورا بالرمز المميز للوصول الخاص بالمستخدم الذي قام بتسجيل الدخول. يضع عميل Graph من هنا الرمز المميز للوصول في عناوين التخويل لطلباته. ثم يطلب التطبيق من عميل Graph استدعاء نقطة نهاية Microsoft Graph /me للإيقاف المؤقت لتفاصيل المستخدم الذي قام بتسجيل الدخول حاليًا.

    التعليمات البرمجية التالية هي كل المطلوب لمطور تطبيق للكتابة للوصول إلى /me نقطة النهاية، شريطة أن يكون لديهم بالفعل رمز مميز للوصول صالح لخدمة Graph مع User.Read النطاق.

    //CallGraphServlet.java
    User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();