שלום לכולם,
אשמח לשמוע את דעתכם על נושא של ארכיטקטורת ניהול משתמשים עם רמות גישה שונות.
במערכת שאני מפתח יש 3 סוגי משתמשים, שלכל אחד מהם יש ממשק שונה לגמרי, כמעט כמו "תוכנה נפרדת":
-
מנהל מערכת – מנהל את הסוכנים והלקוחות.
-
סוכן – מנהל את המכירות האישיות שלו, כשלקוחות יכולים להיות משותפים לסוכנים אחרים.
-
לקוח – רואה מידע אישי על הקניות שלו.
אני מתלבט בין שתי גישות:
גישה אחת – ליצור טבלת users אחידה עם שדה role, ולקשר ממנה לישות המתאימה (מנהל/סוכן/לקוח). זה נותן מקום אחיד לניהול התחברות ואבטחה, אבל מעלה את המורכבות בתכנון, התחזוקה, והבאגים האפשריים (בין הקישורים למיניהם, ושאר ירקות).
גישה שנייה – להשאיר את ההתחברות בתוך כל ישות (מנהל, סוכן, לקוח) בנפרד, עם שדה סיסמה בכל טבלה ומסך כניסה שונה לכל סוג. זה מפשט את הקוד לכל תפקיד, אבל יוצר כפילויות ועשוי להיות פחות מאובטח מבחינת ניחוש מבנה המערכת.
שיקול נוסף: לא הייתי רוצה לחשוף ישירות את כתובת ההתחברות של מנהל המערכת, כי זה עשוי להפוך אותה ליעד אטרקטיבי למי שמנסה לפרוץ. כשיש מסך כניסה אחד כללי – הרבה יותר קשה להבין מראש לאיזו ישות שייך המשתמש.
מה הגישה שאתם ממליצים עליה? יש פתרון ביניים חכם שיאזן בין האבטחה, הפשטות והתחזוקה?
תודה רבה מראש!