الأمان والمصادقة النموذج في تطبيقات العميل / الخادم

StackOverflow https://stackoverflow.com/questions/1014042

سؤال

وأنا تطوير العرف تطبيق العميل / الخادم يتطلب العميل لتسجيل الدخول باستخدام اسم المستخدم وكلمة المرور الخاصة بهم. لا ترتبط حسابات المستخدمين إلى حسابات / AD ويندوز بأي شكل من الأشكال. بعد تسجيل الدخول، وتطبيق عميل طلب خدمات أخرى من نظام الخادم.

وسؤالي هو ما هي أفضل طريقة لتنفيذ ذلك؟ أي نوع من الهندسة المعمارية من شأنها أن تناسب أفضل هنا؟ أعتقد أن بعض نوع من تذكرة / يحتاج نظام التوثيق رمزية لتنفيذها ؟؟؟

والشكر

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

المحلول

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

نصائح أخرى

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

Table:  Users
Fields: UserID   PK
        Login    Text
        Password Text
        ...

Table:  Roles
Fields: RoleID   PK
        Role     Text
        ...

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