أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
الحصول على سمات رموز الدخول والرموز المميّزة لإعادة التحميل ورموز التفويض وتطبيق العميل وتملأ المتغيرات بقيم تلك السمات.
يمكن الاستفادة من هذه السياسة عند الحاجة إلى ضبط سلوك ديناميكي وشَرطي استنادًا إلى قيمة. في رمز مصادقة أو رمز مصادقة. عند التحقّق من صحة الرمز المميّز، تتم تعبئة المتغيّرات تلقائيًا. بقيم سمات الرموز المميزة. ومع ذلك، في الحالات التي لا يتم فيها التحقق من صحة الرمز المميز، يمكنك استخدام هذه الميزة لتعبئة المتغيرات بشكل صريح بقيم السمات للرمز المميز. يمكن أيضًا مراجعة تخصيص الرموز المميزة رموز التفويض:
يجب أن يكون رمز الدخول الذي تسمح به لهذه السياسة صالحًا وإلا ستعرض السياسة
خطأ واحد (invalid_access_token
).
نماذج
تستخدم النماذج التالية سياسة الحصول على معلومات OAuth V2 لاسترداد معلومات حول لسير عمل OAuth2 ثم الوصول إلى تلك المعلومات من خلال التعليمات البرمجية.
رمز الدخول
للحصول على مرجع إلى رمز دخول، استخدِم العنصر <AccessToken>
في
سياستك.
يتوقع المثال التالي العثور على رمز الدخول في معلَمة طلب بحث باسم "access_token" (تعود إليك تفاصيل التنفيذ الفعلية):
<GetOAuthV2Info name="MyTokenAttrsPolicy"> <AccessToken ref="request.queryparam.access_token"></AccessToken> </GetOAuthV2Info>
باستخدام رمز الدخول، تبحث السياسة عن الملف الشخصي للرمز المميّز وتعبئ مجموعة من المتغيرات مع بيانات الملف الشخصي.
يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. المثال التالي تسترد النطاقات المرتبطة بالرمز المميز للدخول باستخدام JavaScript:
var scope = context.getVariable('oauthv2accesstoken.MyTokenAttrsPolicy.scope');
لاحظ أنه للوصول إلى هذه المتغيرات في التعليمات البرمجية، يجب عليك بادئة لها "oauthv2accesstoken". للحصول على قائمة كاملة بالمتغيّرات المتاحة من خلال رمز الدخول، يُرجى الاطّلاع على متغيّرات الرمز المميّز للوصول:
رمز المصادقة
للحصول على سمات رمز التفويض، استخدِم <AuthorizationCode>
.
في سياستك.
يتوقع المثال التالي العثور على رمز الدخول في نموذج معلمة باسم "code" (تعود إليك تفاصيل التنفيذ الفعلية):
<GetOAuthV2Info name="MyAuthCodeAttrsPolicy"> <AuthorizationCode ref="request.formparam.code"></AuthorizationCode> </GetOAuthV2Info>
استنادًا إلى رمز المصادقة، تبحث السياسة عن معلومات الرمز وتعبئ مجموعة من مع بيانات رمز المصادقة.
يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. المثال التالي لاسترداد سمة مخصصة مرتبطة برمز التفويض باستخدام JavaScript:
var attr = context.getVariable(‘oauthv2authcode.MyAuthCodeAttrsPolicy.custom_attribute_name’);
يُرجى العِلم أنّه للوصول إلى هذه المتغيّرات في الرمز، عليك البادئة "oauthv2authcode". للحصول على قائمة كاملة بالمتغيّرات المتاحة عبر رمز المصادقة، يُرجى مراجعة متغيّرات رمز التفويض:
إعادة تحميل الرمز المميّز
للحصول على سمات الرمز المميّز لإعادة التحميل، استخدِم العنصر <RefreshToken>
في
.
يتوقع المثال التالي العثور على رمز الدخول في معلَمة طلب بحث باسم "refresh_token" (تعود إليك تفاصيل التنفيذ الفعلية):
<GetOAuthV2Info name="MyRefreshTokenAttrsPolicy"> <RefreshToken ref="request.queryparam.refresh_token"/> </GetOAuthV2Info>
بناءً على الرمز المميّز لإعادة التحميل، تبحث السياسة عن معلومات الرمز المميّز لإعادة التحميل وتتم تعبئتها. مجموعة من المتغيرات مع بيانات الرمز المميز للتحديث.
يمكنك بعد ذلك الوصول إلى هذه المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. ما يلي: يسترد هذا المثال سمة مخصصة مرتبطة بالرمز المميز للتحديث باستخدام JavaScript:
var attr = context.getVariable(‘oauthv2refreshtoken.MyRefreshTokenAttrsPolicy.accesstoken.custom_attribute_name’);
لاحظ أنه للوصول إلى المتغيرات في التعليمة البرمجية، يجب عليك بادئة لها "oauthv2refreshtoken". للحصول على قائمة كاملة بالمتغيّرات المتاحة من خلال الرمز المميّز لإعادة التحميل، يُرجى الاطّلاع على إعادة تحميل متغيّرات الرمز المميّز
ثابت
في بعض الحالات النادرة، قد تحتاج إلى الحصول على ملف شخصي لرمز مميّز تم إعداده بشكل ثابت (واحد لا يمكن الوصول إليها من خلال متغير). ويمكنك إجراء ذلك من خلال تقديم قيمة رمز الدخول كعنصر.
<GetOAuthV2Info name="GetTokenAttributes"> <AccessToken>shTUmeI1geSKin0TODcGLXBNe9vp</AccessToken> </GetOAuthV2Info>
يمكنك إجراء ذلك باستخدام جميع أنواع الرموز المميّزة الأخرى (معرّف العميل ورمز التفويض وإعادة التحميل). الرموز المميزة) أيضًا.
معرِّف العميل
يوضّح هذا المثال كيفية استرداد معلومات عن تطبيق العميل باستخدام معرِّف العميل.
بعد التنفيذ، تملأ السياسة مجموعة من المتغيّرات بمعلومات العميل. في هذه الدورة،
هذه الحالة، تتوقع السياسة العثور على معرِّف العميل في معلَمة طلب البحث
بِعُنْوَانْ client_id
وبالاستناد إلى معرّف العميل، تبحث السياسة عن معرّف العميل
وملء مجموعة من المتغيرات ببيانات الملف الشخصي. ستكون المتغيرات
يبدأ بـ oauthv2client.
<GetOAuthV2Info name="GetClientAttributes"> <ClientId ref="request.queryparam.client_id"></ClientId> </GetOAuthV2Info>
يمكنك بعد ذلك الوصول إلى المتغيرات باستخدام جافا سكريبت أو وسائل أخرى. على سبيل المثال، للحصول على اسم تطبيق المطور والبريد الإلكتروني للمطور المرتبط بتطبيق العميل باستخدام JavaScript:
context.getVariable("oauthv2client.GetClientAttributes.developer.email"); context.getVariable("oauthv2client.GetClientAttributes.developer.app.name");
مرجع العنصر
يصف مرجع العنصر عناصر سياسة GetOAuthV2Info وسماتها.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="GetOAuthV2Info-1" <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AccessToken ref="variable"></AccessToken> <AuthorizationCode ref="variable"></AuthorizationCode> <ClientId ref="variable"></ClientId> <RefreshToken ref="variable"></RefreshToken> </GetOAuthV2Info>
<GetOAuthV2Info> السمات
<GetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Get-OAuth-v20-Info-1">
يصف الجدول التالي السمات المشتركة بين جميع العناصر الرئيسية للسياسة:
السمة | الوصف | تلقائي | التواجد في المنزل |
---|---|---|---|
name |
الاسم الداخلي للسياسة. يمكن لقيمة السمة يمكنك، إذا أردت، استخدام العنصر |
لا ينطبق | مطلوب |
continueOnError |
اضبط القيمة على يمكنك ضبط القيمة على |
خطأ | اختياري |
enabled |
اضبط القيمة على اضبط القيمة على |
صحيح | اختياري |
async |
تم إيقاف هذه السمة نهائيًا. |
خطأ | منهي العمل به |
<DisplayName> عنصر
استخدِمه مع السمة name
لتصنيف السياسة في
إدارة خادم وكيل لواجهة المستخدم باسم مختلف بلغة طبيعية.
<DisplayName>Policy Display Name</DisplayName>
تلقائي |
لا ينطبق إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة |
---|---|
التواجد في المنزل | اختياري |
النوع | سلسلة |
<AccessToken> عنصر
يسترد الملف الشخصي لرمز الدخول. أنت تمرر إما متغير يحتوي على سلسلة رمز الدخول أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، رمز الدخول هو من معلَمة طلب بحث تم تمريرها في طلب. استخدام <ignoreAccessTokenStatus> إذا كنت تريد عرض معلومات لرمز مميز تم إبطاله أو منتهي الصلاحية.
<AccessToken ref="request.queryparam.access_token"></AccessToken>
الإعداد التلقائي: |
request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body) |
الحضور: |
اختياري |
النوع: | سلسلة |
القيم الصالحة: |
إمّا متغيّر تدفق يحتوي على سلسلة رمز الدخول، أو سلسلة حرفية. |
<AuthorizationCode> عنصر
يسترجع الملف الشخصي لرمز تفويض. أنت تمرر إما متغير يحتوي على سلسلة رمز المصادقة أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، يكون رمز المصادقة من معلَمة طلب بحث تم تمريرها في طلب. بالنسبة إلى قائمة المتغيّرات التي تمت تعبئتها بواسطة يُرجى الاطّلاع على متغيّرات التدفق.
<AuthorizationCode ref="request.queryparam.authorization_code"></AuthorizationCode>
الإعداد التلقائي: |
request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body) |
الحضور: |
اختياري |
النوع: | سلسلة |
القيم الصالحة: |
إمّا متغيّر تدفّق يحتوي على سلسلة رمز المصادقة أو سلسلة حرفية. |
<ClientId> عنصر
يسترد المعلومات ذات الصلة بمعرّف عميل. في هذا المثال، يتم استرداد معرّف العميل من معلَمة طلب بحث تم تمريرها في الطلب. بالنسبة إلى قائمة المتغيرات التي تم ملؤها بهذه العملية، اطّلِع على متغيّرات التدفق.
<ClientId ref="request.queryparam.client_id"></ClientId>
الإعداد التلقائي: |
request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body) |
الحضور: |
اختياري |
النوع: | سلسلة |
القيم الصالحة: | إمّا متغيّر تدفّق يحتوي على سلسلة رمز المصادقة أو سلسلة حرفية. |
<IgnoreAccessTokenStatus> عنصر
عرض معلومات الرمز المميز حتى إذا انتهت صلاحية الرمز المميز أو تم إبطاله. يمكن لهذا العنصر فقط استخدامها مع رموز الدخول. معلومات الكيانات الأخرى مثل الرموز المميّزة لإعادة التحميل والترخيص يتم إرجاع الرموز بغض النظر عن حالتها بشكل افتراضي.
<IgnoreAccessTokenStatus>true</IgnoreAccessTokenStatus>
الإعداد التلقائي: |
خطأ |
الحضور: |
اختياري |
النوع: | قيمة منطقية |
القيم الصالحة: | صواب أم خطأ |
<RefreshToken> عنصر
يسترد الملف الشخصي للحصول على رمز مميز لإعادة التحميل. أنت تمرر إما متغير يحتوي على سلسلة الرمز المميز للتحديث أو سلسلة رمز مميز حرفي (حالة نادرة). في هذا المثال، الرمز المميز للتحديث هو من معلَمة طلب بحث تم تمريرها في طلب. بالنسبة إلى قائمة المتغيّرات التي تمت تعبئتها بواسطة يُرجى الاطّلاع على متغيّرات التدفق.
<RefreshToken ref="request.queryparam.refresh_token"></RefreshToken>
الإعداد التلقائي: |
request.formparam.access_token (أ x-www-form-urlcoding وتحديد في الطلب body) |
الحضور: |
اختياري |
النوع: | سلسلة |
القيم الصالحة: |
إمّا متغير تدفق يحتوي على سلسلة رمز مميز لإعادة التحميل، أو سلسلة حرفية. |
متغيّرات التدفق
تعمل سياسة GetOAuthV2Info على تعبئة هذه المتغيرات، وتُستخدم عادةً في الحالات التي إلى بيانات الملف الشخصي، ولكن في الحالات التي لم تحصل فيها بعد على منح أو التحقق من الصحة. .
متغيّرات معرِّف العميل
تتم تعبئة هذه المتغيّرات عند ضبط عنصر ClientId:
oauthv2client.{policy_name}.client_id oauthv2client.{policy_name}.client_secret oauthv2client.{policy_name}.redirection_uris // Note the spelling -- 'redirection_uris' oauthv2client.{policy_name}.developer.email oauthv2client.{policy_name}.developer.app.name oauthv2client.{policy_name}.developer.id oauthv2client.{policy_name}.{developer_app_custom_attribute_name}
متغيّرات رمز الوصول المميّز
تتم تعبئة هذه المتغيّرات عند ضبط عنصر AccessToken:
oauthv2accesstoken.{policy_name}.developer.id oauthv2accesstoken.{policy_name}.developer.app.name oauthv2accesstoken.{policy_name}.developer.app.id oauthv2accesstoken.{policy_name}.developer.email oauthv2accesstoken.{policy_name}.organization_name oauthv2accesstoken.{policy_name}.api_product_list oauthv2accesstoken.{policy_name}.access_token oauthv2accesstoken.{policy_name}.scope oauthv2accesstoken.{policy_name}.expires_in //in seconds oauthv2accesstoken.{policy_name}.status oauthv2accesstoken.{policy_name}.client_id oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2accesstoken.{policy_name}.refresh_token oauthv2accesstoken.{policy_name}.refresh_token_status oauthv2accesstoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2accesstoken.{policy_name}.refresh_count oauthv2accesstoken.{policy_name}.refresh_token_issued_at oauthv2accesstoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
متغيّرات رمز التفويض
تتم تعبئة هذه المتغيّرات عند ضبط عنصر PermissionCode:
oauthv2authcode.{policy_name}.code oauthv2authcode.{policy_name}.scope oauthv2authcode.{policy_name}.redirect_uri oauthv2authcode.{policy_name}.client_id oauthv2authcode.{policy_name}.{auth_code_custom_attribute_name}
إعادة تحميل متغيّرات الرمز المميّز
تتم تعبئة هذه المتغيّرات عند ضبط العنصر RefreshToken:
oauthv2refreshtoken.{policy_name}.developer.id oauthv2refreshtoken.{policy_name}.developer.app.name oauthv2refreshtoken.{policy_name}.developer.app.id oauthv2refreshtoken.{policy_name}.developer.email oauthv2refreshtoken.{policy_name}.organization_name oauthv2refreshtoken.{policy_name}.api_product_list oauthv2refreshtoken.{policy_name}.access_token oauthv2refreshtoken.{policy_name}.scope oauthv2refreshtoken.{policy_name}.expires_in //in seconds oauthv2refreshtoken.{policy_name}.status oauthv2refreshtoken.{policy_name}.client_id oauthv2refreshtoken.{policy_name}.accesstoken.{custom_attribute_name} oauthv2refreshtoken.{policy_name}.refresh_token oauthv2refreshtoken.{policy_name}.refresh_token_status oauthv2refreshtoken.{policy_name}.refresh_token_expires_in //in seconds oauthv2refreshtoken.{policy_name}.refresh_count oauthv2refreshtoken.{policy_name}.refresh_token_issued_at oauthv2refreshtoken.{policy_name}.revoke_reason //Apigee hybrid only with value of REVOKED_BY_APP, REVOKED_BY_ENDUSER, REVOKED_BY_APP_ENDUSER, or TOKEN_REVOKED
المخطط
يتم تحديد كل نوع سياسة من خلال مخطّط XML (.xsd
). يمكنك الرجوع إلى مخططات السياسات
المتوفرة على جيت هب.
مرجع الخطأ
يصف هذا القسم رموز الخطأ ورسائل الخطأ التي يتم عرضها ومتغيرات الأخطاء التي تم ضبطها من خلال Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. من المهم معرفة هذه المعلومات إذا كنت تضع قواعد خطأ التعامل مع الأخطاء. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على ما تحتاج إلى معرفته حول أخطاء السياسة والتعامل مع المعالجة والأخطاء.
أخطاء بيئة التشغيل
يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة. أسماء الخطأ الموضحة أدناه هي السلاسل
التي يتم تخصيصها للمتغيّر fault.name
عند حدوث خطأ. مشاهدة الخطأ
قسم "المتغيرات" أدناه لمزيد من التفاصيل.
رمز الخطأ | رموز حالة HTTP | السبب |
---|---|---|
steps.oauth.v2.access_token_expired |
500 | انتهت صلاحية رمز الدخول الذي تم إرساله إلى السياسة. |
steps.oauth.v2.authorization_code_expired |
500 | انتهت صلاحية رمز التفويض الذي تم إرساله إلى السياسة. |
steps.oauth.v2.invalid_access_token |
500 | رمز الدخول الذي تم إرساله إلى السياسة غير صالح. |
steps.oauth.v2.invalid_client-invalid_client_id |
500 | معرّف العميل الذي تم إرساله إلى السياسة غير صالح. |
steps.oauth.v2.invalid_refresh_token |
500 | الرمز المميّز لإعادة التحميل الذي تم إرساله إلى السياسة غير صالح. |
steps.oauth.v2.invalid_request-authorization_code_invalid |
500 | رمز التفويض الذي تم إرساله إلى السياسة غير صالح. |
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound |
401 | يُرجى مراجعة هذه المشاركة في منتدى Apigee للحصول على معلومات حول تحديد هذا الخطأ وحلّها. |
steps.oauth.v2.refresh_token_expired |
500 | انتهت صلاحية الرمز المميّز لإعادة التحميل الذي تم إرساله إلى السياسة. |
أخطاء النشر
يمكنك الرجوع إلى الرسالة التي تم الإبلاغ عنها في واجهة المستخدم للحصول على معلومات عن أخطاء النشر.
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى ظهور خطأ في وقت التشغيل.
المتغيرات | المكان | مثال |
---|---|---|
fault.name="fault_name" |
fault_name هو اسم الخطأ، كما هو موضَّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name هو الاسم الذي يحدّده المستخدم للسياسة التي أدّت إلى حدوث الخطأ. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
مثال على استجابة الخطأ
{ "fault":{ "faultstring":"ClientId is Invalid", "detail":{ "errorcode":"keymanagement.service.invalid_client-invalid_client_id" } } }
مثال على قاعدة الخطأ
<FaultRule name="OAuthV2 Faults"> <Step> <Name>AM-InvalidClientIdResponse</Name> </Step> <Condition>(fault.name = "invalid_client-invalid_client_id")</Condition> </FaultRule>