سؤال

أنا يجب أن أعترف لقد كان هذا السؤال لفترة طويلة جدا ، لم نفهم حقا.

أقول رمز المصادقة مثل مفتاح آمنة ، عندما تنتهي إنه لا يمكن استخدامها بعد الآن.نحن الآن نظرا السحر تحديث رمزية ، والتي يمكن استخدامها للحصول على آخر للاستخدام مفتاح آخر...حتى المفتاح السحري تنتهي.فلماذا لا مجرد مجموعة انتهاء رمز المصادقة على النحو نفسه تحديث رمز ؟ لماذا تهتم ؟

ما هو سبب وجيه لذلك ، ربما التاريخية ؟ حقا تريد أن تعرف.شكرا

هل كانت مفيدة؟

المحلول

الإجابة المشار إليها (عبر Adhanders) مفيدة، ينص على ذلك:

في حالة الحلول الوسط، فإن النافذة الزمنية صالحة لها محدودة، ولكن يتم استخدام الرموز أكثر من SSL، من غير المرجح أن تتعرض للخطر.

أعتقد أن الجزء المهم هو أن الرموز المميزة في كثير من الأحيان سوف يتم تسجيل رموز الوصول (خاصة عند استخدامه كمعلمة استعلام، مفيدة ل JSONP)، لذلك من الأفضل أن تكون قصيرة الأجل.

هناك بعض الأسباب الإضافية، مع تطبيقات واسعة النطاق من OAuth 2.0 من قبل مقدمي الخدمات:

  1. يمكن لخوادم API التحقق من صحة روائي الوصول بشكل آمن دون البحث DB أو مكالمات RPC إذا كان من الجيد عدم القلق بشأن الإلغاء. يمكن أن يكون لهذا فوائد أداء قوية ويقلل من التعقيد لخوادم API. أفضل ما إذا كنت بخير مع إلغاء رمز رمزي يستغرق 30m-60m (أو أيا كان طول رمز الوصول). بالطبع، يمكن أن تحتفظ خوادم API أيضا بإلغاء قائمة الرموز في الذاكرة في الساعة الأخيرة أيضا.

  2. منذ الرموز يمكن أن يكون لدى الرموز نطاقات متعددة مع الوصول إلى خدمات API المختلفة المتعددة، فإن وجود رموز الوصول قصيرة العمر يمنع مطور خدمة API للحصول على وصول إلى مدى الحياة إلى بيانات المستخدم على خدمة API B. Compartalization جيدة ل الأمن.

نصائح أخرى

كنت أقرأ المادة في اليوم الآخر من قبل Taiseer Joudeh وأجدها مفيدة للغاية وقال:

في رأيي، هناك ثلاث فوائد رئيسية لاستخدام الرموز التحديث التي هم:

  1. تحديث محتوى TEKEN: كما تعلم الرموز الرموز المرتفعة ذاتها الرموز الذاتية، فإنها تحتوي على جميع المطالبات (المعلومات) حول المستخدم المصادق عليها بمجرد إنشاءها، الآن إذا تصدر رمزا طويلا طويلا (شهر واحد على سبيل المثال) للمستخدم المسمى "ALEX" والتحقق منه في الدور "المستخدمين"، ثم تحصل هذه المعلومات على الرمز المميز الذي تم إنشاؤه خادم التفويض. إذا قررت في وقت لاحق (بعد يومين من الحصول على الرمز المميز) لإضافته إلى دور "المسؤول"، فلا توجد طريقة لتحديث هذه المعلومات الواردة في الرمز المميز الذي تم إنشاؤه، فأنت بحاجة إلى طلبه لإعادة مصادقة له الذات مرة أخرى لذلك يقوم خادم التفويض بإضافة هذه المعلومات إلى هذا الرمز المميز الذي تم إنشاؤه حديثا، وهذا غير ممكن في معظم الحالات. قد لا تتمكن من الوصول إلى المستخدمين الذين حصلوا على رموز الوصول طويلة العمر. لذا للتغلب على هذه المشكلة، نحتاج إلى إصدار رموز الوصول قصيرة العمر (30 دقيقة) واستخدام رمز التحديث للحصول على رمز وصول جديد، بمجرد الحصول على رمز الوصول الجديد، سيتمكن خادم التفويض من إضافة مطالبة جديدة للمستخدم "أليكس" التي تعيده إلى دور "المسؤول" بمجرد إنشاء رمز الوصول الجديد

  2. تم إلغاء الوصول من المستخدمين المصادقين: بمجرد أن يحصل المستخدم على رمز الوصول الذي عاش طويلا، سيكون قادرا على الوصول إلى موارد الخادم طالما لم يتم انتهاء صلاحية رمزية وصوله، فلا توجد طريقة قياسية لإلغاء الرموز الوصول إلا يقوم خادم التفويض بتنفيذ المنطق المخصص الذي يفرض عليك تخزين رمز الوصول الذي تم إنشاؤه في قاعدة البيانات وفحص قاعدة البيانات مع كل طلب. ولكن مع تحديث الرموز المتفرغة، يمكن لمشرف النظام إلغاء الوصول بمجرد حذف معرف Token Refresh من قاعدة البيانات، لذلك بمجرد أن يطلب النظام عن رمزية وصول جديدة باستخدام رمز التحديث المحذوف، سيلفض خادم التفويض هذا الطلب لأن برنامج التحديث لم يعد رمز التحديث متاحا (سنصل إلى هذا مع مزيد من التفاصيل).

  3. لا حاجة لتخزين أو طلب اسم المستخدم وكلمة المرور: استخدام Trackens Refresh يتيح لك طلب المستخدم الخاص باسم المستخدم وكلمة المرور الخاصة به مرة واحدة فقط بمجرد المصادقة لأول مرة، ثم يمكن لخادم التفويض إصدار طويل جدا سيتم تحديث Token (سنة واحدة على سبيل المثال) وسيظل المستخدم مسجلا في كل هذه الفترة ما لم يحاول مسؤول النظام إلغاء رمز التحديث. يمكنك التفكير في هذا الأمر كوسيلة للقيام بالوصول دون اتصال بالإنترنت إلى موارد الخادم، يمكن أن يكون ذلك مفيدا إذا كنت تقوم ببناء API الذي سيتم استهلاكه بواسطة تطبيق النهاية الأمامي حيث لا يكون من الممكن الاستمرار في طلب اسم المستخدم / كلمة المرور بشكل متكرر.

وأود أن أضيف أن هذا منظور آخر.

عديمي الجنسية المصادقة دون ضرب ديسيبل على كل طلب

لنفترض أنك تريد إنشاء عديمي الجنسية (رقم الدورة) الآلية الأمنية التي يمكن أن تفعل المصادقة الملايين من المستخدمين دون الحاجة إلى جعل بيانات الاتصال للقيام المصادقة.مع كل حركة المرور الخاصة بك التطبيق هو الحصول على إنقاذ DB ندعو كل طلب يستحق الكثير!وأنه يحتاج إلى أن يكون عديم الجنسية بحيث يمكن بسهولة متفاوت المسافات و الارتقاء إلى المئات أو حتى الآلاف من الخوادم.

مع الطراز القديم جلسات المستخدم بتسجيل الدخول ، وعند هذه النقطة يمكننا قراءة معلومات المستخدم من قاعدة البيانات.لتجنب الاضطرار إلى قراءته مرة أخرى ومرة أخرى نحن تخزينها في الدورة (عادة في الذاكرة أو بعض متفاوت ذاكرة التخزين المؤقت).نرسل الدورة معرف العميل في ملف تعريف الارتباط التي يتم إرفاق جميع الطلبات اللاحقة.على الطلبات اللاحقة ، ونحن نستخدم معرف جلسة لبحث الدورة ، التي بدورها تحتوي على معلومات المستخدم.

وضع معلومات المستخدم مباشرة في الرمز المميز للوصول

ولكن نحن لا نريد جلسات.لذا بدلا من تخزين معلومات المستخدم في الدورة ، دعنا نضع ذلك في الرمز المميز للوصول.توقيع رمز لذلك لا يمكن لأحد أن يعبث بها و المعزوفة.يمكننا أن مصادقة الطلبات بدون الدورة دون الحاجة للبحث عن معلومات المستخدم من DB لكل طلب.

لا الدورة ...لا توجد طريقة حظر المستخدمين ؟

ولكن لا وجود دورة كبيرة السلبي.ما إذا كان هذا المستخدم المحظورة على سبيل المثال ؟ في السيناريو القديم نحن فقط إزالة جلسة له.ثم يجب تسجيل الدخول مرة أخرى ، والتي لن تكون قادرة على القيام.بان الانتهاء.ولكن في سيناريو جديد لا يوجد الدورة.فكيف يمكن لنا بان له ؟ علينا أن أطلب منه (بأدب جدا) لإزالة له رمز وصول.التحقق من كل طلب وارد ضد الحظر القائمة ؟ نعم ستعمل ولكن الآن لدينا مرة أخرى لجعل هذا DB دعوة لا نريد.

حل وسط مع قصيرة الأجل الرموز

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

أقسام الإجابة الممكنة:

tokens تحديث السماح لأوقات الرموز المميزة / مختلفة مختلفة من الرموز. رموز الموارد الفعلية قصيرة الأجل، بينما يمكن أن تظل رمز التحديث ساري المفعول لسنوات (تطبيقات الجوال).يأتي هذا مع أمن أفضل (لا يجب أن تكون رموز الموارد محمية) والأداء (يجب على API تحديث Token فقط التحقق من صلاحية DB).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top