व्यायाम - MSAL के साथ Microsoft ग्राफ़ API तक पहुँच को अधिकृत करें
इस अभ्यास में, आप अनुमतियों के साथ अनुप्रयोग कॉन्फ़िगर करें और Microsoft ग्राफ़ (MS ग्राफ़) API से उपयोगकर्ता प्रोफ़ाइल जानकारी तक पहुँचने के लिए MSAL का उपयोग करें।
ऐप पंजीकरण में Microsoft Graph अनुमतियाँ जोड़ें
Microsoft Entra ID द्वारा सुरक्षित वेब सेवाएँ अनुमतियों के एक सेट को परिभाषित करती हैं जो API कार्यक्षमता और उस सेवा द्वारा प्रदर्शित डेटा तक पहुँच प्रदान करती हैं. इससे पहले कि कोई अनुप्रयोग डेटा तक पहुँच सके या उपयोगकर्ता की ओर से कार्य कर सके, उसे उपयोगकर्ताओं द्वारा अनुमोदित होने के लिए इन अनुमतियों का अनुरोध करना होगा. आप Azure पोर्टल से अपने अनुप्रयोग पंजीकरण के लिए ये API अनुमतियाँ असाइन कर सकते हैं. यहां आपके एप्लिकेशन को Microsoft Graph API अनुमतियां असाइन करने के चरण दिए गए हैं।
ऐप पंजीकरण स्क्रीन पर, एपीआई अनुमतियां चुनें उन एपीआई तक पहुंच जोड़ने के लिए जिन्हें आपके एप्लिकेशन की आवश्यकता है।
अनुमति जोड़ेंका चयन करें.
सुनिश्चित करें कि Microsoft API टैब चयनित है।
आमतौर पर उपयोग किए जाने वाले Microsoft API अनुभाग में, Microsoft ग्राफ़ चुनें, फिर प्रत्यायोजित अनुमतियाँचुनें.
प्रत्यायोजित अनुमतियाँ अनुभाग में, नीचे स्क्रॉल करें और सूची में User.Read का चयन करें. यह विशेष अनुमति
https://graph.microsoft.com/v1.0/meसमापन बिंदु से साइन-इन उपयोगकर्ता की जानकारी तक पहुँचने के लिए है।अनुमतियाँ जोड़ेंका चयन करें.
अनुप्रयोग चलाएँ
आप ग्राफ़ एपीआई कॉल को उस एप्लिकेशन पर आज़मा सकते हैं जिसे आपने पिछले अभ्यास से चलाया है।
अपना ब्राउज़र खोलें और नेविगेट करें
http://localhost:8080/msal4j-servlet-graph/. यदि आप पहले से साइन इन नहीं हैं, तो आपको Microsoft Entra ID के साथ साइन इन करने के लिए रीडायरेक्ट किया जाता है। सफल साइन-इन पर, आपको निम्न छवि में दिखाए गए अनुसार एक पृष्ठ देखना चाहिए।
Microsoft ग्राफ़ के समापन बिंदु पर कॉल करने के लिए
/meका चयन करें और प्रदर्शित उपयोगकर्ता विवरण देखें।
Microsoft Graph पहुँच के लिए कोड का ओवरव्यू
आप नमूना प्रोजेक्ट के CallGraphServlet.java निर्देशिका के तहत सर्वलेट क्लास में Microsoft ग्राफ़ API तक पहुंचने के लिए कोड पा सकते हैं। यह अनुप्रयोग में /call_graph समापन बिंदु को परिभाषित करता है, जो साइन-इन उपयोगकर्ता की प्रोफ़ाइल जानकारी प्राप्त करने के लिए Microsoft ग्राफ़ API के https://graph.microsoft.com/v1.0/me समापन बिंदु पर अधिकृत कॉल करता है। यहां ग्राफ़ एक्सेस कोड के अधिक विवरण दिए गए हैं।
./src/main/resources/authentication.properties फ़ाइल में,
aad.scopesका मान User.Read क्षेत्र पर सेट है।स्कोप Microsoft Entra ID को उस एक्सेस के स्तर के बारे में बताते हैं जिसका एप्लिकेशन अनुरोध कर रहा है और ऐप पंजीकरण में अनुमतियों को मैप करता है। अनुरोधित क्षेत्रों के आधार पर, Microsoft Entra ID साइन इन करने पर उपयोगकर्ता को एक सहमति संवाद प्रस्तुत करता है। यदि उपयोगकर्ता एक या अधिक क्षेत्रों के लिए सहमति देता है, तो वे प्रमाणीकरण प्रतिक्रिया में लौटाए गए परिणामी
access_tokenमें एन्कोड किए जाते हैं।जब उपयोगकर्ता
/call_graphपर नेविगेट करता है, तो अनुप्रयोग IGraphServiceClient (Microsoft Graph SDK Java) का एक इंस्टेंस बनाता है, जो साइन-इन उपयोगकर्ता के एक्सेस टोकन के साथ गुजरता है। यहां से ग्राफ़ क्लाइंट अपने अनुरोधों के प्राधिकरण हेडर में एक्सेस टोकन रखता है। ऐप तब ग्राफ़ क्लाइंट को वर्तमान में साइन-इन किए गए उपयोगकर्ता के लिए विवरण प्राप्त करने के लिए Microsoft ग्राफ़ के/meसमापन बिंदु को कॉल करने के लिए कहता है।निम्नलिखित कोड वह सब है जो एक एप्लिकेशन डेवलपर के लिए
/meसमापन बिंदु तक पहुंचने के लिए लिखने के लिए आवश्यक है, बशर्ते कि उनके पास पहले से हीUser.Readदायरे के साथ ग्राफ सेवा के लिए एक वैध एक्सेस टोकन हो।//CallGraphServlet.java User user = GraphHelper.getGraphClient(contextAdapter).me().buildRequest().get();