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

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

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

این سند متغیرهای جریان تعریف شده توسط سیاست های 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