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

<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 का इस्तेमाल करें.

  • किसी ऐप्लिकेशन के बारे में जानकारी पाने के लिए, Developer apps API का भी इस्तेमाल किया जा सकता है.

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

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

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

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

सैंपल

नीचे दिए गए उदाहरणों में, OAuth2 ऐक्सेस टोकन रद्द करने के लिए, Revoke 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> यूटीसी के मुताबिक, समय को मिलीसेकंड में दिखाता है. उस समय से पहले जारी किए गए सभी टोकन रद्द कर दिए जाते हैं.

इस उदाहरण में, 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 यूटीसी को आधी रात के बाद बीते हुए मिलीसेकंड की संख्या दिखाता है.


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

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

<?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>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

गलत बहिष्कृत

<DisplayName> एलिमेंट

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

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

लागू नहीं

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

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

<AppId> एलिमेंट

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

<AppId>appIdString</AppId>

or:

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

request.formparam.app_id (x-www-form-urlencoded और अनुरोध के मुख्य हिस्से में बताया गया)

मौजूदगी

वैकल्पिक

टाइप स्ट्रिंग
मान्य वैल्यू

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

<Cascade> एलिमेंट

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

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

गलत

मौजूदगी

वैकल्पिक

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

<EndUserId> एलिमेंट

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

<EndUserId>userIdString</EndUserId>

or:

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

request.formparam.enduser_id (x-www-form-urlencoded और अनुरोध के मुख्य हिस्से में बताया गया)

मौजूदगी

वैकल्पिक

टाइप स्ट्रिंग
मान्य वैल्यू

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

<RevokeBeforeTimestamp> एलिमेंट

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

<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp>

or:

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

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

मौजूदगी

वैकल्पिक

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

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

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

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

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

इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि जब यह नीति गड़बड़ी को ट्रिगर करती है, तो 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>

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