Microsoft प्रमाणीकरण लाइब्रेरी के साथ API तक पहुँच अधिकृत करें

Complete

अब आप अपनी कंपनी के उपयोगकर्ताओं को वेब एप्लिकेशन में साइन इन कर सकते हैं। इसके बाद, आप पृष्ठ पर उनके कर्मचारी प्रोफ़ाइल से उनके कार्य शीर्षक, कार्य ईमेल आदि जैसी जानकारी प्रदर्शित करना चाहते हैं। आप पाते हैं कि Microsoft ग्राफ़ API उपयोगकर्ता से संबंधित डेटा तक पहुँच प्रदान करता है।

इस इकाई में, आप सीखते हैं कि MSAL आपको Microsoft ग्राफ़ API जैसी Microsoft सेवाओं तक अधिकृत पहुँच प्राप्त करने में कैसे मदद कर सकता है।

API अनुमतियां और कार्यक्षेत्र

Microsoft Entra ID द्वारा सुरक्षित वेब सेवाएँ अनुमतियों का एक सेट परिभाषित करती हैं जो API कार्यक्षमता और सेवा को उजागर करने वाले डेटा तक पहुँच प्रदान करती हैं। कोई अनुप्रयोग उपयोगकर्ताओं और व्यवस्थापकों से इन अनुमतियों का अनुरोध कर सकता है, जिन्हें अनुप्रयोग द्वारा डेटा तक पहुँचने या उपयोगकर्ता की ओर से कार्य करने से पहले अनुरोध को अनुमोदित करना होगा. एक उदाहरण के रूप में, Microsoft ग्राफ़ ने दूसरों के बीच निम्नलिखित कार्यों को करने के लिए अनुमतियाँ परिभाषित की हैं:

  • उपयोगकर्ता का कैलेंडर पढ़ना
  • उपयोगकर्ता के कैलेंडर में लिखना
  • उपयोगकर्ता के रूप में मेल भेजें

उपयोगकर्ता और व्यवस्थापक नियंत्रण का प्रयोग कर सकते हैं और जान सकते हैं कि अनुप्रयोग किस डेटा तक पहुँच सकता है. इससे पहले कि आपका एप्लिकेशन Microsoft द्वारा सुरक्षित API तक पहुँच सके, आपको क्रियाएँ करने के लिए एप्लिकेशन अनुमतियाँ प्रदान करनी होंगी।

Microsoft Entra ID दो प्रकार की अनुमतियों का समर्थन करता है: प्रत्यायोजित अनुमतियाँ और अनुप्रयोग अनुमतियाँ.

  • प्रत्यायोजित अनुमतियाँ उन अनुप्रयोगों द्वारा उपयोग की जाती हैं जिनमें साइन-इन उपयोगकर्ता मौजूद होता है. इन ऐप्लिकेशन के लिए, उपयोगकर्ता या एडमिन ऐप्लिकेशन द्वारा अनुरोधित अनुमतियों के लिए सहमति देता है. ऐप को साइन-इन उपयोगकर्ता के रूप में कार्य करने की अनुमति दी जाती है जब वह लक्ष्य API को कॉल करता है। कुछ उच्च-विशेषाधिकार प्राप्त अनुमतियों के लिए व्यवस्थापक की सहमति की आवश्यकता होती है।

  • एप्लिकेशन अनुमतियों का उपयोग उन ऐप्स द्वारा किया जाता है जो साइन-इन उपयोगकर्ता के बिना चलते हैं; उदाहरण के लिए, ऐसे ऐप्स जो पृष्ठभूमि सेवाओं या डेमॉन के रूप में चलते हैं। केवल एक व्यवस्थापक ही अनुप्रयोग अनुमतियों के लिए सहमति दे सकता है.

आप Azure पोर्टल से अपने अनुप्रयोग पंजीकरण के लिए ये API अनुमतियाँ असाइन कर सकते हैं.

क्षेत्र

Microsoft Entra ID OAuth 2.0 प्राधिकरण प्रोटोकॉल लागू करता है जिसके माध्यम से कोई अनुप्रयोग उपयोगकर्ता की ओर से वेब-होस्ट किए गए संसाधनों तक पहुँच सकता है।

OAuth 2.0 में, इस प्रकार के अनुमति सेट को स्कोपकहा जाता है। Microsoft Entra ID के लिए एक प्राधिकरण अनुरोध करते समय, एक अनुप्रयोग अनुरोध के scope क्वेरी पैरामीटर में अनुमति निर्दिष्ट करके आवश्यक अनुमतियों का अनुरोध करता है. उदाहरण के लिए, क्षेत्र मान https://graph.microsoft.com/Calendars.Read Microsoft ग्राफ़ में उपयोगकर्ता के कैलेंडर पढ़ने के लिए अनुमति का अनुरोध करने के लिए उपयोग किया जाता है।

MSAL के साथ एक्सेस टोकन प्राप्त करें

Access टोकन क्लाइंट अनुप्रयोगों को Microsoft Entra ID द्वारा सुरक्षित रूप से वेब API को सुरक्षित रूप से कॉल करने में सक्षम। Microsoft प्रमाणीकरण लायब्रेरी (MSAL) का उपयोग कर एक पहुँच टोकन प्राप्त करने के लिए कई तरीके हैं। सामान्य तौर पर, टोकन प्राप्त करने के लिए उपयोग की जाने वाली विधि इस बात पर निर्भर करती है कि एप्लिकेशन डेस्कटॉप या मोबाइल ऐप की तरह एक सार्वजनिक क्लाइंट एप्लिकेशन है, या वेब ऐप, वेब एपीआई या डेमॉन एप्लिकेशन जैसे गोपनीय क्लाइंट एप्लिकेशन है।

एमएसएएल के टोकन अधिग्रहण विधियों में से कई को scopes पैरामीटर की आवश्यकता होती है, जो स्ट्रिंग्स की एक सूची है जो वांछित अनुमतियों और अनुरोधित संसाधनों की घोषणा करती है।

MSAL प्राप्त होने के बाद एक टोकन कैश करता है। OpenID Connect प्राधिकरण कोड प्रवाह का उपयोग करने वाले वेब अनुप्रयोगों के लिए, नियंत्रकों में अनुशंसित पैटर्न यह है:

  • अन्य माध्यमों से टोकन प्राप्त करने का प्रयास करने से पहले कैश से चुपचाप टोकन प्राप्त करने का प्रयास करें। निम्नलिखित कोड acquireTokenSilently वर्ग में AuthHelper विधि के कार्यान्वयन का एक अंश है।

    final SilentParameters parameters = SilentParameters
                                            .builder(Collections.singleton(Config.SCOPES), context.getAccount())
                                            .build();
    
    final ConfidentialClientApplication client = getConfidentialClientInstance();
    
    client.tokenCache().deserialize(context.getTokenCache());
    
    final IAuthenticationResult result = client.acquireTokenSilently(parameters).get();
    
  • यदि कैश में कोई टोकन नहीं है और मौन टोकन अनुरोध टोकन प्राप्त करने में विफल रहता है, तो आप प्राधिकरण कोड प्रवाह का उपयोग करके टोकन प्राप्त कर सकते हैं:

    final AuthorizationCodeParameters authParams = AuthorizationCodeParameters
                                                        .builder(authCode, new URI(Config.REDIRECT_URI)).scopes(Collections.singleton(Config.SCOPES))
                                                        .build();
    
    final IAuthenticationResult result = app.acquireToken(authParams).get();
    

एमएसएएल एक टोकन को रीफ्रेश करने में भी सक्षम है जब यह समाप्ति के करीब हो रहा है (क्योंकि टोकन कैश में एक ताज़ा टोकन भी होता है)।

प्रमाणीकरण परिणाम

जब आपका क्लाइंट एक पहुँच टोकन का अनुरोध करता है, तो Microsoft Entra ID भी पहुँच टोकन के बारे में मेटाडेटा शामिल एक प्रमाणीकरण परिणाम देता है। यह डेटा आपके ऐप को एक्सेस टोकन को पार्स किए बिना एक्सेस टोकन की बुद्धिमान कैशिंग करने की अनुमति देता है। AuthenticationResult MSAL रिटर्न उजागर करता है:

  • वेब एपीआई के लिए एक्सेस टोकन।
  • उपयोगकर्ता के लिए आईडी टोकन (एक JWT)।
  • टोकन समाप्ति, जो टोकन समाप्त होने की तारीख/समय बताती है।
  • टैनेंट ID में वह टैनेंट होता है जिसमें उपयोगकर्ता पाया गया था.
  • वे स्कोप जिनके लिए टोकन जारी किया गया था।
  • उपयोगकर्ता के लिए अद्वितीय आईडी।

Microsoft ग्राफ़ का परिचय

Microsoft ग्राफ़ API Microsoft क्लाउड में समृद्ध, जन-केंद्रित डेटा और अंतर्दृष्टि तक पहुँच प्रदान करने के लिए एकल समापन बिंदु, https://graph.microsoft.comप्रदान करता है। आप एंडपॉइंट तक पहुंचने के लिए REST API या SDK का उपयोग कर सकते हैं और ऐसे ऐप्स बना सकते हैं जो Microsoft 365 परिदृश्यों का समर्थन करते हैं, जो उत्पादकता, सहयोग, शिक्षा, लोगों और कार्यस्थल इंटेलिजेंस और बहुत कुछ में फैले हुए हैं। Microsoft ग्राफ़ में सेवाओं का एक शक्तिशाली सेट भी शामिल है जो उपयोगकर्ता और डिवाइस पहचान प्रबंधित करता है।

उदाहरण के लिए, आप https://graph.microsoft.com/v1.0/me समापन बिंदु तक पहुँच प्राप्त करके साइन इन किए गए उपयोगकर्ता के गुण पढ़ सकते हैं.