מבוא ל-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, ‏ Facebook, טלפון וכו'. השילוב של הצהרות משתמש בהתאמה אישית וכללי אבטחה של אפליקציות מאפשר את היכולת הזו. לדוגמה, אפשר להגדיר בקרת גישה למשתמש שנכנס באמצעות ספק האימייל והסיסמה Firebase Authentication באמצעות הצהרות מותאמות אישית.

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

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

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

יצירת אסימון מותאם אישית

השימוש העיקרי ביצירת אסימונים בהתאמה אישית הוא לאפשר למשתמשים לבצע אימות באמצעות מנגנון אימות חיצוני או מנגנון אימות מדור קודם. זה יכול להיות ספק בשליטתכם, כמו שרת ה-LDAP, או ספק OAuth של צד שלישי שאין לו תמיכה מובנית ב-Firebase, כמו Instagram או LinkedIn.

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

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

יצירת אסימונים מותאמים אישית

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

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

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

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

הצהרות משתמש בהתאמה אישית

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

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

בקרה על הגישה באמצעות הצהרות מותאמות אישית