מבוא ל-Admin Auth API

האפשרות Firebase Admin SDK מאפשרת לכם לשלב את השרתים שלכם עם Firebase Authentication. אתם יכולים להשתמש ב-Firebase Admin SDK כדי לנהל את המשתמשים או כדי לנהל אסימוני אימות. יש כמה סיבות לכך שכדאי לעשות את זה:

ניהול משתמשים

לא תמיד נוח להיכנס ל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 יש שיטה מובנית ליצירת טוקנים בהתאמה אישית. אפשר גם ליצור אסימונים בהתאמה אישית באופן פרוגרמטי בכל שפה באמצעות ספריות JWT של צד שלישי.

השרת צריך ליצור טוקן בהתאמה אישית עם מזהה ייחודי (uid) ולהעביר את הטוקן הזה לאפליקציית לקוח, שתשתמש בו כדי להיכנס ל-Firebase. במאמר יצירת טוקנים בהתאמה אישית מופיעים דוגמאות לקוד ופרטים נוספים על תהליך יצירת הטוקנים בהתאמה אישית.

יצירת טוקנים בהתאמה אישית

אימות של אסימון מזהה

אם אפליקציית הלקוח Firebase מתקשרת עם שרת הקצה העורפי, יכול להיות שתצטרכו לזהות את המשתמש שמחובר כרגע בשרת כדי להפעיל לוגיקה בצד השרת בשמו. אפשר לעשות את זה בצורה מאובטחת באמצעות אסימונים מזהים שנוצרים על ידי Firebase כשמשתמש נכנס לאפליקציית Firebase. האסימונים המזהים תואמים למפרט OpenID Connect ומכילים נתונים לזיהוי משתמש, וגם מידע אחר שקשור לפרופיל ולאימות. אתם יכולים לשלוח, לאמת ולבדוק את האסימונים האלה מהעורפים שלכם. כך תוכלו לזהות בצורה מאובטחת את המשתמש שמחובר כרגע ולאשר לו גישה למשאבי ה-Backend שלכם.

ל-Firebase Admin SDK יש שיטה מובנית לאימות אסימוני מזהה. אפשר גם לאמת אסימוני מזהה באופן פרוגרמטי בכל שפה באמצעות ספריות JWT של צד שלישי. פרטים נוספים ודוגמאות קוד על תהליך האימות של אסימונים מזהים זמינים במאמר אימות אסימונים מזהים.

אימות של אסימונים מזהים

טענות משתמש בהתאמה אישית

המאפיין Firebase Admin SDK מאפשר להגדיר מאפיינים מותאמים אישית בחשבונות משתמשים. באמצעות טענות משתמש בהתאמה אישית, אתם יכולים לתת למשתמשים רמות גישה שונות (תפקידים), שנאכפות בכללי האבטחה של האפליקציה.

אחרי שמשנים הצהרות בהתאמה אישית לגבי משתמש באמצעות Firebase Admin SDK, ההצהרות מועברות למשתמשים מאומתים בצד הלקוח באמצעות האסימונים המזהים שלהם. אסימון המזהה הוא מנגנון מהימן להעברת ההצהרות המותאמות אישית האלה, וכל גישה מאומתת חייבת לאמת את אסימון המזהה לפני עיבוד הבקשה המשויכת.

שליטה בגישה באמצעות טענות בהתאמה אישית