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 ऐप्लिकेशन API का इस्तेमाल करें.

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

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

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

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

ऐप्लिकेशन का असली यूज़र आईडी पाने के लिए, Developer ऐप्लिकेशन API का इस्तेमाल करें.

सैंपल

नीचे दिए गए सैंपल, 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>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

false बहिष्कृत

<DisplayName> एलिमेंट

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

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

लागू नहीं

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

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

<AppId> एलिमेंट

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

<AppId>appIdString</AppId>

or:

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

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

मौजूदगी

ज़रूरी नहीं

Type String
मान्य वैल्यू

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

<Cascade> एलिमेंट

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

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

false

मौजूदगी

ज़रूरी नहीं

Type बूलियन
मान्य वैल्यू true या false

<EndUserId> एलिमेंट

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

<EndUserId>userIdString</EndUserId>

or:

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

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

मौजूदगी

ज़रूरी नहीं

Type String
मान्य वैल्यू

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

<न्यूरिन्यूसे पहले टाइमस्टैंप> एलिमेंट

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

<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp>

or:

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

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

मौजूदगी

ज़रूरी नहीं

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

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

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

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

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

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

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