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

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

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

कुछ मामलों में, ऐप्लिकेशन के लिए टोकन को साफ़ तौर पर रद्द या अमान्य करना ज़रूरी होता है. उदाहरण के लिए, जब कोई उपयोगकर्ता 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` access_tokenनाम के क्वेरी पैरामीटर का इस्तेमाल करके, रद्द करने का अनुरोध सबमिट करने की उम्मीद की जाती है, तो सही फ़्लो वैरिएबल यह होगा: request.queryparam.access_token. उदाहरण के लिए, टोकन को एचटीटीपी हेडर में शामिल करने के लिए, इस वैल्यू को request.header.access_token पर सेट करें.

विशेषताएं

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

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

ध्यान दें: सुरक्षा की वजहों से, अगर आपने कोई ऐक्सेस टोकन रद्द किया है, तो उससे जुड़ा रीफ़्रेश टोकन भी रद्द कर दिया जाएगा. इसलिए, कैस्केड एट्रिब्यूट का इस्तेमाल सिर्फ़ ऐक्सेस टोकन रद्द करने के लिए नहीं किया जा सकता. उदाहरण के लिए, अगर आपने <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 पर सेट किया है, तो सिर्फ़ तय किया गया ऐक्सेस या रीफ़्रेश टोकन मान्य होगा.