متغيّرات مسار OAuth

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

تتضمّن 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>*

* متغيّرات منتج واجهة برمجة التطبيقات

نموذج السياسة:

<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

سياسة التحقّق من مفتاح واجهة برمجة التطبيقات

نموذج السياسة:

<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