إبطال سياسة OAuth V2

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

رمز السياسة

نظرة عامة

إبطال رموز الدخول عبر OAuth2 المرتبطة برقم تعريف تطبيق المطوِّر أو رقم تعريف المستخدم النهائي للتطبيق أو كليهما

يمكنك استخدام سياسة OAuthv2 لإنشاء رمز وصول OAuth 2.0. رمز مميّز أنشأه Apigee بالتنسيق التالي:

{
  "issued_at" : "1421847736581",
  "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[PremiumWeatherAPI]",
  "expires_in" : "3599", //--in seconds
  "developer.email" : "tesla@weathersample.com",
  "organization_id" : "0",
  "token_type" : "BearerToken",
  "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
  "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
  "organization_name" : "myorg",
  "refresh_token_expires_in" : "0", //--in seconds
  "refresh_count" : "0"
}

يحتوي العنصر application_name على رقم تعريف تطبيق المطوِّر المرتبط بالرمز المميّز.

لا تتضمّن Apigee تلقائيًا رقم تعريف المستخدم النهائي في الرمز المميّز. يمكنك ضبط Apigee لتضمين معرِّف المستخدم النهائي من خلال إضافة عنصر <AppEndUser> إلى سياسة OAuthv2:

<OAuthV2 name="GenerateAccessTokenClient">
    <Operation>GenerateAccessTokenV/Operation>
    ...
    <AppEndUser>request.queryparam.app_enduser</AppEndUser>
</OAuthV2>

في هذا المثال، أدخِل رقم تعريف المستخدم النهائي إلى سياسة OAuthv2 في مَعلمة طلب بحث باسم app_enduser. يتم بعد ذلك تضمين رقم تعريف المستخدم النهائي في الرمز المميّز في عنصر app_enduser:

{
 "issued_at" : "1421847736581",
 "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a",
 "scope" : "READ",
 "app_enduser" : "6ZG094fgnjNf02EK",
 "status" : "approved",
 "api_product_list" : "[PremiumWeatherAPI]",
 "expires_in" : "3599", //--in seconds
 "developer.email" : "tesla@weathersample.com",
 "organization_id" : "0",
 "token_type" : "BearerToken",
 "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP",
 "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL",
 "organization_name" : "myorg",
 "refresh_token_expires_in" : "0", //--in seconds
 "refresh_count" : "0"
}

إبطال حسب رقم تعريف تطبيق المطوّر

إبطال رموز الدخول عبر OAuth2 المرتبطة برقم تعريف تطبيق المطوِّر. تشتمل جميع رموز الدخول عبر OAuth2 التي تم إنشاؤها من خلال Apigee على رقم تعريف تطبيق المطوّر المرتبط. بالرمز المميز. ويمكنك بعد ذلك إبطال الرموز المميزة استنادًا إلى رقم تعريف التطبيق.

الإلغاء حسب رقم تعريف المستخدم النهائي للتطبيق

يمكنك إبطال رموز الدخول عبر OAuth2 المرتبطة برقم تعريف مستخدم نهائي معيّن للتطبيق. هذا هو الرمز المميّز المرتبطة برقم تعريف المستخدم الذي تم إصدار الرموز المميزة له.

لا يوجد حقل لمعرّف المستخدم النهائي في رمز الدخول OAuth تلقائيًا. لتمكين إبطال رموز الدخول عبر OAuth 2.0 بواسطة معرّف المستخدم، يجب عليك تهيئة سياسة OAuthv2 لتضمين رقم تعريف المستخدم. في الرمز المميز، كما هو موضح أعلاه.

للحصول على معرّف مستخدم نهائي للتطبيق، استخدم واجهة برمجة تطبيقات تطبيقات المطوِّرين:

نماذج

تستخدم النماذج التالية سياسة "إبطال الإصدار 2 من OAuth" لإبطال رموز الدخول عبر OAuth2.

رقم تعريف تطبيق المطوِّر

لإبطال رموز الدخول حسب رقم تعريف تطبيق المطوِّر، استخدِم العنصر <AppId> في سياستك.

يتوقع المثال التالي العثور على رقم تعريف تطبيق المطوّر لرمز الدخول في معلَمة طلب البحث باسم. app_id:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
</RevokeOAuthV2>

نظرًا لرقم تعريف تطبيق المطوِّر، تُبطِل السياسة رمز الدخول.

إبطال قبل الطابع الزمني

لإبطال رموز الدخول حسب رقم تعريف تطبيق المطوِّر التي تم إنشاؤها قبل تاريخ ووقت محدّدين، استخدِم العنصر <RevokeBeforeTimestamp> في سياستك. <RevokeBeforeTimestamp> وقت حقبة التوقيت العالمي المنسّق (UTC) بالمللي ثانية. ويتم إبطال جميع الرموز المميّزة الصادرة قبل ذلك الوقت.

يُبطل المثال التالي رموز الدخول لتطبيق مطوِّر تم إنشاؤه قبل 1 تموز (يوليو) 2019:

<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy">
  <DisplayName>Revoke OAuth v2.0-1</DisplayName>
  <AppId ref="request.queryparam.app_id"></AppId>
  <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp>
</RevokeOAuthV2>

يأخذ العنصر <RevokeBeforeTimestamp> عددًا صحيحًا 64 بت (طويل) يمثل عدد المللي ثانية التي انقضت منذ منتصف الليل، في 1 كانون الثاني (يناير) 1970 بالتوقيت العالمي المنسق.


مرجع العنصر

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

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1">
  <DisplayName>Get OAuth v2.0 Info 1</DisplayName>
  <AppId ref="variable"></AppId>
  <EndUserId ref="variable"></EndUserId>
  <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp>
  <Cascade>false</Cascade>
</RevokeOAuthV2>

<إلغاء OAuthV2> السمات

<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">

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

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

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

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

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

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

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

خطأ اختياري
enabled

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

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

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

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

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

&lt;DisplayName&gt; عنصر

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

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

لا ينطبق

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

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

&lt;AppId&gt; عنصر

تُحدِّد رقم تعريف تطبيق المطوِّر للرموز المميّزة المطلوب إبطالها. نمرر إما متغير يحتوي على رقم تعريف تطبيق أو رقم تعريف تطبيق حرفي.

<AppId>appIdString</AppId>

or:

<AppId ref="request.queryparam.app_id"></AppId>
تلقائي

request.formparam.app_id (a x-www-form-urlcoding وتم تحديده في الطلب body)

التواجد في المنزل

اختياري

النوع سلسلة
القيم الصالحة

إما متغير تدفق يحتوي على سلسلة رقم تعريف التطبيق، أو سلسلة حرفية.

<Cascade> عنصر

إذا كان true ولديك رمز دخول تقليدي مبهم، حينئذٍ سيتم إبطال الرمز المميّز لإعادة التحميل ورمز الدخول إذا تم إدخال <AppId> أو مطابقة <EndUserId>. إذا كانت false، يتم إبطال رمز الدخول فقط وعدم تغيير الرمز المميز للتحديث. ينطبق السلوك نفسه لرموز الدخول المبهمة فقط.

<Cascade>false<Cascade>
تلقائي

خطأ

التواجد في المنزل

اختياري

النوع قيمة منطقية
القيم الصالحة true أو false

&lt;EndUserId&gt; عنصر

تُحدِّد رقم تعريف المستخدم النهائي للتطبيق الخاص بالرمز المميّز المطلوب إبطاله. نمرر إما متغير يحتوي على رقم تعريف مستخدم أو سلسلة رمز مميز حرفي.

<EndUserId>userIdString</EndUserId>

or:

<EndUserId ref="request.queryparam.access_token"></EndUserId>
تلقائي

request.formparam.enduser_id (a x-www-form-urlcoding وتم تحديده في الطلب body)

التواجد في المنزل

اختياري

النوع سلسلة
القيم الصالحة

إمّا متغيّر تدفّق يحتوي على سلسلة رقم تعريف المستخدم أو سلسلة حرفية.

&lt;RevokeBeforeTimestamp&gt; عنصر

إبطال الرموز المميزة التي تم إصدارها قبل الطابع الزمني هذا العنصر متوافق مع <AppId>. و<EndUserId> للسماح لك بإبطال الرموز المميزة قبل وقت محدد. والقيمة التلقائية هي الوقت الذي يتم فيه تنفيذ السياسة.

<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp>

or:

<RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
تلقائي

الطابع الزمني لتنفيذ السياسة

التواجد في المنزل

اختياري

النوع عدد صحيح 64 بت (طويل) يمثل عدد المللي ثانية التي انقضت منذ منتصف الليل، في 1 كانون الثاني (يناير) 1970 بالتوقيت العالمي المنسق.
القيم الصالحة

إمّا متغيّر تدفّق يحتوي على طابع زمني، أو طابع زمني حرفي. لا يمكن أن يكون الطابع الزمني في المستقبل، ولا يمكن أن يكون قبل 1 كانون الثاني (يناير) 2014.

متغيّرات التدفق

لا يتم ضبط سياسة إبطال OAuthV2 لمتغيّرات التدفق.

مرجع الخطأ

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

أخطاء بيئة التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة. أسماء الخطأ الموضحة أدناه هي السلاسل التي يتم تخصيصها للمتغيّر fault.name عند حدوث خطأ. مشاهدة الخطأ قسم "المتغيرات" أدناه لمزيد من التفاصيل.

رمز الخطأ رموز حالة HTTP السبب
steps.oauth.v2.InvalidFutureTimestamp 500 لا يمكن أن يكون الطابع الزمني في المستقبل.
steps.oauth.v2.InvalidEarlyTimestamp 500 لا يمكن أن يكون الطابع الزمني قبل 1 يناير 2014.
steps.oauth.v2.InvalidTimestamp 500 الطابع الزمني غير صالح.
steps.oauth.v2.EmptyAppAndEndUserId 500 لا يمكن أن يكون حقلا AppdId وEndUserId فارغَين.

أخطاء النشر

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

متغيّرات الأخطاء

يتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى ظهور خطأ في وقت التشغيل.

المتغيرات المكان مثال
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":"Timestamp is in the future.",
      "detail":{
         "errorcode":"steps.oauth.v2.InvalidFutureTimestamp"
      }
   }
}

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

<FaultRule name="RevokeOAuthV2 Faults">
    <Step>
        <Name>AM-InvalidTimestamp</Name>
    </Step>
    <Condition>(fault.name = "InvalidFutureTimestamp")</Condition>
</FaultRule>

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