أنت الآن بصدد الاطّلاع على مستندات 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 |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
| تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
|---|---|
| التواجد في المنزل | اختياري |
| النوع | سلسلة |
العنصر <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_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{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>