ऐक्सेस टोकन को स्वीकार और रद्द करना

Apigee Edge दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

ऐक्सेस को रद्द और रीफ़्रेश करना

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

टोकन रद्द करने की प्रोसेस, OAuth 2.0 टोकन रद्द करने की जानकारी से तय की गई है.

Apigee Edge, एक invalidateToken कार्रवाई करता है, जिसकी मदद से आपको खास तौर पर टोकन रद्द करने के एंडपॉइंट को कॉन्फ़िगर करने की सुविधा मिलती है. इस एंडपॉइंट का यूआरआई पब्लिश करके, ऐप्लिकेशन डेवलपर को Edge के जारी किए गए टोकन को अमान्य करने की अनुमति दी जाती है.

यहां OAuthV2 नीति और invalidateToken कार्रवाई के लिए, कॉन्फ़िगरेशन का उदाहरण दिया गया है. इस मामले में, ऐक्सेस टोकन और उससे जुड़े रीफ़्रेश टोकन, दोनों को रद्द कर दिया जाता है. तकनीकी तौर पर, इन दोनों को रद्द कर दिया गया है, क्योंकि कैस्केड फ़्लैग 'सही' पर सेट है. कैस्केड फ़्लैग के काम करने के तरीके के बारे में ज़्यादा जानने के लिए, नीचे दिया गया टोकन एलिमेंट का एट्रिब्यूट सेक्शन देखें.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<Tokens>/<Token> एलिमेंट

उस फ़्लो वैरिएबल की पहचान करता है जो रद्द किए जाने वाले टोकन के बारे में बताता है. उदाहरण के लिए, अगर डेवलपर से access_token नाम के क्वेरी पैरामीटर का इस्तेमाल करके सहमति रद्द करने का अनुरोध सबमिट किया जाएगा, तो सही फ़्लो वैरिएबल यह होगा: request.queryparam.access_token. उदाहरण के लिए, अगर एचटीटीपी हेडर में टोकन को शामिल करना ज़रूरी हो, तो इस वैल्यू को request.header.access_token पर सेट करें.

एट्रिब्यूट

  • type (ज़रूरी है, स्ट्रिंग): वैरिएबल के ज़रिए पहचाना गया टोकन टाइप. accesstoken और refreshtoken: वैल्यू इस्तेमाल की जा सकती हैं
    • किसी ऐक्सेस टोकन को रद्द करने के लिए, type accesstoken तय करें.
    • ऐक्सेस और रीफ़्रेश टोकन, दोनों को रद्द करने के लिए, रीफ़्रेशटोकन टाइप तय करें. जब इसे रीफ़्रेशटोकन टाइप दिखता है, तो Edge यह मानकर चलता है कि टोकन एक रीफ़्रेश टोकन है. अगर वह रीफ़्रेश टोकन मिलता है, तो उसे रद्द कर दिया जाता है. अगर रीफ़्रेश टोकन नहीं मिलता है, तो Edge जांच करके यह पता लगाता है कि यह ऐक्सेस टोकन है या नहीं. अगर ऐक्सेस टोकन मौजूद है, तो उसे रद्द कर दिया जाता है.

      ध्यान दें: अगर आपने अमान्य टोकन को किसी अमान्य टोकन की नीति के तौर पर पास किया है, तो उस नीति के तहत गड़बड़ी नहीं दिखेगी. हालांकि, आपको ऐसा हो सकता है. इस तरह की कार्रवाई का कोई असर नहीं होता.
  • cascade (ज़रूरी नहीं, बूलियन, डिफ़ॉल्ट: सही) इस एट्रिब्यूट का मुख्य इस्तेमाल, किसी रीफ़्रेश टोकन को रद्द करना है. इसके लिए, उससे जुड़े ऐक्सेस टोकन को रद्द नहीं किया जाता. इन मामलों में ध्यान दें:
    • सिर्फ़ रीफ़्रेश टोकन रद्द करें और इससे जुड़े ऐक्सेस टोकन को रद्द न करें. ऐसा करने के लिए, <Token> टाइप को refreshtoken पर सेट करें और कैस्केड को false पर सेट करें.
    • ऐक्सेस टोकन और रीफ़्रेश टोकन, दोनों को निरस्त करें. ऐसा करने के लिए, <Token> टाइप को accesstoken पर सेट करें. कैस्केड की वैल्यू true (डिफ़ॉल्ट) या false हो सकती है. अगर इसे true पर सेट किया जाता है, तो ऐक्सेस टोकन और रीफ़्रेश टोकन, दोनों रद्द कर दिए जाएंगे. अगर इसे false पर सेट किया जाता है, तो ऐक्सेस टोकन रद्द कर दिया जाता है और रीफ़्रेश टोकन का इस्तेमाल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, नीचे दिया गया नोट देखें.
    • ऐक्सेस टोकन को निरस्त करें और इससे जुड़े रीफ़्रेश टोकन को निरस्त न करें. काम नहीं करता. ज़्यादा जानकारी के लिए, नीचे दिया गया नोट देखें.

ध्यान दें: सुरक्षा की वजहों से, अगर किसी ऐक्सेस टोकन को रद्द किया जाता है, तो उससे जुड़ा रीफ़्रेश टोकन भी रद्द कर दिया जाएगा. इसलिए, सिर्फ़ ऐक्सेस टोकन को निरस्त करने के लिए, cascade एट्रिब्यूट का इस्तेमाल नहीं किया जा सकता. उदाहरण के लिए, अगर <Token> टाइप को accesstoken पर सेट किया जाता है और cascade=false को सेट किया जाता है, तो ऐक्सेस टोकन रद्द कर दिया जाता है (जैसा कि उम्मीद के मुताबिक किया जाता है). हालांकि, इससे जुड़े रीफ़्रेश टोकन का इस्तेमाल नहीं किया जा सकता. इसका इस्तेमाल, वापस लिए गए ऐक्सेस टोकन को रीफ़्रेश करने के लिए नहीं किया जा सकता. कैस्केड एट्रिब्यूट का इस्तेमाल मुख्य रूप से तब किया जाता है, जब आपको सिर्फ़ रीफ़्रेश टोकन को रद्द करना हो. ऐसे मामले में, <Token> टाइप को refreshtoken पर सेट करें और cascade=false को सेट करें. रीफ़्रेश टोकन रद्द कर दिया जाएगा. हालांकि, इससे जुड़ा ऐक्सेस टोकन तब तक मान्य रहेगा, जब तक कि इसकी समयसीमा खत्म नहीं हो जाती या इसे रद्द नहीं कर दिया जाता. ज़्यादा जानकारी के लिए, यह कम्यूनिटी फ़ोरम चर्चा देखें.

ऐक्सेस और रीफ़्रेश टोकन स्वीकार किए जा रहे हैं

रद्द किए गए टोकन को "फिर से मंज़ूरी" के लिए, ValidateToken की कार्रवाई का इस्तेमाल करें. इसका मतलब है कि जब इस कार्रवाई को लागू किया जाता है, तो टारगेट किए गए ऐक्सेस या रीफ़्रेश टोकन का स्टेटस 'रद्द किया गया' से बदलकर 'स्वीकार किया गया' हो जाता है. निरस्त किए गए ऐसे किसी भी टोकन की पुष्टि की जा सकती है जिसकी समयसीमा खत्म न हुई हो.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

<Tokens>/<Token> एलिमेंट

उस फ़्लो वैरिएबल की पहचान करता है जो पुष्टि किए जाने वाले टोकन के बारे में बताता है. उदाहरण के लिए, अगर डेवलपर से access_token नाम के क्वेरी पैरामीटर का इस्तेमाल करके पुष्टि करने का अनुरोध सबमिट किया जाएगा, तो सही फ़्लो वैरिएबल यह होगा: request.queryparam.access_token. उदाहरण के लिए, अगर एचटीटीपी हेडर में टोकन को शामिल करना ज़रूरी हो, तो इस वैल्यू को request.header.access_token पर सेट करें.

एट्रिब्यूट

  • type (ज़रूरी है, स्ट्रिंग) वैरिएबल से पहचाना गया टोकन टाइप. accesstoken और refreshtoken को वैल्यू के तौर पर इस्तेमाल किया जा सकता है.
  • cascade (ज़रूरी नहीं, बूलियन): डिफ़ॉल्ट रूप से, यह विकल्प true पर सेट होता है. इससे पुष्टि, इससे जुड़े टोकन पर लागू होती है. इसलिए, अगर किसी रीफ़्रेश टोकन पर लागू किया गया है, तो उससे जुड़े ऐक्सेस टोकन की भी पुष्टि की जाती है. अगर इसे किसी ऐक्सेस टोकन पर लागू किया जाता है, तो इससे जुड़े रीफ़्रेश टोकन की भी पुष्टि की जाती है. इसे false पर सेट करने पर, सिर्फ़ तय किए गए ऐक्सेस या रीफ़्रेश टोकन की पुष्टि की जाती है.