setOAuthV2Info नीति

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

यह क्या है

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

सिर्फ़ कस्टम एट्रिब्यूट जोड़े या उनमें बदलाव किए जा सकते हैं. इस नीति का इस्तेमाल करके, स्कोप, स्थिति, expand_in, developer_email, client_id, org_name या रीफ़्रेश_count जैसे फ़ील्ड नहीं बदले जा सकते. अगर कोई एट्रिब्यूट पहले से मौजूद है, तो यह नीति उसे अपडेट कर देती है. अगर यह मौजूद नहीं है, तो नीति में इसे जोड़ दिया जाता है. बताया गया ऐक्सेस टोकन मान्य होना चाहिए और स्वीकार की गई स्थिति में होना चाहिए.

सैंपल

बुनियादी उदाहरण

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

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

एलिमेंट का रेफ़रंस

एलिमेंट रेफ़रंस, SetOAuthV2 नीति के एलिमेंट और एट्रिब्यूट के बारे में बताता है.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1">    
    <DisplayName>Set OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <Attributes/>
</SetOAuthV2Info>
</xml>

<SetOAuthV2Info> एट्रिब्यूट

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

इस टेबल में उन एट्रिब्यूट के बारे में बताया गया है जो नीति के सभी पैरंट एलिमेंट के लिए एक जैसे होते हैं:

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी
name

नीति का अंदरूनी नाम. name एट्रिब्यूट की वैल्यू में अक्षर, संख्याएं, स्पेस, हाइफ़न, अंडरस्कोर, और पीरियड शामिल किए जा सकते हैं. इस वैल्यू में 255 से ज़्यादा वर्ण नहीं हो सकते.

इसके अलावा, मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में नीति को आम भाषा में अलग नाम से लेबल करने के लिए, <DisplayName> एलिमेंट का इस्तेमाल करें.

लागू नहीं ज़रूरी है
continueOnError

इस नीति को false पर सेट करें, ताकि नीति के काम न करने पर गड़बड़ी का मैसेज दिखे. ज़्यादातर नीतियों में, ऐसा आम तौर पर किया जाता है.

किसी नीति के काम न करने पर भी फ़्लो एक्ज़ीक्यूट करने की प्रोसेस को जारी रखने के लिए, true पर सेट करें.

false ज़रूरी नहीं
enabled

नीति लागू करने के लिए, true पर सेट करें.

नीति को बंद करने के लिए, false पर सेट करें. अगर यह नीति किसी फ़्लो से जुड़ी हुई है, तब भी उसे लागू नहीं किया जाएगा.

सही ज़रूरी नहीं
async

यह एट्रिब्यूट अब काम नहीं करता.

false बहिष्कृत

<DisplayName> एलिमेंट

मैनेजमेंट यूज़र इंटरफ़ेस (यूआई) प्रॉक्सी एडिटर में, आम भाषा के अलग नाम से नीति को लेबल करने के लिए, name एट्रिब्यूट का इस्तेमाल करें.

<DisplayName>Policy Display Name</DisplayName>
डिफ़ॉल्ट

लागू नहीं

अगर इस एलिमेंट को छोड़ दिया जाता है, तो नीति के name एट्रिब्यूट की वैल्यू का इस्तेमाल किया जाता है.

मौजूदगी ज़रूरी नहीं
Type String

<AccessToken> एलिमेंट

उस वैरिएबल की पहचान करता है जहां ऐक्सेस टोकन मौजूद है. उदाहरण के लिए, अगर ऐक्सेस टोकन को क्वेरी पैरामीटर के तौर पर मैसेज का अनुरोध करने के साथ अटैच किया गया है, तो request.queryparam.access_token तय करें. आपके पास टोकन के रेफ़रंस वाले किसी भी मान्य वैरिएबल का इस्तेमाल करने का विकल्प है. इसके अलावा, लिटरल टोकन स्ट्रिंग को पास कर सकता है (बहुत कम केस).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
डिफ़ॉल्ट: लागू नहीं
मौजूदगी: ज़रूरी है
टाइप: String

एट्रिब्यूट

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी
संदर्भ

ऐक्सेस टोकन वैरिएबल. आम तौर पर, फ़्लो वैरिएबल से लिया जाता है.

लागू नहीं ज़रूरी नहीं

<एट्रिब्यूट> एलिमेंट

ऐक्सेस टोकन प्रोफ़ाइल में मौजूद एट्रिब्यूट का एक सेट, जिसे बदला या जोड़ा जाएगा.

डिफ़ॉल्ट: लागू नहीं
मौजूदगी: ज़रूरी है
टाइप: लागू नहीं

<Attributes>/<एट्रिब्यूट> एलिमेंट

अपडेट किया जाने वाला एट्रिब्यूट.

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

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
डिफ़ॉल्ट: लागू नहीं
मौजूदगी: ज़रूरी नहीं
टाइप: लागू नहीं

एट्रिब्यूट

एट्रिब्यूट ब्यौरा डिफ़ॉल्ट मौजूदगी
नाम जोड़ने या बदलने के लिए प्रोफ़ाइल एट्रिब्यूट का नाम. लागू नहीं
संदर्भ

प्रोफ़ाइल एट्रिब्यूट को असाइन की जाने वाली वैल्यू.

लागू नहीं ज़रूरी नहीं

फ़्लो वैरिएबल

सफल होने पर, ये फ़्लो वैरिएबल सेट किए जाएंगे:

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

स्कीमा

हर तरह की नीति को एक्सएमएल स्कीमा (.xsd) से तय किया जाता है. रेफ़रंस के लिए, नीति के स्कीमा GitHub पर उपलब्ध हैं.

गड़बड़ी का रेफ़रंस

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

रनटाइम से जुड़ी गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.

गड़बड़ी का कोड एचटीटीपी कोड स्थिति वजह
steps.oauth.v2.access_token_expired 500 नीति को भेजे गए ऐक्सेस टोकन की समयसीमा खत्म हो गई है.
steps.oauth.v2.invalid_access_token 500 नीति को भेजा गया ऐक्सेस टोकन अमान्य है.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 इस गड़बड़ी को ठीक करने के बारे में जानने के लिए, कृपया यह Apigee कम्यूनिटी पोस्ट देखें.

डिप्लॉयमेंट से जुड़ी गड़बड़ियां

डिप्लॉयमेंट की गड़बड़ियों के बारे में जानकारी के लिए, यूज़र इंटरफ़ेस (यूआई) में रिपोर्ट किया गया मैसेज देखें.

गड़बड़ी वाले वैरिएबल

ये वैरिएबल तब सेट किए जाते हैं, जब यह नीति रनटाइम के दौरान कोई गड़बड़ी ट्रिगर करती है.

वैरिएबल जगह उदाहरण
fault.name="fault_name" fault_name, गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम की गड़बड़ियां टेबल में दिया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name, उस नीति का उपयोगकर्ता तय किया गया नाम है जिसकी वजह से गड़बड़ी हुई है. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name, उस नीति का उपयोगकर्ता तय किया गया नाम है जिसकी वजह से गड़बड़ी हुई है. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name, उस नीति का उपयोगकर्ता तय किया गया नाम है जिसकी वजह से गड़बड़ी हुई है. oauthV2.SetTokenInfo.cause = Invalid Access Token

गड़बड़ी के जवाब का उदाहरण

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

गड़बड़ी के नियम का उदाहरण

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

मिलते-जुलते विषय