ضبط سياسة OAuthV2Info

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

الأدوات المستخدمة

تسمح لك هذه السياسة بإضافة سمات مخصّصة مرتبطة برمز دخول أو تعديلها. قد تتضمّن السمات المخصّصة عناصر مثل اسم القسم أو رقم تعريف العميل أو معرّف الجلسة. راجِع أيضًا تخصيص الرموز المميّزة و رموز التفويض.

يمكنك فقط إضافة سمات مخصّصة أو تعديلها. لا يمكنك استخدام هذه السياسة لتغيير حقول مثل النطاق أو الحالة أو expires_in أو developer_email أو client_id أو org_name أو refresh_count. إذا كانت إحدى السمات متوفّرة من قبل، تعدّلها هذه السياسة. وإذا لم تكن متوفّرة، تضيفها السياسة. يجب أن يكون رمز الدخول الذي تتم الإشارة إليه صالحًا وفي حالة معتمَدة.

نماذج

مثال أساسي

في ما يلي مثال على سياسة تُستخدم لتعديل رمز دخول OAuth 2.0. يحدّد المثال أدناه رمز الدخول في رسالة الطلب من خلال البحث عن مَعلمة طلب بحث باسم access_token. عندما يقدّم تطبيق عميل رمز دخول، ستحدّد السياسة أدناه رمز الدخول في مَعلمة طلب البحث. بعد ذلك، ستعدّل ملفّ رمز الدخول الشخصي. وتضيف إلى الملفّ خاصية مخصصة باسم department.id.

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

مرجع العنصر

يصف مرجع العنصر عناصر وسمات سياسة SetOAuthV2.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1">    
    <DisplayName>Set OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <Attributes/>
</SetOAuthV2Info>
</xml>

سمات <SetOAuthV2Info>

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة. يمكن لقيمة السمة name أن تحتوي على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن لهذه القيمة يتجاوز 255 حرفًا.

يمكنك، إذا أردت، استخدام العنصر <DisplayName> لتصنيف السياسة محرر الخادم الوكيل لواجهة مستخدم الإدارة باسم مختلف بلغة طبيعية.

لا ينطبق مطلوب
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ سياسة. هذا متوقّع السلوك في معظم السياسات.

يمكنك ضبط القيمة على true لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. لن تكون السياسة ويتم فرضها حتى لو ظلت مرتبطة بتدفق.

صحيح اختياري
async

تم إيقاف هذه السمة نهائيًا.

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

استخدِمه مع السمة name لتصنيف السياسة في إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

العنصر <AccessToken>

يحدّد المتغيّر الذي يتضمّن رمز الدخول. على سبيل المثال، إذا كان رمز الدخول مرفقًا برسالة الطلب كمَعلمة طلب بحث، حدِّد request.queryparam.access_token. يمكنك استخدام أي متغيّر صالح يشير إلى الـ رمز. أو يمكنك إدخال سلسلة الرمز الحرفية (في حالات نادرة).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
تلقائي: لا ينطبق
التواجد في المنزل: مطلوب
النوع: سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل
ref

متغيّر رمز دخول يتم عادةً استرداده من متغيّر مسار

لا ينطبق اختياري

العنصر <Attributes>

مجموعة من السمات في ملفّ رمز الدخول الشخصي سيتم تعديلها أو زيادتها

تلقائي: لا ينطبق
التواجد في المنزل: مطلوب
النوع: لا ينطبق

العنصر <Attributes>/<Attribute>

سمة فردية لتعديلها

تحدّد سمة الاسم الخاصية المخصّصة لملفّ رمز الدخول الشخصي التي سيتم تعديلها. يوضّح هذا المثال كيفية استخدام قيمة متغيّر مُشار إليه وقيمة ثابتة.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
تلقائي: لا ينطبق
التواجد في المنزل: اختياري
النوع: لا ينطبق

السمات

السمة الوصف تلقائي التواجد في المنزل
name اسم سمة الملف الشخصي التي ستتم إضافتها أو تغييرها لا ينطبق
ref

القيمة التي سيتم تعيينها لسمة الملف الشخصي

لا ينطبق اختياري

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

عند النجاح، سيتم ضبط متغيّرات المسار التالية:

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

المخطط

يتم تحديد كل نوع سياسة من خلال مخطّط XML (.xsd). للرجوع إليها، تتوفر مخطّطات السياسات على GitHub.

مرجع الأخطاء

يصف هذا القسم رموز الأعطال ورسائل الخطأ التي يتم عرضها ومتغيرات الأعطال التي يتم ضبطها بواسطة Edge عند تفعيل هذه السياسة لحدوث خطأ. من المهم معرفة هذه المعلومات إذا كنت بصدد تطوير قواعد أخطاء للتعامل مع الأخطاء. لمزيد من المعلومات، اطّلِع على ما يجب معرفته عن أخطاء السياسات والتعامل مع الأخطاء.

أخطاء وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ رموز حالة HTTP السبب
steps.oauth.v2.access_token_expired 500 انتهت صلاحية رمز الدخول الذي تم إرساله إلى السياسة.
steps.oauth.v2.invalid_access_token 500 الرمز المميز للوصول الذي تم إرساله إلى السياسة غير صالح.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 يُرجى الاطّلاع على منشور "منتدى Apigee" هذا للحصول على معلومات حول تحديد المشاكل وحلّها.

أخطاء النشر

راجِع الرسالة التي تم الإبلاغ عنها في واجهة المستخدم للحصول على معلومات حول أخطاء النشر.

متغيّرات الأعطال

يتم ضبط هذه المتغيرات عندما تؤدي هذه السياسة إلى حدوث خطأ أثناء التشغيل.

المتغيّرات المكان مثال
fault.name="fault_name" fault_name هو اسم الخطأ، كما هو مدرَج في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. oauthV2.SetTokenInfo.cause = Invalid Access Token

مثال على استجابة الخطأ

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

مثال على قاعدة الخطأ

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

مواضيع ذات صلة