OAuth akış değişkenleri

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Apigee Edge, OAuth 1.0a ve OAuth 2 özelliklerini bir dizi politikada kapsar. Oluşturma, doğrulama ve depolama dahil olmak üzere jetonların ve sırların yaşam döngüsü yönetimi, arka uç hizmetleriniz adına Apigee Edge tarafından yönetilir.

Bu belgede, OAuth politikaları tarafından tanımlanan akış değişkenleri belirtilmektedir. Değişkenler, OAuth akışları için özel davranış uygulamak üzere kullanılabilir. OAuth kullanımı için OAuth başlıklı makaleyi inceleyin.

OAuth 2.0 akış değişkenleri

Bu tabloda tanımlanan akış değişkenleri, ilgili OAuth politikaları yürütüldüğünde doldurulur ve bu nedenle API proxy akışında yürütülen diğer politikalar veya uygulamalar tarafından kullanılabilir.

Erişim jetonu politikasını doğrulama
  • 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>*

* API ürün değişkenleri

Örnek politika:

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

Yalnızca taşıyıcı jetonları desteklenir. MAC jetonları desteklenmez.

Erişim jetonu, varsayılan olarak Authorization HTTP isteği üstbilgisinde iletilmelidir.

Örneğin:

"Authorization: Bearer {PlainText_AccessToken}"

Herhangi bir flow.variable şu şekilde iletilebilir:

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

İsteğe bağlı alanlar belirtilmezse değerler OAuth 2.0 spesifikasyonuna göre ayıklanır.

Yetkilendirme kodu politikası oluşturma
Başarı durumunda ayarlanan değişkenler:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

Örnek politika:

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

* İsteğe bağlı

Herhangi bir flow.variable şu şekilde iletilebilir:

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

İsteğe bağlı alanlar belirtilmezse değerler OAuth 2.0 spesifikasyonuna göre ayıklanır.

Özellik değerleri, belirtilen akış değişkeninden dinamik olarak veya politikadaki varsayılan değer kullanılarak statik olarak türetilir.

Her ikisi de belirtilmişse akış değişkeni öncelikli olur.

Yetkilendirme kodu, kullanıcı kimlik bilgileri ve istemci kimlik bilgileri verme türleri için erişim jetonu politikası oluşturma
Başarı durumunda ayarlanan değişkenler:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Örnek politika:

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

* İsteğe bağlı

Herhangi bir flow.variable şu şekilde iletilebilir:

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

İsteğe bağlı alanlar belirtilmezse değerler OAuth 2.0 spesifikasyonuna göre ayıklanır.

Özellik değerleri, belirtilen akış değişkeninden dinamik olarak veya politikadaki varsayılan değer kullanılarak statik olarak türetilir.

Her ikisi de belirtilmişse akış değişkeni öncelikli olur.

Örtülü izin türü için erişim jetonu politikası oluşturma
Başarı durumunda ayarlanan değişkenler:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Örnek politika:

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

* İsteğe bağlı

Herhangi bir flow.variable şu şekilde iletilebilir:

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

İsteğe bağlı alanlar belirtilmezse değerler OAuth 2.0 spesifikasyonuna göre ayıklanır.

Özellik değerleri, belirtilen akış değişkeninden dinamik olarak veya politikadaki varsayılan değer kullanılarak statik olarak türetilir.

Her ikisi de belirtilmişse akış değişkeni öncelikli olur.

Erişim jetonu politikasını yenileme
Başarı durumunda ayarlanan değişkenler:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

Örnek politika:

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

* İsteğe bağlı

Herhangi bir flow.variable şu şekilde iletilebilir:

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

İsteğe bağlı alanlar belirtilmezse değerler OAuth 2.0 spesifikasyonuna göre ayıklanır.

İstemci özellikleri politikasını alma

Örnek politika:

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

Örnek politika:

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
Erişim jetonu özellikleri politikasını alma
Başarı durumunda ayarlanan değişkenler:
  • 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

Örnek politika:

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

Örnek politika:

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
Yetkilendirme kodu özellikleri politikasını alma

Örnek politika:

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

Örnek politika:

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
Yenileme jetonu özellikleri politikasını alma

Örnek politika:

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

Örnek politika:

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

OAuth 1.0a akış değişkenleri

Bu tabloda tanımlanan akış değişkenleri, ilgili OAuth politikaları yürütüldüğünde doldurulur ve bu nedenle API proxy akışında yürütülen diğer politikalar veya uygulamalar tarafından kullanılabilir.

İstek jetonu politikası oluşturma

Örnek politika:

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

Başarılı olduğunda ayarlanan değişkenler:

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

Erişim jetonu politikası oluşturma

Örnek politika:

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

Başarılı olduğunda ayarlanan değişkenler:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

Erişim jetonu doğrulama politikası

Örnek politika:

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

Başarılı olduğunda ayarlanan değişkenler:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

API anahtarı politikasını doğrulama

Örnek politika:

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

* İsteğe bağlı

Başarılı olduğunda ayarlanan değişkenler:

  • oauth_consumer_key
  • oauth_consumer_secret

Tüketici politikasını doğrulama

Örnek politika:

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

* İsteğe bağlı

Başarılı olduğunda ayarlanan değişkenler:

  • oauth_consumer_key
  • oauth_consumer_secret

Jeton politikasını doğrulama

Örnek politika:

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

* İsteğe bağlı

Başarılı olduğunda ayarlanan değişkenler:

  • oauth_token
  • oauth_token_secret