Antipattern: ضبط مدة صلاحية طويلة لرموز OAuth المميزة

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

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

تتيح Apigee Edge لمطوّري البرامج إنشاء رموز الدخول و/أو إعادة التحميل من خلال تنفيذ أي نوع من أنواع منح بروتوكول OAuth2 الأربعة: بيانات اعتماد العميل وكلمة المرور والضمنية ورمز التفويض، وذلك باستخدام سياسة OAuthv2. تستخدم تطبيقات العميل رموز الدخول لاستهلاك واجهات برمجة التطبيقات الآمنة. لكل رمز مميّز وقت انتهاء صلاحية خاص به، والذي يمكن ضبطه في سياسة OAuthv2.

يتم إصدار الرموز المميّزة لإعادة التحميل اختياريًا مع رموز الدخول مع بعض أنواع المنح. تُستخدم الرموز المميزة لإعادة التحميل للحصول على رموز دخول جديدة وصالحة بعد انتهاء صلاحية رمز الدخول الأصلي أو إبطاله. يمكن أيضًا ضبط وقت انتهاء صلاحية الرموز المميّزة لإعادة التحميل في سياسة OAuthv2.

مضادة للأنماط

إنّ ضبط وقت انتهاء صلاحية طويل لرمز الدخول و/أو الرمز المميّز لإعادة التحميل في سياسة OAuthv2 يؤدي إلى تراكم رموز OAuth المميّزة وزيادة استخدام مساحة القرص في عُقد Cassandra.

يعرض المثال التالي سياسة OAuthV2 مدة انتهاء صلاحية طويلة تبلغ 200 يوم للرموز المميّزة لإعادة التحميل:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

في المثال أعلاه:

  • بعد ذلك، يتم ضبط رمز الدخول على أن يكون وقت انتهاء الصلاحية أقل إلى حد معقول من 30 دقيقة.
  • يتم ضبط الرمز المميّز لإعادة التحميل على فترة انتهاء صلاحية طويلة جدًا تبلغ 200 يوم.
  • إذا كانت حركة بيانات واجهة برمجة التطبيقات هذه 10 طلبات في الثانية، يمكنها إنشاء ما يصل إلى 864,000 رمز مميّز في اليوم.
  • وبما أنّ صلاحية الرموز المميّزة لإعادة التحميل لا تنتهي إلا بعد 200 يومًا، فهي تظل في مخزن البيانات (Cassandra) لفترة طويلة، ما يؤدي إلى تراكمها بشكل متواصل.

التأثير

  • يؤدي إلى زيادة كبيرة في استخدام مساحة القرص في مخزن البيانات (Cassandra).
  • وبالنسبة إلى مستخدمي Private Cloud، قد يؤدي ذلك إلى زيادة تكاليف مساحة التخزين، وفي أسوأ الحالات، قد يصبح القرص ممتلئًا ويؤدي إلى حدوث أخطاء في وقت التشغيل أو انقطاع في الخدمة.

أفضل الممارسات

يمكنك استخدام وقت انتهاء صلاحية مناسب أقل للدخول إلى بروتوكول OAuth والرموز المميزة لإعادة التحميل بناءً على متطلبات الأمان المحددة، لتتم إزالتها نهائيًا بسرعة وبالتالي تجنُّب تراكمها.

اضبط وقت انتهاء صلاحية الرموز المميّزة لإعادة التحميل بطريقة تكون صالحة لفترة أطول قليلاً من رموز الدخول. على سبيل المثال، إذا حدّدت 30 دقيقة لرمز الدخول، ثم ضبطت 60 دقيقة على الرمز المميّز لإعادة التحميل.

وهذا يضمن أنّه:

  • هناك متسع من الوقت لاستخدام الرمز المميّز لإعادة التحميل من أجل إنشاء رمزَي دخول وإعادة تحميل جديدَين بعد انتهاء صلاحية رمز الدخول.
  • ستنتهي صلاحية الرموز المميّزة لإعادة التحميل بعد فترة قصيرة، ويمكن إزالتها نهائيًا في الوقت المناسب لتجنّب تراكمها.

محتوى إضافي للقراءة