यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं
Apigee X दस्तावेज़. info
टोकन के मेटाडेटा के बारे में जानकारी
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
- expires_in //--सेकंड में
- status
- scope
- apiproduct.name*
अगर टोकन में कोई कस्टम एट्रिब्यूट है, तो वे कस्टम एट्रिब्यूट
`accesstoken.{custom_attribute}` नाम के कॉन्टेक्स्ट वैरिएबल में उपलब्ध होते हैंaccesstoken.{custom_attribute}. उदाहरण के लिए,
मान लें कि ऊपर दिखाई गई नीति से कोई टोकन जारी किया गया है. ऐसे टोकन की पुष्टि करने के बाद,
accesstoken.tenant_list नाम का एक और कॉन्टेक्स्ट वैरिएबल होगा. इसमें वह वैल्यू होगी जो टोकन जनरेट करते समय सेव की गई थी.
इसके बाद, नीतियां या शर्तें इन वैरिएबल का रेफ़रंस दे सकती हैं और इनमें सेव की गई वैल्यू के आधार पर व्यवहार में बदलाव कर सकती हैं.
रनटाइम पर कस्टम एट्रिब्यूट सेट करना और अपडेट करना
कुछ मामलों में, आपको एपीआई प्रॉक्सी को रनटाइम पर, ऐक्सेस टोकन से जुड़े मेटाडेटा को अपडेट करना होगा. ऐसा तब किया जाता है, जब Apigee Edge पर एपीआई कॉल प्रोसेस किया जा रहा हो. इस काम में मदद करने के लिए, Apigee, टोकन एट्रिब्यूट पाने और सेट करने के लिए नीतियां उपलब्ध कराता है. ज़्यादा जानकारी के लिए, OAuth V2 की जानकारी पाने की नीति और OAuth V2 की जानकारी सेट करने की नीति देखें.
AccessToken एलिमेंट को ऐसे वैरिएबल का रेफ़रंस देना चाहिए जिसमें
ऐक्सेस टोकन शामिल हो.
टोकन से जुड़े कस्टम एट्रिब्यूट अपडेट करने के लिए, Edge API का भी इस्तेमाल किया जा सकता है. OAuth 2.0 ऐक्सेस टोकन अपडेट करने के तरीके के बारे में जानने के लिए, एपीआई का दस्तावेज़ देखें.