أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
توفّر Apigee Edge إطار عمل OAuth 2.0 لتأمين واجهات برمجة التطبيقات. OAuth2 هو أحد أكثر مخططات المصادقة والتفويض المستندة إلى الرموز المميزة والمعتمدة على معايير مفتوحة شيوعًا. ويتيح هذا البروتوكول لتطبيقات العميل الوصول إلى واجهات برمجة التطبيقات نيابةً عن المستخدمين بدون أن يطلب منهم الكشف عن اسم المستخدم وكلمة المرور.
تتيح Apigee Edge للمطوّرين إنشاء رموز مميّزة للدخول و/أو إعادة التحميل من خلال تنفيذ أيّ من أنواع منح OAuth2 الأربعة، وهي بيانات اعتماد العميل وكلمة المرور والضمني ورمز التفويض، باستخدام سياسة OAuthv2. تستخدم تطبيقات العميل رموز الدخول المميزة لاستهلاك واجهات برمجة التطبيقات الآمنة. لكل رمز مميّز للوصول وقت انتهاء صلاحية خاص به، ويمكن ضبطه في سياسة OAuthv2.
يتم إصدار رموز الدخول المميزة بشكل اختياري مع رموز الدخول لبعض أنواع منح الأذونات. تُستخدَم الرموز المميزة لإعادة التحميل للحصول على رموز دخول جديدة وصالحة بعد انتهاء صلاحية رمز الدخول الأصلي أو إبطاله. يمكن أيضًا ضبط وقت انتهاء صلاحية رموز إعادة التحميل في سياسة OAuthv2.
يرتبط هذا النمط المضاد بالنمط المضاد لضبط وقت انتهاء صلاحية طويل لرموز OAuth المميزة.
نمط مضاد
عدم ضبط وقت انتهاء صلاحية رمز مميز لإعادة التحميل في سياسة OAuthv2 يؤدي إلى تراكم رموز OAuth وزيادة استخدام مساحة القرص على عُقد Cassandra.
تعرض سياسة OAuthV2 التالية إعدادًا مفقودًا لـ
<RefreshTokenExpiresIn>:
<OAuthV2 name="GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
<!--<RefreshTokenExpiresIn> is missing -->
<SupportedGrantTypes>
<GrantType>password</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>في المثال أعلاه:
- يتم ضبط رمز الدخول المميز بمدة صلاحية منخفضة إلى حدّ ما تبلغ 30 دقيقة.
- لم يتم ضبط تاريخ انتهاء صلاحية الرمز المميّز لإعادة التحميل.
- يظل الرمز المميز لإعادة التحميل مخزّنًا في مخزن البيانات (Cassandra) إلى الأبد، ما يؤدي إلى تراكم البيانات.
- يمكن استخدام الرمز المميز لإعادة التحميل الذي تم إنشاؤه بدون تاريخ انتهاء الصلاحية إلى أجل غير مسمى لإنشاء رموز الدخول.
- إذا كانت الزيارات إلى واجهة برمجة التطبيقات هذه تبلغ 10 طلبات في الثانية، يمكنها إنشاء ما يصل إلى 864,000 رمز مميز في اليوم.
التأثير
- إذا تم إنشاء رمز مميز لإعادة التحميل بدون تاريخ انتهاء صلاحية، ستكون هناك نتيجتان رئيسيتان:
- يمكن استخدام الرمز المميّز لإعادة التحميل في أي وقت في المستقبل، وربما لسنوات، للحصول على رمز مميّز للدخول. وقد يكون لذلك آثار أمنية.
- لن يتم حذف الصف في Cassandra الذي يحتوي على الرمز المميز لإعادة التحميل أبدًا. سيؤدي ذلك إلى تراكم البيانات في Cassandra.
- إذا لم تستخدم الرمز المميز لإعادة التحميل للحصول على رمز دخول جديد، ولكن بدلاً من ذلك أنشأت رمزًا مميزًا جديدًا لإعادة التحميل ورمز دخول جديدًا، سيظل الرمز المميز القديم لإعادة التحميل في Cassandra. نتيجةً لذلك، ستستمر رموز التحديث في التراكم في Cassandra، ما يؤدي إلى زيادة حجم البيانات، وزيادة استخدام القرص، وعمليات ضغط أكبر، وسيؤدي في النهاية إلى حدوث تأخيرات في القراءة والكتابة في Cassandra.
أفضل الممارسات
استخدِم وقت انتهاء صلاحية منخفضًا بشكل مناسب لكل من رموز الدخول ورموز إعادة التحميل. اطّلِع على أفضل الممارسات لتحديد مدة صلاحية رموز إعادة التحميل ورموز الدخول. احرص على تحديد إعدادات انتهاء الصلاحية لكل من رمز الدخول والرمز المميز لإعادة التحميل في السياسة. راجِع مستندات سياسة OAuthV2 للحصول على مزيد من التفاصيل حول إعدادات السياسة.
أفضل الممارسات المخصّصة لعملاء Edge for Private Cloud
يوضّح هذا القسم أفضل الممارسات المخصّصة لعملاء Edge for Private Cloud.
تحديد مدة انتهاء صلاحية تلقائية للرمز المميز لإعادة التحميل
بشكلٍ تلقائي، إذا لم يتم تحديد تاريخ انتهاء صلاحية الرمز المميز لإعادة التحميل في إعدادات السياسة، ينشئ Edge رمزًا مميزًا لإعادة التحميل بدون أي تاريخ انتهاء صلاحية. يمكنك إلغاء هذا السلوك باتّباع الإجراء التالي:
- في عقدة معالجة الرسائل، عدِّل ملف تجاوز الإعدادات أو أنشئه
$APIGEE_ROOT/customer/application/message-processor.properties. تأكَّد من أنّ هذا الملف قابل للقراءة من قِبل المستخدمapigee. - أضِف السطر التالي إلى الملف:
سيؤدي ذلك إلى ضبط مدة انتهاء صلاحية الرمز المميّز التلقائي لإعادة التحميل على ساعة واحدة، في حال لم يتم تحديد أي مدة في إحدى السياسات. يمكنك تغيير هذه القيمة التلقائية استنادًا إلى احتياجات نشاطك التجاري.conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
- أعِد تشغيل خدمة "معالج الرسائل":
apigee-service edge-message-processor restart
- كرِّر الخطوات أعلاه في جميع عُقد معالجة الرسائل واحدة تلو الأخرى.
أفضل الممارسات في Cassandra
حاوِل الترقية إلى أحدث إصدار من Apigee متاح للجميع. تواصل Apigee طرح إصلاحات وتحسينات تساهم في تحسين إدارة الرموز المميزة وتحسينها ضمن Apigee. في Apigee، يتم تخزين رموز الدخول ورموز التحديث في Cassandra ضمن مساحة مفاتيح "kms". يجب التأكّد من ضبط استراتيجية الضغط لمساحة المفاتيح هذه علىLeveledCompactionStrategy.
عليك التأكّد من عدم توفّر الفهارس التالية:
- kms.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx#f0f0f0 and
- kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
يمكنك أيضًا تقليل قيمة gc_grace_seconds في الجدول kms.oauth_20_access_tokens من 10 أيام تلقائيًا إلى قيمة أقل (مثل 3 أيام) لضمان إزالة علامات الحذف التي تم إنشاؤها بسبب حذف الرموز المميزة من مخزن البيانات بشكل أسرع.