मेरे द्वारा बनाए जा रहे एएसपीनेट कोर एपीआई ऐप के लिए मुझे जेडब्ल्यूटी आईडी टोकन में प्रदर्शित होने के लिए वैकल्पिक दावे नहीं मिल सकते हैं। परीक्षण के लिए मैं अपने इनबिल्ट Oauth2 तंत्र के माध्यम से एक बियरर टोकन प्राप्त करने के लिए POSTMAN का उपयोग कर रहा हूं। विशेष रूप से, मुझे user और profile स्कोप चाहिए, जो MS ग्राफ़ के अंतर्गत आते हैं, ताकि मैं उपयोगकर्ता के सत्यापित ईमेल पते और उनके पहले और अंतिम नाम तक पहुंच सकूं।

मुझे लगता है कि इस प्रश्न में समान समस्या है। /a> - पहला भाग, जहां ओपी को दावों के प्रकट होने के लिए बिल्कुल भी नहीं मिल सका (उदाहरण के लिए डिबग में या jwt.ms के माध्यम से टोकन का निरीक्षण करते समय), और यह वाला। मेरे परिदृश्य में, मैं केवल एक वेब एपीआई विकसित कर रहा हूं, जिसमें कोई यूआई घटक नहीं है। उम्मीद यह है कि अनुरोध उपयोगकर्ता के संदर्भ में किया जाएगा, जैसे कि एपीआई उपयोगकर्ता के दावों के आधार पर प्राधिकरण कर सकता है।

एएसपीनेट कोर एपीआई को तारों से परे, मैंने निम्नलिखित किया है:

विन्यास

  1. API ऐप पंजीकृत किया गया (निम्नलिखित सभी Azure पोर्टल में किए गए हैं)

    • बहु-किरायेदार
    • वांछित MS ग्राफ़ API अनुमतियाँ जोड़ी गईं
    • मेरे ऐप के लिए एक कस्टम दायरा बनाया
    • टोकन कॉन्फ़िगरेशन में वांछित वैकल्पिक क्षेत्र जोड़े गए
    • मेनिफेस्ट में accessTokenAcceptedVersion को 2 पर सेट करें
  2. एक क्लाइंट ऐप पंजीकृत किया गया (फिर से, Azure पोर्टल में, उसी टैनेंट में)

    • जोड़ा गया प्लेटफ़ॉर्म एसपीए (अभी तक उपयोग नहीं किया गया है, लेकिन यह एपीआई तक पहुंच के लिए प्राथमिक उपयोग-मामला होगा) और नेटिव डेस्कटॉप (पोस्टमैन के उपयोग के लिए)
    • एपीआई अनुमतियों में, मेरे एपीआई ऐप स्कोप (प्रति ऊपर) और एमएस ग्राफ अनुमतियों को जोड़ा

पोस्टमैन के साथ परीक्षण

  • मेरे स्थानीय रूप से चलने वाले एपीआई के लिए एक अनुरोध सेट करें, POSTMAN की Oauth2 प्राधिकरण विधि का उपयोग करके अनुदान प्रकार Authorization Code (With PKCE) के साथ और प्रमाणीकरण और टोकन के लिए प्रासंगिक URL का उपयोग करके, क्लाइंट ऐप पंजीकरण की क्लाइंट आईडी, और स्कोप सेट करना मेरे एपीआई का कस्टम दायरा।
  • सब कुछ Authentication के संदर्भ में काम करता है (मेरा एपीआई सही ढंग से कॉन्फ़िगर किया गया है, एपीआई ऐप पंजीकरण से जुड़ा हुआ है, और जेडब्ल्यूटी एपीआई में मेरे संदर्भ में सही ढंग से आ रहा है)। जब पोस्टमैन प्रमाणीकरण प्राप्त करने के लिए ब्राउज़र का उपयोग करता है तो सहमति संकेत अपेक्षित अनुमतियाँ दिखाता है।
  • हालाँकि वैकल्पिक दावे JWT में मौजूद नहीं हैं!

मैंने और क्या कोशिश की है

मैं पोस्टमैन से प्राप्त होने वाले वाहक टोकन के भीतर अतिरिक्त दावों को देखने की उम्मीद कर रहा हूं, इसलिए मैं पहले से ही देख सकता हूं कि वे मेरे स्वयं के एपीआई के बिना भी मौजूद नहीं हैं। इसलिए मुझे संदेह है कि मैंने अपने कोड में बग होने के बजाय कॉन्फ़िगरेशन चरण को याद किया है।

यह मेरे लिए स्पष्ट है कि मैंने यहां कुछ याद किया है और/या गलत समझा है, और मैं फंस गया हूं।

2
sasfrog 16 जिंदा 2021, 07:16
1
क्या आपने एपीआई के लिए एक्सेस टोकन पर वैकल्पिक दावों को कॉन्फ़िगर किया था? चूंकि एपीआई के लिए टोकन प्राप्त करने के बाद आपको पोस्टमैन में यही मिलेगा।
 – 
juunas
16 जिंदा 2021, 12:35
मैं दोबारा जांच करूंगा
 – 
sasfrog
16 जिंदा 2021, 13:36
अरे वाह बस इतना ही था। मैंने गलत समझा और यह सब आईडी टोकन पर सेट कर दिया !! धन्यवाद @juunas, अगर आप एक उत्तर के रूप में जोड़ना चाहते हैं तो मैं स्वीकार करूंगा।
 – 
sasfrog
16 जिंदा 2021, 14:09

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि टिप्पणियों में चर्चा की गई है, आपको एपीआई के लिए एक्सेस टोकन पर वैकल्पिक दावों को कॉन्फ़िगर करने की आवश्यकता है, न कि आईडी टोकन। चूंकि आपको पोस्टमैन में एक्सेस टोकन मिल रहा है।

2
juunas 16 जिंदा 2021, 14:11