האפשרות Firebase Admin SDK מאפשרת לכם לשלב את השרתים שלכם עם Firebase Authentication. אתם יכולים להשתמש ב-Firebase Admin SDK כדי לנהל את המשתמשים או כדי לנהל אסימוני אימות. יש כמה סיבות לכך שכדאי לעשות את זה:
ניהול משתמשים
לא תמיד נוח להיכנס לFirebaseמסוףFirebase כדי לנהל את FirebaseהמשתמשיםFirebase. ה-API לניהול משתמשים באדמין מספק גישה פרוגרמטית לאותם משתמשים. הוא אפילו מאפשר לכם לבצע פעולות שלא ניתן לבצע במסוף Firebase, כמו אחזור של נתונים מלאים של משתמש ושינוי של הסיסמה, כתובת האימייל או מספר הטלפון של משתמש.
אימות בהתאמה אישית
אפשר לשלב מערכת משתמשים חיצונית עם Firebase. לדוגמה, יכול להיות שכבר יש לכם מסד נתונים קיים של משתמשים, או שאתם רוצים לבצע שילוב עם ספק זהויות של צד שלישי ש-Firebase Authentication לא תומך בו באופן מובנה.
כדי לעשות את זה, אפשר ליצור אסימונים בהתאמה אישית עם הצהרות שרירותיות שמזהות את המשתמש. אחר כך אפשר להשתמש באסימונים המותאמים אישית כדי להיכנס לשירות Firebase Authentication באפליקציית לקוח, ולהניח את הזהות שמתוארת בהצהרות של האסימון. לאחר מכן, הזהות הזו תשמש לגישה לשירותים אחרים של Firebase, כמו Cloud Storage.
אימות זהות
השימוש העיקרי ב-Firebase Authentication הוא לזיהוי משתמשים באפליקציה שלכם כדי להגביל את הגישה לשירותים אחרים, כמו Cloud Storage. אפשר גם להשתמש בשירות כדי לזהות את המשתמשים האלה בשרת שלכם. האפשרות הזו מאפשרת לכם לבצע בצורה מאובטחת לוגיקה בצד השרת בשם משתמשים שנכנסו באמצעות Firebase Authentication.
כדי לעשות את זה, אפשר לאחזר אסימון מזהה מאפליקציית לקוח שמחוברת באמצעות Firebase Authentication ולכלול את האסימון בבקשה לשרת. השרת מאמת את טוקן הזהות ומחלץ את הטענות שמזהות את המשתמש (כולל uid, ספק הזהויות שאיתו הוא התחבר וכו'). לאחר מכן, השרת יכול להשתמש בפרטי הזהות האלה כדי לבצע פעולות בשם המשתמש.
Firebase Admin SDK מספק שיטות לביצוע משימות האימות שצוינו למעלה, ומאפשר לכם לנהל את המשתמשים, ליצור אסימונים בהתאמה אישית ולאמת אסימונים מזהים.
טענות לגבי משתמשים בהתאמה אישית
במקרים מסוימים, יכול להיות שתרצו להטמיע בקרת גישה מדויקת למשתמשים שכבר נכנסו באמצעות אחד מספקי האימות הנתמכים של Firebase, כמו אימייל/סיסמה, Google, פייסבוק, טלפון וכו'. שילוב של טענות מותאמות אישית לגבי משתמשים וכללי אבטחה של האפליקציה מספק את היכולת הזו. לדוגמה, למשתמש שנכנס באמצעות ספק Firebase Authentication אימייל וסיסמה יכולה להיות בקרת גישה שמוגדרת באמצעות טענות מותאמות אישית.
ניהול המשתמשים
Firebase Admin SDK מספק API לניהול המשתמשים שלכם עם הרשאות גבוהות.Firebase ה-API לניהול משתמשים לאדמינים מאפשר לכם לאחזר, ליצור, לעדכן ולמחוק משתמשים באופן פרוגרמטי בלי לדרוש את פרטי הכניסה הקיימים של המשתמשים ובלי לדאוג להגבלת קצב הבקשות בצד הלקוח.
ניהול משתמשיםיצירת טוקן מותאם אישית
השימוש העיקרי ביצירת אסימונים בהתאמה אישית הוא לאפשר למשתמשים לבצע אימות מול מנגנון אימות חיצוני או מדור קודם. יכול להיות שזה שרת שאתם שולטים בו, כמו שרת LDAP, או ספק OAuth של צד שלישי ש-Firebase לא תומך בו באופן מובנה, כמו אינסטגרם או לינקדאין.
ל-Firebase Admin SDK יש method מובנית ליצירת טוקנים בהתאמה אישית. אפשר גם ליצור אסימונים בהתאמה אישית באופן פרוגרמטי בכל שפה באמצעות ספריות JWT של צד שלישי.
השרת צריך ליצור טוקן מותאם אישית עם מזהה ייחודי (uid) ולהעביר את הטוקן הזה לאפליקציית לקוח, שתשתמש בו כדי להיכנס ל-Firebase. במאמר יצירת טוקנים בהתאמה אישית אפשר למצוא דוגמאות לקוד ופרטים נוספים על תהליך היצירה של טוקנים בהתאמה אישית.
אימות של אסימון מזהה
אם אפליקציית הלקוח Firebase מתקשרת עם שרת הקצה העורפי, יכול להיות שתצטרכו לזהות את המשתמש שמחובר כרגע בשרת כדי שתוכלו לבצע לוגיקה בצד השרת בשמו. אפשר לעשות את זה בצורה מאובטחת באמצעות אסימונים מזהים שנוצרים על ידי Firebase כשמשתמש נכנס לאפליקציית Firebase. האסימונים המזהים תואמים למפרט OpenID Connect ומכילים נתונים לזיהוי משתמש, וגם מידע אחר שקשור לפרופיל ולאימות. אתם יכולים לשלוח, לאמת ולבדוק את האסימונים האלה מהקצה האחורי שלכם. כך תוכלו לזהות בצורה מאובטחת את המשתמש שמחובר כרגע ולתת לו הרשאה לגשת למשאבי ה-Backend שלכם.
ל-Firebase Admin SDK יש שיטה מובנית לאימות אסימוני מזהה. אפשר גם לאמת אסימוני מזהה באופן פרוגרמטי בכל שפה באמצעות ספריות JWT של צד שלישי. פרטים נוספים ודוגמאות קוד על תהליך אימות אסימונים מזהים זמינים במאמר בנושא אימות אסימונים מזהים.
טענות משתמש בהתאמה אישית
המאפיין Firebase Admin SDK מאפשר להגדיר מאפיינים מותאמים אישית בחשבונות משתמשים. באמצעות טענות משתמש בהתאמה אישית, אתם יכולים לתת למשתמשים רמות גישה שונות (תפקידים), שנאכפות בכללי האבטחה של האפליקציה.
אחרי שמשנים הצהרות בהתאמה אישית אצל משתמש באמצעות Firebase Admin SDK, ההצהרות מועברות למשתמשים מאומתים בצד הלקוח באמצעות האסימונים המזהים שלהם. אסימון המזהה הוא מנגנון מהימן להעברת ההצהרות המותאמות אישית האלה, וכל גישה מאומתת חייבת לאמת את אסימון המזהה לפני עיבוד הבקשה המשויכת.
שליטה בגישה באמצעות טענות בהתאמה אישית