OAuth V2 नीति को रद्द करें

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

नीति का आइकॉन

खास जानकारी

डेवलपर ऐप्लिकेशन आईडी या ऐप्लिकेशन के असली उपयोगकर्ता आईडी या दोनों से जुड़े OAuth2 ऐक्सेस टोकन को रद्द करता है.

OAuth 2.0 ऐक्सेस टोकन जनरेट करने के लिए, OAuthv2 नीति का इस्तेमाल करें. Apigee से जनरेट किया गया टोकन का फ़ॉर्मैट नीचे दिया गया है:

{
  "issued_at" : "1421847736581",
  "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[PremiumWeatherAPI]",
  "expires_in" : "3599", //--in seconds
  "developer.email" : "tesla@weathersample.com",
  "organization_id" : "0",
  "token_type" : "BearerToken",
  "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
  "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
  "organization_name" : "myorg",
  "refresh_token_expires_in" : "0", //--in seconds
  "refresh_count" : "0"
}

application_name एलिमेंट में, टोकन से जुड़ा डेवलपर ऐप्लिकेशन का आईडी शामिल होता है.

डिफ़ॉल्ट रूप से, Apigee, टोकन में असली उपयोगकर्ता आईडी को शामिल नहीं करता है. Apigee को कॉन्फ़िगर किया जा सकता है, ताकि वह इन्हें शामिल कर सके OAuthv2 नीति में <AppEndUser> एलिमेंट जोड़कर असली यूज़र आईडी:

<OAuthV2 name="GenerateAccessTokenClient">
    <Operation>GenerateAccessTokenV/Operation>
    ...
    <AppEndUser>request.queryparam.app_enduser</AppEndUser>
</OAuthV2>

इस उदाहरण में, app_enduser नाम के क्वेरी पैरामीटर में OAuthv2 पॉलिसी को असली यूज़र आईडी पास करें. इसके बाद, असली यूज़र आईडी को app_enduser एलिमेंट के टोकन में शामिल किया जाता है:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

डेवलपर ऐप्लिकेशन आईडी के आधार पर निरस्त करें

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

  • किसी खास डेवलपर के ऐप्लिकेशन आईडी की सूची पाने के लिए, Developer apps API का इस्तेमाल करें.

  • डेवलपर ऐप्लिकेशन एपीआई का भी इस्तेमाल किया जा सकता है किसी ऐप्लिकेशन के बारे में जानकारी पाएं.

ऐप्लिकेशन के असली उपयोगकर्ता आईडी के हिसाब से निरस्त करना

ऐप्लिकेशन के असली उपयोगकर्ता के आईडी से जुड़े OAuth2 ऐक्सेस टोकन को रद्द करें. यह टोकन है उस उपयोगकर्ता के आईडी से जुड़ा हो जिसे टोकन जारी किए गए थे.

डिफ़ॉल्ट रूप से, OAuth ऐक्सेस टोकन में असली उपयोगकर्ता आईडी के लिए कोई फ़ील्ड नहीं होता. के निरसन को सक्षम करने के लिए असली उपयोगकर्ता आईडी के मुताबिक OAuth 2.0 ऐक्सेस टोकन, यूज़र आईडी को शामिल करने के लिए आपको OAuthv2 नीति को कॉन्फ़िगर करना होगा जैसा कि ऊपर दिखाया गया है.

ऐप्लिकेशन का असली उपयोगकर्ता आईडी पाने के लिए, डेवलपर ऐप्लिकेशन एपीआई.

सैंपल

नीचे दिए गए सैंपल, OAuth2 ऐक्सेस टोकन को रद्द करने के लिए OAuth V2 निरस्त करने की नीति का इस्तेमाल करते हैं.

डेवलपर ऐप्लिकेशन आईडी

डेवलपर ऐप्लिकेशन आईडी के ज़रिए ऐक्सेस टोकन निरस्त करने के लिए, इसमें <AppId> एलिमेंट का इस्तेमाल करें आपकी नीति.

इस उदाहरण में, ऐक्सेस टोकन के डेवलपर ऐप्लिकेशन आईडी को नाम वाले क्वेरी पैरामीटर में ढूंढा जा सकता है app_id:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
</RevokeOAuthV2>

डेवलपर ऐप्लिकेशन के आईडी के आधार पर, नीति ऐक्सेस टोकन को रद्द कर देती है.

टाइमस्टैंप से पहले रद्द करें

किसी खास तारीख और समय से पहले जनरेट किए गए डेवलपर ऐप्लिकेशन आईडी की मदद से ऐक्सेस टोकन रद्द करने के लिए, अपनी नीति में <RevokeBeforeTimestamp> एलिमेंट का इस्तेमाल करें. <RevokeBeforeTimestamp> अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है मिलीसेकंड में UTC Epoch समय के बारे में बताता है. इस समय से पहले जारी किए गए सभी टोकन रद्द कर दिए जाएंगे.

नीचे दिए गए उदाहरण में, 1 जुलाई, 2019 से पहले बनाए गए डेवलपर ऐप्लिकेशन के ऐक्सेस टोकन रद्द किए गए हैं:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
  <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp>
</RevokeOAuthV2>

<RevokeBeforeTimestamp> एलिमेंट, 64-बिट (लंबा) पूर्णांक लेता है 1 जनवरी, 1970 यूटीसी को आधी रात के बाद से अब तक बीत चुके मिलीसेकंड.


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

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1">
  <DisplayName>Get OAuth v2.0 Info 1</DisplayName>
  <AppId ref="variable"></AppId>
  <EndUserId ref="variable"></EndUserId>
  <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp>
  <Cascade>false</Cascade>
</RevokeOAuthV2>

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

<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">

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

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

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

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

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

किसी नीति के काम न करने पर, गड़बड़ी दिखाने के लिए false पर सेट करें. यह उम्मीद है व्यवहार की जानकारी देने वाला डेटा.

नीति के लागू होने के बाद भी फ़्लो को एक्ज़ीक्यूट करने के लिए, इसे true पर सेट करें विफल होता है.

गलत वैकल्पिक
enabled

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

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

सही वैकल्पिक
async

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

गलत बहिष्कृत

&lt;DisplayName&gt; एलिमेंट

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

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

लागू नहीं

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

मौजूदगी वैकल्पिक
टाइप स्ट्रिंग

&lt;AppId&gt; एलिमेंट

निरस्त किए जाने वाले टोकन के डेवलपर ऐप्लिकेशन का आईडी बताता है. कोई ऐसा वैरिएबल पास करें जिसमें ऐप्लिकेशन आईडी या लिटरल ऐप्लिकेशन आईडी.

<AppId>appIdString</AppId>

or:

<AppId ref="request.queryparam.app_id"></AppId>
डिफ़ॉल्ट

request.formparam.app_id (x-www-form-urlencoded और अनुरोध में बताया गया हो शरीर)

मौजूदगी

वैकल्पिक

टाइप स्ट्रिंग
मान्य मान

ऐप्लिकेशन आईडी स्ट्रिंग वाला फ़्लो वैरिएबल या लिटरल स्ट्रिंग.

<कैस्केड> एलिमेंट

अगर true और आपके पास पारंपरिक ओपेक ऐक्सेस टोकन है, तो दोनों रीफ़्रेश टोकन और ऐक्सेस टोकन को रद्द कर दिया जाएगा, अगर <AppId> या <EndUserId> मैच. अगर false, सिर्फ़ ऐक्सेस टोकन को रद्द किया जाता है और रीफ़्रेश टोकन में कोई बदलाव नहीं किया जाता. व्यवहार एक जैसा होता है सिर्फ़ ओपेक ऐक्सेस टोकन के लिए.

<Cascade>false<Cascade>
डिफ़ॉल्ट

गलत

मौजूदगी

वैकल्पिक

टाइप बूलियन
मान्य मान true या false

&lt;EndUserId&gt; एलिमेंट

रद्द किए जाने वाले टोकन के ऐप्लिकेशन के असली उपयोगकर्ता आईडी के बारे में बताता है. कोई ऐसा वैरिएबल पास करें जिसमें यूज़र आईडी या लिटरल टोकन स्ट्रिंग.

<EndUserId>userIdString</EndUserId>

or:

<EndUserId ref="request.queryparam.access_token"></EndUserId>
डिफ़ॉल्ट

request.formparam.enduser_id (x-www-form-urlencoded और अनुरोध में बताया गया हो शरीर)

मौजूदगी

वैकल्पिक

टाइप स्ट्रिंग
मान्य मान

यूज़र आईडी स्ट्रिंग वाला फ़्लो वैरिएबल या लिटरल स्ट्रिंग.

&lt;RevokeBeforeTimestamp&gt; एलिमेंट

टाइमस्टैंप से पहले जारी किए गए टोकन रद्द करें. यह एलिमेंट, <AppId> के साथ काम करता है और <EndUserId>, ताकि आप किसी तय समय से पहले टोकन रद्द कर सकें. डिफ़ॉल्ट वैल्यू, नीति के लागू होने का समय होती है.

<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp>

or:

<RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
डिफ़ॉल्ट

नीति के लागू होने का टाइमस्टैंप.

मौजूदगी

वैकल्पिक

टाइप 64-बिट (लंबा) पूर्णांक, आधी रात के बाद से बीत चुके मिलीसेकंड की संख्या दिखाता है, 1 जनवरी, 1970 यूटीसी.
मान्य मान

कोई टाइमस्टैंप वाला फ़्लो वैरिएबल या लिटरल टाइमस्टैंप. टाइमस्टैंप, आने वाले समय का नहीं हो सकता. साथ ही, यह 1 जनवरी, 2014 से पहले का नहीं हो सकता.

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

CancelOAuthV2 नीति, फ़्लो वैरिएबल सेट नहीं करती है.

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

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

रनटाइम की गड़बड़ियां

नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं. नीचे दिखाए गए गड़बड़ी के नाम स्ट्रिंग हैं जिन्हें कोई गड़बड़ी होने पर fault.name वैरिएबल को असाइन किया जाता है. गलती देखें 'वैरिएबल' सेक्शन में जाएं.

गड़बड़ी कोड एचटीटीपी कोड स्थिति वजह
steps.oauth.v2.InvalidFutureTimestamp 500 टाइमस्टैंप, आने वाले समय का नहीं हो सकता.
steps.oauth.v2.InvalidEarlyTimestamp 500 टाइमस्टैंप, 1 जनवरी, 2014 से पहले का नहीं हो सकता.
steps.oauth.v2.InvalidTimestamp 500 टाइमस्टैंप अमान्य है.
steps.oauth.v2.EmptyAppAndEndUserId 500 AppdId और EndUserId, दोनों को खाली नहीं छोड़ा जा सकता.

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

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

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

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

वैरिएबल कहां उदाहरण
fault.name="fault_name" fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. fault.name Matches "IPDeniedAccess"
oauthV2.policy_name.failed policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. oauthV2.GetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id
oauthV2.policy_name.fault.cause policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. oauthV2.GetTokenInfo.cause = ClientID is Invalid

गड़बड़ी के रिस्पॉन्स का उदाहरण

{
   "fault":{
      "faultstring":"Timestamp is in the future.",
      "detail":{
         "errorcode":"steps.oauth.v2.InvalidFutureTimestamp"
      }
   }
}

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

<FaultRule name="RevokeOAuthV2 Faults">
    <Step>
        <Name>AM-InvalidTimestamp</Name>
    </Step>
    <Condition>(fault.name = "InvalidFutureTimestamp")</Condition>
</FaultRule>

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