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

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

Apigee Edge, OAuth 1.0a और OAuth 2 की सुविधाओं को नीतियों के एक सेट में शामिल करता है. टोकन और सीक्रेट के लाइफ़ साइकल मैनेजमेंट में जनरेशन, पुष्टि, और स्टोरेज शामिल है. इसे Apigee Edge, आपकी बैकएंड सेवाओं की ओर से मैनेज करता है.

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

OAuth 2.0 फ़्लो के वैरिएबल

इस टेबल में तय किए गए फ़्लो वैरिएबल, संबंधित OAuth नीतियां लागू होने पर अपने-आप भर जाते हैं. इसलिए, ये एपीआई प्रॉक्सी फ़्लो में लागू होने वाली अन्य नीतियों या ऐप्लिकेशन के लिए उपलब्ध होते हैं.

ऐक्सेस टोकन की नीति की पुष्टि करना
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* एपीआई प्रॉडक्ट वैरिएबल

नीति का उदाहरण:

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

सिर्फ़ बेयरर टोकन इस्तेमाल किए जा सकते हैं. MAC टोकन का इस्तेमाल नहीं किया जा सकता.

डिफ़ॉल्ट रूप से, ऐक्सेस टोकन को Authorization एचटीटीपी अनुरोध के हेडर में पास किया जाना चाहिए.

उदाहरण के लिए:

"Authorization: Bearer {PlainText_AccessToken}"

किसी भी flow.variable को इस तरह पास किया जा सकता है:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

अगर विकल्प के तौर पर दिए गए फ़ील्ड की वैल्यू नहीं दी जाती है, तो OAuth 2.0 के स्पेसिफ़िकेशन के हिसाब से वैल्यू निकाली जाती हैं.

ऑथराइज़ेशन कोड जनरेट करने की नीति
सफल होने पर सेट किए गए वैरिएबल:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

नीति का उदाहरण:

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* ज़रूरी नहीं है

किसी भी flow.variable को इस तरह पास किया जा सकता है:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

अगर विकल्प के तौर पर दिए गए फ़ील्ड की वैल्यू नहीं दी जाती है, तो OAuth 2.0 के स्पेसिफ़िकेशन के हिसाब से वैल्यू निकाली जाती हैं.

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

अगर दोनों को तय किया गया है, तो फ़्लो वैरिएबल को प्राथमिकता दी जाती है.

अनुमति कोड, उपयोगकर्ता के क्रेडेंशियल, और क्लाइंट क्रेडेंशियल के लिए, ऐक्सेस टोकन की नीति जनरेट करें
सफल होने पर सेट किए गए वैरिएबल:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

नीति का उदाहरण:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute> 
    <Attribute name=2 ref=flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* ज़रूरी नहीं है

किसी भी flow.variable को इस तरह पास किया जा सकता है:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

अगर विकल्प के तौर पर दिए गए फ़ील्ड की वैल्यू नहीं दी जाती है, तो OAuth 2.0 के स्पेसिफ़िकेशन के हिसाब से वैल्यू निकाली जाती हैं.

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

अगर दोनों को तय किया गया है, तो फ़्लो वैरिएबल को प्राथमिकता दी जाती है.

इंप्लिसिट ग्रांट टाइप के लिए ऐक्सेस टोकन की नीति जनरेट करना
सफल होने पर सेट किए गए वैरिएबल:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

नीति का उदाहरण:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* ज़रूरी नहीं है

किसी भी flow.variable को इस तरह पास किया जा सकता है:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

अगर विकल्प के तौर पर दिए गए फ़ील्ड की वैल्यू नहीं दी जाती है, तो OAuth 2.0 के स्पेसिफ़िकेशन के हिसाब से वैल्यू निकाली जाती हैं.

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

अगर दोनों को तय किया गया है, तो फ़्लो वैरिएबल को प्राथमिकता दी जाती है.

ऐक्सेस टोकन रीफ़्रेश करने की नीति
सफल होने पर सेट किए गए वैरिएबल:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

नीति का उदाहरण:

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* ज़रूरी नहीं है

किसी भी flow.variable को इस तरह पास किया जा सकता है:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

अगर विकल्प के तौर पर दिए गए फ़ील्ड की वैल्यू नहीं दी जाती है, तो OAuth 2.0 के स्पेसिफ़िकेशन के हिसाब से वैल्यू निकाली जाती हैं.

क्लाइंट एट्रिब्यूट की नीति पाना

नीति का उदाहरण:

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

नीति का उदाहरण:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
ऐक्सेस टोकन के एट्रिब्यूट से जुड़ी नीति पाना
सफल होने पर सेट किए गए वैरिएबल:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

नीति का उदाहरण:

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

नीति का उदाहरण:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
ऑथराइज़ेशन कोड एट्रिब्यूट की नीति पाएं

नीति का उदाहरण:

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

नीति का उदाहरण:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
रीफ़्रेश टोकन एट्रिब्यूट की नीति पाएं

नीति का उदाहरण:

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

नीति का उदाहरण:

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

OAuth 1.0a फ़्लो वैरिएबल

इस टेबल में तय किए गए फ़्लो वैरिएबल, संबंधित OAuth नीतियां लागू होने पर अपने-आप भर जाते हैं. इसलिए, ये एपीआई प्रॉक्सी फ़्लो में लागू होने वाली अन्य नीतियों या ऐप्लिकेशन के लिए उपलब्ध होते हैं.

अनुरोध टोकन की नीति जनरेट करना

नीति का उदाहरण:

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

ऐक्सेस टोकन जनरेट करने की नीति

नीति का उदाहरण:

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

ऐक्सेस टोकन की पुष्टि करने से जुड़ी नीति

नीति का उदाहरण:

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

एपीआई पासकोड की पुष्टि करने से जुड़ी नीति

नीति का उदाहरण:

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* ज़रूरी नहीं है

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_consumer_key
  • oauth_consumer_secret

उपयोगकर्ता के लिए बनी नीति की पुष्टि करना

नीति का उदाहरण:

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* ज़रूरी नहीं है

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_consumer_key
  • oauth_consumer_secret

टोकन की नीति की पुष्टि करना

नीति का उदाहरण:

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* ज़रूरी नहीं है

सफल होने पर सेट किए गए वैरिएबल:

  • oauth_token
  • oauth_token_secret