تدريب - تخويل الوصول إلى Microsoft Graph API باستخدام MSAL
في هذا التمرين، يمكنك تكوين التطبيق بأذونات واستخدام MSAL للوصول إلى معلومات ملف تعريف المستخدم من واجهة برمجة تطبيقات Microsoft Graph (MS Graph).
إضافة أذونات Microsoft Graph إلى تسجيل التطبيق
تحدد خدمات الويب التي يتم تأمينها بواسطة معرف Microsoft Entra مجموعة من الأذونات التي توفر الوصول إلى وظائف واجهة برمجة التطبيقات والبيانات التي تعرضها تلك الخدمة. قبل أن يتمكن التطبيق من الوصول إلى البيانات أو التصرف نيابة عن المستخدم، يجب عليه طلب هذه الأذونات للموافقة عليها من قبل المستخدمين. يمكنك تعيين أذونات واجهة برمجة التطبيقات هذه لتسجيل التطبيق من مدخل Microsoft Azure. فيما يلي الخطوات لتعيين أذونات Microsoft Graph API للتطبيق الخاص بك.
في شاشة تسجيلات التطبيقات، حدد أذونات واجهة برمجة التطبيقات لإضافة الوصول إلى واجهات برمجة التطبيقات التي يحتاجها تطبيقك.
حدد إضافة إذن.
تأكد من تحديد علامة التبويب Microsoft APIs.
في قسم واجهات برمجة تطبيقات Microsoft شائعة الاستخدام، حدد Microsoft Graph، ثم حدد الأذونات المفوضة.
في قسم الأذونات المفوضة ، مرر لأسفل وحدد User.Read في القائمة. هذا الإذن الخاص هو للوصول إلى معلومات المستخدم الذي قام بتسجيل الدخول من
https://graph.microsoft.com/v1.0/meنقطة النهاية.حدد إضافة أذونات.
شغّل التطبيق
يمكنك محاولة استدعاء GRAPH API على التطبيق الذي قمت بتشغيله من التدريب السابق.
افتح المستعرض وانتقل إلى
http://localhost:8080/msal4j-servlet-graph/. إذا لم تكن قد سجلت الدخول بالفعل، فستتم إعادة توجيهك لتسجيل الدخول باستخدام معرف Microsoft Entra. عند تسجيل الدخول بنجاح، يجب أن تشاهد صفحة كما هو موضح في الصورة التالية.
حدد 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.
في ملف ./src/main/resources/authentication.properties ، يتم تعيين قيمة
aad.scopesإلى نطاق User.Read .تخبر النطاقات معرف Microsoft Entra بمستوى الوصول الذي يطلبه التطبيق وتعيينه إلى الأذونات في تسجيل التطبيق. استنادا إلى النطاقات المطلوبة، يقدم معرف Microsoft Entra حوار موافقة للمستخدم عند تسجيل الدخول. إذا وافق المستخدم على نطاق واحد أو أكثر، يتم ترميزه في الناتج الذي
access_tokenتم إرجاعه في استجابة المصادقة.عند انتقال المستخدم إلى
/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();