متغیرهای جریان OAuth

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

Apigee Edge قابلیت‌های OAuth 1.0a و OAuth 2 را در مجموعه‌ای از سیاست‌ها کپسوله‌سازی می‌کند. مدیریت چرخه حیات توکن‌ها و رمزها، شامل تولید، اعتبارسنجی و ذخیره‌سازی، توسط Apigee Edge به نمایندگی از سرویس‌های backend شما مدیریت می‌شود.

این سند متغیرهای جریان تعریف‌شده توسط سیاست‌های OAuth را مشخص می‌کند. این متغیرها می‌توانند برای پیاده‌سازی رفتار سفارشی برای جریان‌های OAuth مورد استفاده قرار گیرند. برای کاربرد OAuth، به OAuth مراجعه کنید.

متغیرهای جریان OAuth 2.0

متغیرهای جریان تعریف‌شده در این جدول هنگام اجرای سیاست‌های OAuth مربوطه، مقداردهی می‌شوند و از این رو برای سایر سیاست‌ها یا برنامه‌هایی که در جریان پروکسی API اجرا می‌شوند، در دسترس هستند.

سیاست توکن دسترسی را تأیید کنید
  • 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

سیاست نمونه:

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

فقط توکن‌های حامل پشتیبانی می‌شوند. توکن‌های MAC پشتیبانی نمی‌شوند.

به طور پیش‌فرض، توکن دسترسی باید در هدر درخواست HTTP مربوط به احراز هویت ارسال شود.

برای مثال:

"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 مربوطه، مقداردهی می‌شوند و از این رو برای سایر سیاست‌ها یا برنامه‌هایی که در جریان پروکسی API اجرا می‌شوند، در دسترس هستند.

ایجاد سیاست توکن درخواست

سیاست نمونه:

<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

تأیید خط‌مشی کلید API

سیاست نمونه:

<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