टोकन और ऑथराइज़ेशन कोड को पसंद के मुताबिक बनाना

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

टोकन के मेटाडेटा के बारे में जानकारी

Apigee Edge, OAuth ऐक्सेस टोकन जनरेट करता है, टोकन रीफ़्रेश करता है, और ऑथराइज़ेशन कोड जनरेट करता है. साथ ही, उन्हें पुष्टि किए गए ऐप्लिकेशन पर भेजता है. जनरेट होते समय, Edge उन टोकन और कोड को सेव करता है. बाद में, जब Edge को इन टोकन या कोड वाले इनबाउंड एपीआई अनुरोध मिलते हैं, तो अनुरोधों की पुष्टि करने के लिए Edge सेव की गई जानकारी का इस्तेमाल करता है.

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

Edge ऐक्सेस टोकन का JSON फ़ॉर्मैट ऐसा दिखता है:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

OAuth टोकन में कस्टम एट्रिब्यूट जोड़ना

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

किसी टोकन में आर्बिट्रेरी डेटा अटैच करने के लिए, OAuthV2 नीति में मौजूद <Attributes> एलिमेंट का इस्तेमाल करें. आपके पास कस्टम एट्रिब्यूट का नाम और इसकी वैल्यू बताने का विकल्प है. उदाहरण के लिए, यहां नीति का एक कॉन्फ़िगरेशन दिया गया है जो टोकन जनरेट करता है और टोकन में "tenant_list" नाम का कस्टम एट्रिब्यूट जोड़ता है:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

आपके पास एक से ज़्यादा कस्टम एट्रिब्यूट तय करने का विकल्प होता है. साथ ही, जनरेट होने के समय, उन्हें किसी ऑथराइज़ेशन कोड (<Operation>GenerateAuthorizationCode</Operation>) या किसी टोकन (<Operation>GenerateAccessToken</Operation>) के साथ किसी दूसरे तरीके से अटैच किया जा सकता है.

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

display विकल्प के बारे में ज़्यादा जानकारी के लिए, रिस्पॉन्स में कस्टम एट्रिब्यूट दिखाना या छिपाना.

रनटाइम पर कस्टम एट्रिब्यूट पाना

जब OAuthV2/VerifyAccessToken को कॉल किया जाता है, तो Apigee Edge, टोकन स्टोर में टोकन को देखकर उसकी पुष्टि करता है. इसके बाद, Apigee Edge, टोकन के बारे में जानकारी देने वाले कॉन्टेक्स्ट वैरिएबल के सेट को पॉप्युलेट करता है. इवेंट में ये शामिल हैं:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • major_in //--सेकंड
  • स्थिति
  • दायरा
  • apiproduct.name*

अगर टोकन पर कोई कस्टम एट्रिब्यूट मौजूद है, तो उन कस्टम एट्रिब्यूट को accesstoken.{custom_attribute} नाम के साथ कॉन्टेक्स्ट वैरिएबल में उपलब्ध कराया जाता है. उदाहरण के लिए, मान लें कि ऊपर दिखाई गई नीति से कोई टोकन जारी किया गया है. इस तरह के टोकन की पुष्टि करने के बाद, accesstoken.tenant_list नाम का एक और कॉन्टेक्स्ट वैरिएबल होगा. इसमें वह वैल्यू होगी जो टोकन जनरेट करते समय सेव की गई थी.

इसके बाद, नीतियों या शर्तों के तहत इन वैरिएबल की जानकारी दी जा सकती है और इनमें स्टोर की गई वैल्यू के आधार पर व्यवहार में बदलाव किया जा सकता है.

रनटाइम में कस्टम एट्रिब्यूट सेट और अपडेट करना

कुछ स्थितियों में, Apigee Edge पर एपीआई कॉल प्रोसेस होने के दौरान, रनटाइम के दौरान ऐक्सेस टोकन से जुड़े मेटाडेटा को अपडेट किया जाना चाहिए. इसमें मदद करने के लिए, Apigee, टोकन एट्रिब्यूट पाने और उन्हें सेट करने के लिए नीतियां उपलब्ध कराता है. ज़्यादा जानकारी के लिए, OAuth V2 जानकारी नीति पाएं और OAuth V2 जानकारी नीति सेट करें देखें.

इनमें से हर नीति में, AccessToken एलिमेंट में उस वैरिएबल का रेफ़रंस दिया जाना चाहिए जिसमें ऐक्सेस टोकन होता है.

किसी टोकन से जुड़े कस्टम एट्रिब्यूट को अपडेट करने के लिए, Edge API का इस्तेमाल भी किया जा सकता है. OAuth 2.0 ऐक्सेस टोकन अपडेट करने का तरीका जानने के लिए, एपीआई दस्तावेज़ देखें.