تخصيص الرموز المميزة ورموز التفويض

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

لمحة عن البيانات الوصفية للرموز المميّزة

ينشئ Apigee Edge رموز الدخول باستخدام بروتوكول OAuth والرموز المميزة لإعادة التحميل ورموز التفويض، وتوزيعها على التطبيقات التي تمت مصادقتها. ومع مرور الوقت، يخزّن متصفّح Edge هذه الرموز المميّزة. عندما يتلقّى Edge طلبات بيانات واردة من واجهة برمجة التطبيقات تتضمّن هذه الرموز المميّزة لاحقًا، يستخدم Edge المعلومات المخزّنة للسماح بالطلبات.

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

يبدو تمثيل JSON لرمز وصول Edge على النحو التالي:

{
  "issued_at" : "1372170159093",
  "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501",
  "scope" : "READ",
  "status" : "approved",
  "api_product_list" : "[Product1,Product2]",
  "api_product_list_json" : ["Product1", "Product2"],
  "expires_in" : "3599", //--in seconds
  "developer.email" : "joe@weathersample.com",
  "organization_id" : "0",
  "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe",
  "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND",
  "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp",
  "organization_name" : "apifactory",
  "refresh_count" : "0"
}

إضافة سمات مخصصة إلى رموز OAuth المميزة

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

لإرفاق بيانات عشوائية برمز مميّز، استخدِم العنصر <Attributes> في سياسة OAuthV2. ويمكنك تحديد اسم السمة المخصّصة والقيمة التي يجب أن تأخذها. على سبيل المثال، في ما يلي إعدادات سياسة تؤدي إلى إنشاء رمز مميّز، وإرفاق سمة مخصّصة تُسمى "tenant_list" بالرمز المميّز:

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>600000</ExpiresIn>
  <GenerateResponse />
  <SupportedGrantTypes>
    <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>request.queryparam.grant_type</GrantType>
  <Attributes> 
    <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/>
  </Attributes>
</OAuthV2>

يمكنك تحديد عدة سمات مخصّصة، ويمكنك إرفاقها بشكل ضمني إما برمز تفويض (<Operation>GenerateAuthorizationCode</Operation>) أو رمز مميّز (<Operation>GenerateAccessToken</Operation>) عند الإنشاء.

وعند ضبط السمة display على true (الخيار التلقائي)، يتم عرض السمات المخصّصة في الاستجابة، حيث يمكن أن يطّلع عليها التطبيق أو يتم نقلها إلى المستخدم النهائي. عند ضبط السمة display على false، يتم تخزين السمات المخصّصة في مخزن البيانات، ولا يتم عرضها في رسالة الاستجابة. وفي كلتا الحالتين، تصبح البيانات المخصّصة متاحة للسياسات ضمن الخادم الوكيل لواجهة برمجة التطبيقات بعد إثبات ملكية الرمز المميّز.

لمزيد من المعلومات حول خيار display عرض السمات المخصّصة أو إخفاؤها في الاستجابة

الحصول على سمات مخصصة في وقت التشغيل

عند تلقّي مكالمة إلى OAuthV2/VerifyAccessToken، يتحقّق Apigee Edge من الرمز المميّز من خلال البحث عنه في مخزن الرموز المميّزة. تعمل Apigee Edge بعد ذلك على تعبئة مجموعة من متغيّرات السياق تحتوي على معلومات حول الرمز المميّز. وتشمل هذه المعلومات ما يلي:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • segmentation_in //--in seconds
  • الحالة
  • نطاق
  • apiproduct.name*

إذا كانت هناك أي سمات مخصّصة على الرمز المميّز، يتم توفير هذه السمات المخصّصة في متغيّر سياق يحمل الاسم accesstoken.{custom_attribute}. على سبيل المثال، لنفترض أنّه تم إصدار رمز مميّز من السياسة الموضّحة أعلاه. بعد إثبات صحة هذا الرمز المميّز، سيكون هناك متغيّر سياق إضافي اسمه accesstoken.tenant_list يتضمّن القيمة التي تم تخزينها في وقت إنشاء الرمز المميّز.

ويمكن أن تشير السياسات أو الشروط إلى هذه المتغيرات وأن تعدّل السلوك استنادًا إلى القيم المخزَّنة فيها.

إعداد السمات المخصّصة وتحديثها في وقت التشغيل

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

في كل سياسة من هذه السياسات، يجب أن يشير العنصر AccessToken إلى متغيّر يحتوي على رمز الدخول.

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