כניסת משתמשים באמצעות SAML
במאמר הזה מוסבר איך משתמשים ב-Identity Platform כדי להכניס משתמשים באמצעות ספק Security Assertion Markup Language (SAML) 2.0.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מפעילים את Identity Platform ומוסיפים את ה-SDK של הלקוח לאפליקציה. מידע נוסף והוראות זמינים במאמר כניסה של משתמש באמצעות אימייל באמצעות Identity Platform.
הגדרת הספק
במסוף Google Cloud , נכנסים לדף Identity Platform > ספקי זהויות.
כניסה לדף 'ספקי זהויות'לוחצים על הוספת ספק ובוחרים באפשרות SAML מהרשימה.
מזינים את הפרטים הבאים:
שם הספק. הערך יכול להיות זהה למזהה הספק או שם בהתאמה אישית. אם מזינים שם בהתאמה אישית, לוחצים על עריכה לצד מזהה הספק כדי לציין את המזהה (שחייב להתחיל ב-
saml).מזהה הישות של הספק.
כתובת ה-URL של SAML SSO של הספק.
האישור שמשמש לחתימה על טוקנים אצל הספק. חשוב לכלול את המחרוזות של ההתחלה והסיום. לדוגמה:
-----BEGIN CERTIFICATE----- MIICajCCAdOgAwIBAgIBADANBgkqhkiG9w0BAQ0FADBSMQswCQYDVQQGEwJ1czEL ... LEzc1JwEGQQVDYQCwsQMSBDAF0QAB0w9GikhqkgBNADABIgABIwAgOdACCjaCIIM -----END CERTIFICATE-----
בקטע ספק שירותים, מזינים את מזהה הישות של האפליקציה. בדרך כלל זה כתובת ה-URL של האפליקציה. בספק הזהויות של SAML, זה נקרא הקהל.
בחלונית הצדדית Project settings (הגדרות הפרויקט), לוחצים על Add Domain (הוספת דומיין) ומוסיפים את הדומיין של האפליקציה. לדוגמה, אם כתובת ה-URL של הכניסה לאפליקציה היא
https://example.com/login, מוסיפיםexample.com.כדי להשלים את ההגדרה, מבצעים אחת מהפעולות הבאות:
מעתיקים את כתובת ה-URL של התקשרות החזרה להרשאה שמופיעה כברירת מחדל בשדה Authorization callback (URL) (התקשרות חזרה להרשאה (כתובת URL)) ומוסיפים אותה להגדרות של אפליקציית SAML.
שימוש בכתובת ה-URL של התקשרות חזרה לאימות שמוגדרת כברירת מחדל מפחית את המורכבות של אימות תגובת SAML.
מוסיפים את כתובת ה-URL המותאמת אישית של הקריאה החוזרת לאישור להגדרות של אפליקציית SAML – לדוגמה,
https://PROJECT-ID.firebaseapp.com/__/auth/handler.
בקטע הגדרת האפליקציה, לוחצים על פרטי ההגדרה. מעתיקים את קטע הקוד לקוד של האפליקציה כדי להפעיל את ה-SDK של לקוח Identity Platform.
לוחצים על Save.
רכיבים שנדרשים על ידי הספק
ב-Identity Platform מצפים שהרכיבים <saml:Subject> ו-<saml:NameID> יופיעו בתגובות מהספק.
אם לא מגדירים ערכים לרכיבים האלה כשמגדירים את הספק, טענת ה-SAML נכשלת.
חתימה על בקשות
כדי לשפר את האבטחה של בקשות האימות, אפשר לחתום עליהן.
כדי לחתום על בקשות, קודם צריך להפעיל חתימה על בקשות אצל ספק הזהויות. לשם כך, קוראים ל-inboundSamlConfigs.patch() ומגדירים את idp_config.sign_request ל-true:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
project-id: המזהה של Google Cloud הפרויקט -
provider-id: מזהה ספק SAML
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://identitytoolkit.googleapis.com/admin/v2/projects/project-id/inboundSamlConfigs/provider-id?updateMask=idpConfig.signRequest
תוכן בקשת JSON:
{
"idp_config": {
"sign_request": true
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
כדי להפעיל בקשות חתומות, צריך להשתמש ב-API ל-REST. אי אפשר להשתמש במסוףGoogle Cloud או ב-Google Cloud CLI.
התגובה היא אובייקט InboundSamlConfig, שכולל מערך של אובייקטים SpCertificate.
מגדירים את הערך של אישור X509 אצל ספק הזהויות של SAML כדי שיוכל לאמת את החתימה של הבקשות.
החלפת אישורים של ספקי שירות
כשמשתמשים בבקשות SAML חתומות, Identity Platform משתמש באישור של ספק שירותים (SP). כדי למנוע שיבושים באימות, חשוב לעקוב אחרי תאריך התפוגה של אישורי ה-SP ולחדש אותם לפני שהוא מגיע.