متغيّرات مسار 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 غير متوافقة.

بشكل تلقائي، يجب تمرير رمز الدخول في عنوان طلب 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 المعنيّة، وبالتالي تكون متاحة للسياسات أو التطبيقات الأخرى التي يتم تنفيذها في تدفق الخادم الوكيل لواجهة برمجة التطبيقات.

سياسة إنشاء رمز مميّز للطلب

نموذج سياسة:

<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