| קטגוריית טוקן | נתיב התקשורת | מטרה |
|---|---|---|
| אסימוני גישה | שרת הרשאות ⭢ לקוח ⭢ Google API | מאפשר ללקוחות לשלוח קריאות ל- Google Cloud API. |
| אסימונים שמעניקים גישה לאסימונים | שרת הרשאות ⭤ לקוח | מאפשר ללקוחות לקבל טוקנים חדשים או שונים, אולי בשלב מאוחר יותר. |
| אסימוני זהות | שרת הרשאות ⭢ לקוח | התכונה מאפשרת ללקוחות לזהות את המשתמש שאיתו הם מקיימים אינטראקציה. |
רוב אסימוני הגישה והזהות הם אסימונים למוכ"ז. אסימונים למוכ"ז מעניקים גישה לגורם שמחזיק באסימון, בלי קשר לאופן שבו הוא השיג את האסימון. אם גורם זדוני מיירט אסימון למוכ"ז, הוא יכול להשתמש בו כדי לקבל גישה לא מורשית.
טוקנים קשורים מעניקים גישה ללקוח ספציפי. כדי להשתמש בטוקן קשור, הלקוח צריך לספק הוכחה נוספת לכך שהוא הבעלים המורשה של הטוקן. לכן, טוקנים קשורים הם מגבילים יותר מטוקנים מסוג bearer, ויכולים לעזור להפחית את הסיכון לגניבת טוקנים.
אסימוני גישה
אסימוני גישה מאפשרים ללקוחות לבצע קריאות מאומתות לממשקי API של Google Cloud .Google Cloud תומך בכמה סוגים שונים של אסימוני גישה, שיש להם את המאפיינים המשותפים הבאים:
הם מאמתים חשבון ראשי, שיכול להיות משתמש או עומס עבודה.
הם מונפקים ללקוח מסוים.
הם קיימים לזמן קצר בלבד, והתוקף שלהם פג אחרי כמה שעות לכל היותר.
הם מוגבלים להיקפי הרשאות, לנקודות קצה או למשאבים מסוימים של OAuth. המשמעות היא שבדרך כלל, טוקן גישה לא מעניק גישה לכל המשאבים של המשתמש, אלא רק לקבוצת משנה מסוימת שלהם.
ההבדלים בין טוקנים של גישה יכולים להיות:
מנפיק: הגורם שמנפיק את האסימון.
Principal: סוג חשבון המשתמש שאסימון יכול לאמת.
הגבלות: ההגבלות שאפשר להטיל על הטוקן.
בטבלה הבאה מפורטים סוגים שונים של טוקנים לגישה:
| סוג הטוקן | מנפיק | חשבונות משתמשים | הגבלות |
|---|---|---|---|
| טוקן גישה של משתמש | שרת ההרשאות של Google |
|
היקף הרשאות OAuth |
| טוקן גישה לחשבון שירות |
|
חשבון שירות | היקף הרשאות OAuth |
| אסימון של הענקת גישה ברמת הדומיין | שרת ההרשאות של Google | משתמש (חשבון מנוהל) | היקף הרשאות OAuth |
| אסימון JWT (JSON Web Token) של חשבון שירות | לקוח | חשבון שירות | היקף הרשאות OAuth או API |
| אסימון גישה מאוחד | Google Cloud שרת הרשאות IAM |
|
היקף הרשאות OAuth |
| טוקן גישה לזהות הסוכן | Google Cloud שרת הרשאות IAM | הזהות של הישות המורשית של הסוכן | היקף הרשאות OAuth |
| אסימון של גבול גישה לפרטי כניסה | Google Cloud שרת הרשאות IAM |
|
אובייקטים ספציפיים ב-Cloud Storage |
| טוקן של גבול גישה לפרטי כניסה שהונפק על ידי הלקוח | לקוח | חשבון שירות | אובייקטים ספציפיים ב-Cloud Storage |
לסוגים השונים של טוקנים לגישה יש גם מאפייני אבטחה שונים:
- פורמט: חלק מאסימוני הגישה הם אטומים, כלומר הם בפורמט קנייני ואי אפשר לבדוק אותם. אסימונים אחרים מקודדים כאסימון אינטרנט מסוג JSON, שאפשר לפענח אותו באמצעות הלקוח.
- יכולת בדיקה: אפשר לבדוק חלק מהאסימונים האטומים באמצעותGoogle Cloud API, אבל אי אפשר לבדוק אחרים.
- משך החיים: משך החיים של הטוקנים שונה, וגם מידת האפשרות לשנות אותם.
- אפשרות ביטול: אפשר לבטל חלק מהטוקנים. אסימונים אחרים נשארים בתוקף עד לתאריך התפוגה.
- קישור: אפשר לקשר חלק מהאסימונים לאישורים נוספים, וכך הם הופכים לאסימונים מקושרים.
בטבלה הבאה מסוכמים ההבדלים בין סוגי טוקן הגישה.
| סוג הטוקן | פורמט | ניתן לבדיקה | כל התאריכים | ניתן לביטול | קישור |
|---|---|---|---|---|---|
| טוקן גישה של משתמש | אטום | כן | שעה אחת | כן | |
| טוקן גישה לחשבון שירות | אטום | כן | 5 דקות עד 12 שעות | לא | |
| טוקן של הענקת גישה ברמת הדומיין | אטום | כן | שעה אחת | לא | |
| אסימון JWT (JSON Web Token) של חשבון שירות | JWT | לא רלוונטי | 5 דקות עד שעה | לא | |
| טוקן גישה מאוחד | אטום | לא | אסימוני גישה מאוחדים | לא | |
| טוקן גישה לזהות הסוכן | אטום | לא | טוקנים של גישה לזהות הסוכן | לא | אישור לקוח X.509 |
| טוקן של גבול גישה לפרטי כניסה | אטום | לא | מידע נוסף על אסימונים של גבולות גישה לפרטי כניסה | לא | |
| טוקן של גבול גישה לפרטי כניסה שהונפק על ידי הלקוח | אטום | לא | לא רלוונטי | לא |
טוקנים של גישה של משתמשים
אסימוני גישה למשתמשים הם אסימונים למוכ"ז שמאמתים משתמש ומאשרים ללקוח לפעול בשם המשתמש:
- הגורם המאומת הוא חשבון משתמש מנוהל או חשבון פרטי.
- הלקוח יכול להיות אפליקציית אינטרנט או אפליקציית נייטיב.
טוקנים של גישת משתמשים הם אטומים. למטרות אבחון, אפשר לבדוק את טוקן הגישה באמצעות הפקודה הבאה, ולהחליף את ACCESS_TOKEN בטוקן גישה תקין:
curl "https://oauth2.googleapis.com/tokeninfo?access_token=ACCESS_TOKEN"
הפלט של הפקודה אמור להיראות כך:
{
"azp": "0000000000.apps.googleusercontent.com",
"aud": "0000000000.apps.googleusercontent.com",
"sub": "00000000000000000000",
"scope": "openid https://www.googleapis.com/auth/userinfo.email",
"exp": "1744687132",
"expires_in": "3568",
"email": "user@example.com",
"email_verified": "true"
}
הפלט כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל |
לקוח ה-OAuth שאליו משויך הטוקן הזה, שמזוהה באמצעות מזהה הלקוח ב-OAuth. לקוחות OAuth יכולים לקבל טוקנים של גישה ללקוחות OAuth אחרים ששייכים לאותו פרויקט. יכול להיות שהקהל יהיה שונה מהצד המורשה. |
azp |
צד מורשה | לקוח ה-OAuth שביקש את הטוקן, שמזוהה באמצעות מזהה הלקוח שלו ב-OAuth. |
email |
כתובת אימייל ראשית |
כתובת האימייל הראשית של המשתמש.
השדה הזה מופיע רק אם האסימון כולל את ההיקף
|
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
scope |
היקפי ההרשאות של OAuth | קבוצת ממשקי ה-API שהלקוח מורשה לגשת אליהם בשם המשתמש, שמזוהה על ידי היקף הרשאות OAuth. |
sub |
נושא |
הגורם המאומת, שמזוהה באמצעות המזהה הייחודי שלו. המזהה הזה זהה למזהה שמוצג ב- Directory API. |
התוקף של אסימוני גישה של משתמשים פג אוטומטית אחרי שעה, אבל אפשר לבטל אותם לפני כן אם צריך.
כברירת מחדל, אסימוני הגישה של המשתמשים הם אסימונים למוכ"ז, כלומר הם לא קשורים לערוץ תקשורת, לרשת או לפרטי כניסה נוספים. אפשר גם להטמיע קישור טוקנים על ידי פריסת גישה מבוססת-אישורים, כך שאפשר להשתמש בטוקנים של גישת משתמש רק בשילוב עם אישור לקוח mTLS תקין.
אסימוני גישה לחשבון שירות
אסימוני גישה של חשבונות שירות הם אסימונים למוכ"ז שמאמתים חשבון שירות. האסימונים הם אטומים
ואפשר לבדוק אותם באמצעות https://oauth2.googleapis.com/tokeninfo
API.
עבור אסימון גישה של חשבון שירות, ה-API מחזיר פלט שדומה לדוגמה הבאה:
{
"azp": "000000000000000000000",
"aud": "000000000000000000000",
"scope": "https://www.googleapis.com/auth/userinfo.email",
"exp": "1744687132",
"expires_in": "3568",
"email": "service-account@example.iam.gserviceaccount.com",
"email_verified": "true",
"access_type": "online"
}
אסימון של חשבון שירות כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל | חשבון השירות שאליו משויך האסימון, ששווה ל-authorized party. |
azp |
צד מורשה | חשבון השירות שביקש את האסימון, שמזוהה באמצעות המזהה הייחודי שלו. |
email |
כתובת אימייל ראשית |
כתובת האימייל של חשבון השירות.
השדה הזה מופיע רק אם האסימון כולל את ההיקף
|
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
אי אפשר לבטל אסימוני גישה לחשבונות שירות, והם נשארים בתוקף עד שהתוקף שלהם פג.
כברירת מחדל, התוקף של אסימוני גישה לחשבון שירות פג אחרי שעה אחת. באמצעות השיטה
serviceAccounts.generateAccessToken
אפשר לבקש טוקנים עם תוקף שונה. משך חיים ארוך יותר של אסימונים עלול להגדיל את הסיכון, ולכן צריך להגדיר את האילוץ iam.allowServiceAccountCredentialLifetimeExtension כדי לאפשר ללקוחות לבקש אסימוני גישה לחשבון שירות עם משך חיים ארוך משעה אחת.
אסימונים של הענקת גישה ברמת הדומיין
אסימוני הענקת גישה ברמת הדומיין הם אסימונים למוכ"ז שמאמתים משתמש ומאשרים לחשבון שירות לפעול בשם המשתמש. האסימונים הם אטומים ואפשר לבדוק אותם באמצעות https://oauth2.googleapis.com/tokeninfo API.
אם מדובר באסימון של הענקת גישה ברמת הדומיין, ה-API מחזיר פלט שדומה לדוגמה הבאה:
{
"azp": "000000000000000000000",
"aud": "000000000000000000000",
"scope": "https://www.googleapis.com/auth/admin.directory.user.readonly https://www.googleapis.com/auth/userinfo.email",
"exp": "1744688957",
"expires_in": "3540",
"email": "user@example.com",
"email_verified": "true",
"access_type": "offline"
}
אסימון להענקת גישה ברמת הדומיין כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל | חשבון השירות שאליו משויך האסימון, ששווה לצד המורשה. |
azp |
צד מורשה | חשבון השירות שביקש את האסימון, שמזוהה באמצעות המזהה הייחודי שלו. |
email |
כתובת אימייל ראשית |
כתובת האימייל הראשית של המשתמש שמתחזים אליו. השדה הזה מופיע רק אם האסימון כולל את ההיקף
|
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
scope |
היקפי ההרשאות של OAuth | קבוצת ממשקי ה-API שהלקוח יכול לגשת אליהם בשם המשתמש המתחזה, שמזוהה על ידי היקף ההרשאות של OAuth. |
התוקף של טוקנים של גישה ברמת הדומיין פג אוטומטית אחרי שעה, ואי אפשר לבטל אותם.
אסימוני JWT (JSON Web Tokens) של חשבון שירות
אסימוני JWT (JSON Web Tokens) של חשבון שירות הם אסימוני bearer שמאמתים חשבון שירות. לעומת זאת, אסימוני גישה לחשבון שירות מונפקים על ידי שרת הרשאות, אבל אסימוני JWT של חשבון שירות יכולים להיות מונפקים על ידי הלקוח עצמו.
לפעמים הם נקראים אסימוני JWT בחתימה עצמית. הם יכולים להיות שימושיים כשצריך לבצע אימות לממשקי Google APIs מסוימים בלי לקבל אסימון גישה משרת ההרשאות – למשל, כשיוצרים ספריות לקוח משלכם.
כדי להנפיק JWT של חשבון שירות, הלקוחות צריכים לבצע את השלבים הבאים:
מכינים מטען ייעודי (payload) של חתימת אינטרנט מסוג JSON שכולל את כתובת האימייל של חשבון השירות, היקף הרשאה של OAuth או נקודת קצה ל-API ומועד תפוגה.
חתימה על מטען הייעודי (payload) באמצעות מפתח של חשבון השירות הרלוונטי. לקוחות יכולים לחתום על מטען הייעודי (payload) במצב אופליין באמצעות מפתח לחשבון שירות בניהול משתמש, או במצב אונליין באמצעות השיטה
signJwtומפתח לחשבון שירות בניהול Google. למידע נוסף, אפשר לעיין במאמר בנושא יצירת JSON Web Token בחתימה עצמית
אסימון JWT של חשבון שירות אחרי פענוח נראה בערך כך, כש-SIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "RS256",
"kid": "290b7bf588eee0c35d02bf1164f4336229373300",
"typ": "JWT"
}.{
"iss": "service-account@example.iam.gserviceaccount.com",
"sub": "service-account@example.iam.gserviceaccount.com",
"scope": "https://www.googleapis.com/auth/cloud-platform",
"exp": 1744851267,
"iat": 1744850967
}.SIGNATURE
במקום לציין היקף OAuth במפתח scope, אסימון JWT של חשבון שירות יכול לציין נקודת קצה ל-API במפתח aud:
{
"alg": "RS256",
"kid": "290b7bf588eee0c35d02bf1164f4336229373300",
"typ": "JWT"
}.{
"iss": "service-account@example.iam.gserviceaccount.com",
"sub": "service-account@example.iam.gserviceaccount.com",
"aud": "https://cloudresourcemanager.googleapis.com/",
"exp": 1744854799,
"iat": 1744851199
}.SIGNATURE
JWT של חשבון שירות כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל |
נקודות קצה של API שהלקוח יכול לגשת אליהן. ההגדרה הזו תקפה רק אם לא צוין scope.
|
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
iat |
זמן הבעיה | הזמן שבו הונפק האסימון, בפורמט של חותמת זמן של מערכת Unix. |
iss |
מנפיק | הגורם שהנפיק את האסימון, שהוא חשבון השירות עצמו. |
scope |
היקפי ההרשאות של OAuth |
קבוצת ממשקי ה-API שהלקוח מורשה לגשת אליהם, שמזוהים על ידי
היקף הרשאות OAuth. ההגדרה הזו תקפה רק אם לא צוינה מדיניות aud.
|
sub |
נושא | חשבון המשתמש המאומת, שהוא חשבון השירות עצמו. |
תוקף של JWT של חשבון שירות יכול להיות עד שעה, ואי אפשר לבטל אותו.
אסימוני גישה מאוחדים
אסימוני גישה מאוחדים הם אסימוני נשיאה שמאמתים את הזהות של משתמש במאגר כוח אדם או של משתמש במאגר זהויות של עומסי עבודה.
איחוד שירותי אימות הזהות של כוח עבודה מאפשר ללקוחות להמיר אסימון חיצוני לאסימון גישה מאוחד שמאמת את המשתמש הראשי במאגר זהויות של כוח עבודה. הגורם הראשי במאגר הזהויות של כוח העבודה מזוהה באמצעות מזהה גורם ראשי שדומה לזה:
principal://iam.googleapis.com/locations/global/workforcePools/POOL/subject/raha@altostrat.com.
איחוד שירותי אימות הזהות של עומסי עבודה מאפשר ללקוחות להמיר אסימון חיצוני לאסימון גישה מאוחד שמאמת את העיקרון של מאגר עומסי עבודה. הגורם הראשי במאגר הזהויות של עומסי העבודה מזוהה על ידי מזהה גורם ראשי שדומה לזה:
principal://iam.googleapis.com/projects/PROJECT/locations/global/workloadIdentityPools/POOL/subject/SUBJECT_ATTRIBUTE_VALUE
אסימוני גישה מאוחדים הם אטומים ואי אפשר לבדוק אותם. אי אפשר לבטל את האסימונים והם תקפים עד לתפוגה. תוקף האסימונים מכל סוג מוגדר באופן הבא:
איחוד שירותי אימות הזהות של כוח העבודה מגדיר את תוקף האסימון לערך הקטן מבין שני הערכים הבאים:
הזמן שנותר עד שתוקף הסשן של איחוד שירותי אימות הזהות של כוח העבודה יפוג
שעה אחת
תוקף הסשן של איחוד שירותי אימות הזהות של כוח העבודה נקבע על סמך זמן הכניסה ומשך הסשן שהוגדר למאגר של איחוד שירותי אימות הזהות של כוח העבודה.
איחוד שירותי אימות הזהות של עומסי עבודה מגדיר את תפוגת האסימון כך שתהיה זהה לתפוגה של האסימון החיצוני.
טוקנים של גישת זהות לסוכנים
טוקנים של גישה לזהות סוכן מאמתים סוכן שהוקצתה לו זהות סוכן ומשתמשים במזהה ראשי שדומה לזה:
principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/us-central1/reasoningEngines/REASONING_ENGINE_ID
מזהה החשבון הראשי מבוסס על מזהה SPIFFE של אישור הלקוח X.509 של הסוכן, אבל משתמש בקידומת principal:// במקום spiffe://.
סוכן יכול לקבל אסימון גישה לזהות הסוכן משרת המטא-נתונים של Compute Engine. אופציונלית, הסוכן יכול לבקש שהטוקן יהיה קשור לאישור הלקוח X.509 שלו. אסימון גישה של סוכן מאוגד תקף רק כשמשתמשים בו בחיבור TLS הדדי שאומת באמצעות אישור הלקוח X.509 שאליו האסימון קשור.
בדומה לאסימוני גישה מאוחדים, אסימוני גישה של זהות סוכן הם אטומים, אי אפשר לבדוק אותם או לבטל אותם, והם תקפים עד שתוקפם יפוג. כברירת מחדל, אסימוני גישה לזהות של סוכן תקפים למשך שעה אחת, אבל יכול להיות שתוקף האסימון יהיה קצר יותר אם הוא משויך לאישור לקוח X.509 שתוקפו עומד לפוג.
אסימונים של גבולות גישה לפרטי כניסה
אסימונים של גבולות גישה לפרטי כניסה הם אסימוני bearer שמאמתים משתמש או חשבון שירות וכוללים גבול גישה. גבול הגישה מגביל את האסימון כך שאפשר להשתמש בו רק כדי לגשת לקבוצת משנה מוגדרת של משאבי Cloud Storage.
אסימונים של גבולות הגישה לפרטי כניסה נקראים לפעמים אסימונים עם היקף מצומצם כי הם נגזרים מאסימון קלט, אבל הגישה שלהם למשאבים מוגבלת יותר.
תוקף הטוקנים של גבולות הגישה לפרטי הכניסה נגזר מתוקף טוקן הקלט, שיכול להיות טוקן גישה של משתמש או טוקן גישה של חשבון שירות.אסימונים של גבולות גישה לפרטי כניסה הם אטומים, ואי אפשר לבדוק או לבטל אותם.
טוקנים של גבולות גישה לפרטי כניסה שהונפקו על ידי לקוח
אסימונים של גבולות גישה לפרטי כניסה שהונפקו על ידי לקוח דומים לאסימונים של גבולות גישה לפרטי כניסה, אבל הם מותאמים לתרחישים שבהם לקוחות צריכים לקבל אסימונים של גבולות גישה לפרטי כניסה עם גבולות גישה שונים בתדירות גבוהה.
לקוחות יכולים ליצור באופן מקומי אסימונים של גבול גישה לפרטי כניסה שהונפקו על ידי לקוח, באמצעות ספריות הלקוח ב-Cloud ואסימון ביניים של גבול גישה, שאותו הם צריכים לרענן מעת לעת.
אסימונים של גבולות גישה לפרטי כניסה שהונפקו על ידי לקוח הם אטומים, ואי אפשר לבדוק אותם או לבטל אותם.
טוקנים שמעניקים טוקנים
אסימונים שמעניקים אסימונים מאפשרים ללקוחות לקבל אסימונים חדשים או שונים, יכול להיות שבמועד מאוחר יותר. Google Cloud תומך בכמה סוגים שונים של אסימונים שמעניקים אסימונים, ולכולם יש את המאפיינים המשותפים הבאים:
הם מייצגים אימות קודם.
הם מאמתים חשבון משתמש, שיכול להיות זהות ב-Google (משתמש או עומס עבודה) או זהות חיצונית.
אפשר לממש אותם כדי לקבל טוקן גישה.
אי אפשר להשתמש בהם כדי לשלוח קריאות ל-Google API, ולכן הם שונים מטוקנים של גישה.
ההבדלים בין טוקנים שמעניקים טוקנים הם:
מנפיק: הגורם שמנפיק את האסימון.
Principal: סוג הזהות של חשבון המשתמש שאסימון יכול לאמת.
הגבלות: ההגבלות שאפשר להטיל על הטוקן.
בטבלה הבאה מפורטים הסוגים השונים של אסימונים שמעניקים אסימונים.
| סוג הטוקן | מנפיק | סוג טוקן הגישה שנפדה | חשבונות משתמשים | הגבלות |
|---|---|---|---|---|
| טוקן רענון | שרת ההרשאות של Google | טוקן גישה של משתמש |
|
היקף הרשאות OAuth |
| קוד הרשאה | שרת ההרשאות של Google | טוקן גישה של משתמש |
|
היקף הרשאות OAuth |
| טוקן רענון מאוחד | Google Cloud שרת הרשאות IAM | טוקן גישה מאוחד | פרינציפל במאגר זהויות של כוח עבודה | היקף הרשאות OAuth |
| קוד הרשאה מאוחד | Google Cloud שרת הרשאות IAM | טוקן גישה מאוחד | פרינציפל במאגר זהויות של כוח עבודה | היקף הרשאות OAuth |
| טענת זהות של אסימון אינטרנט מסוג JSON של חשבון שירות | לקוח |
|
|
היקף הרשאות OAuth |
| אסימון רשת מבוסס JSON חיצוני | ספק זהויות חיצוני | טוקן גישה מאוחד | גורם חיצוני | ללא |
| טענת נכוֹנוּת (assertion) או תגובה חיצונית של SAML | ספק זהויות חיצוני | טוקן גישה מאוחד | גורם חיצוני | ללא |
אסימון של Amazon Web Services (AWS) GetCallerIdentity
|
ספק זהויות חיצוני | טוקן גישה מאוחד | גורם חיצוני | ללא |
לסוגים השונים של אסימונים שמעניקים אסימונים יש גם מאפייני אבטחה שונים:
פורמט: חלק מהטוקנים הם אטומים. הלקוח יכול לפענח אסימונים אחרים.
תוקף: לכל טוקן יש תוקף שונה, ומידת האפשרות לשנות אותו משתנה.
שימוש רב: אפשר להשתמש בחלק מהאסימונים שמעניקים אסימונים רק פעם אחת. באסימונים אחרים אפשר להשתמש כמה פעמים.
אפשרות ביטול: אפשר לבטל חלק מהטוקנים. אסימונים אחרים נשארים בתוקף עד לתאריך התפוגה.
קישור: חלק מהאסימונים מקושרים לפרטי כניסה נוספים, ולכן הם נקראים אסימונים מקושרים. אסימונים אחרים לא קשורים, ולכן הם אסימוני נשיאה.
בטבלה הבאה מסוכמים ההבדלים בין המאפיינים האלה עבור טוקנים שמעניקים גישה:
| סוג הטוקן | פורמט | כל התאריכים | ניתן לביטול | רב-שימושי | קישור |
|---|---|---|---|---|---|
| טוקן רענון | אטום | משתנה, ראו אסימוני רענון | כן | כן | פרטי כניסה של לקוח OAuth |
| קוד הרשאה | אטום | 10 דקות | לא | לא | פרטי כניסה של לקוח OAuth |
| טוקן רענון מאוחד | אטום | משתנה, ראו אסימוני רענון מאוחדים | לא | כן | פרטי כניסה של לקוח OAuth |
| קוד הרשאה מאוחד | אטום | 10 דקות | לא | לא | פרטי כניסה של לקוח OAuth |
| טענת זהות של אסימון JWT (JSON Web Token) של חשבון שירות | JWT | 5 דקות עד שעה | לא | כן | |
| אסימון חיצוני או אסימון חיצוני מסוג JSON Web Token | JWT | תלוי בספק הזהויות | תלוי בספק הזהויות | כן | |
| טענת נכונות או תגובה חיצונית של SAML | SAML | תלוי בספק הזהויות | תלוי בספק הזהויות | כן | |
טוקן של Amazon Web Services (AWS) GetCallerIdentity |
בלוב טקסט | תלוי בספק הזהויות | תלוי בספק הזהויות | כן |
אסימוני רענון
טוקנים לרענון הם טוקנים אטומים שמאפשרים ללקוחות לקבל טוקנים של מזהים וטוקנים של גישה עבור משתמש, אם המשתמש אישר בעבר ללקוח לפעול בשמו.
טוקנים לרענון קשורים ללקוח ספציפי ואפשר להשתמש בהם רק בשילוב עם פרטי לקוח תקינים, למשל מזהה לקוח וסוד לקוח.
אם ההרשאה של הלקוח כוללת Google Cloud היקפי OAuth אחד או יותר, משך החיים של טוקן הרענון כפוף לאמצעי הבקרה של Google Cloud משך הסשן. אחרת, טוקנים לרענון נשארים בתוקף עד שהמשתמש מבטל את ההרשאה שלו או עד שמתרחשים אירועים אחרים של ביטול טוקנים.
קודי הרשאה
קודי הרשאה הם אסימונים אטומים לטווח קצר. הקודים מיועדים לשימוש רק במהלך אימות המשתמש כגורם מתווך בין הלקוח לשרת ההרשאות של Google.
בדומה לאסימוני רענון, קודי הרשאה משויכים ללקוח ואפשר להשתמש בהם רק בשילוב עם פרטי לקוח תקינים. בניגוד לאסימוני רענון, אפשר להשתמש בקודי הרשאה רק פעם אחת.
טוקנים מאוחדים לרענון
אסימוני רענון מאוחדים הם אסימונים אטומים שמאפשרים ללקוחות לקבל אסימוני גישה עבור משתמש ראשי במאגר זהויות של כוח עבודה, אם המשתמש אישר בעבר ללקוח לפעול בשמו.
בדומה לאסימוני רענון, אסימוני רענון מאוחדים קשורים ללקוח ספציפי ואפשר להשתמש בהם רק בשילוב עם פרטי כניסה תקפים של לקוח, למשל מזהה לקוח וסוד לקוח.
בניגוד לאסימוני רענון, אי אפשר לבטל אסימוני רענון מאוחדים. משך החיים של אסימון רענון מאוחד מקושר לסשן של אימות הזהות של כוח העבודה ששימש לקבלת האסימון, והוא נשאר בתוקף עד שהסשן יפוג.
קודי הרשאה מאוחדים
בדומה לקודי הרשאה, קודי הרשאה מאוחדים הם אסימונים אטומים לטווח קצר. הקודים מיועדים לשימוש רק במהלך אימות המשתמש כגורם מתווך בין הלקוח לבין שרת ההרשאות של Google Cloud IAM.
קודי הרשאה משויכים ללקוח, אפשר להשתמש בהם רק בשילוב עם פרטי כניסה תקינים של לקוח, ואפשר להשתמש בהם רק פעם אחת.
טענות (assertions) של אסימוני JWT (JSON Web Token) של חשבון שירות
הצהרות של אסימוני JWT (JSON Web Tokens) בחשבון שירות מאשרות את הזהות של חשבון שירות. עומסי עבודה יכולים להשתמש בהצהרות JWT של חשבון שירות כדי לקבל אסימוני גישה לחשבון שירות או אסימונים של הענקת הרשאות גישה ברמת הדומיין. הצהרת ה-JWT של חשבון השירות חתומה על ידי מפתח של חשבון שירות.
אחרי פענוח, טענת JWT של חשבון שירות נראית בערך כך, כש-SIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "RS256",
"kid": "290b7bf588eee0c35d02bf1164f4336229373300",
"typ": "JWT"
}.{
"iss": "service-account@example.iam.gserviceaccount.com",
"scope": "https://www.googleapis.com/auth/devstorage.read_only",
"aud": "https://oauth2.googleapis.com/token",
"exp": 1744851267,
"iat": 1744850967
}.SIGNATURE
הצהרות JWT של חשבון שירות דומות מבחינה מבנית לאסימוני JWT של חשבון שירות: את שני סוגי האסימונים יכול להנפיק הלקוח עצמו, והם חתומים באמצעות מפתח של חשבון שירות. עם זאת, שני סוגי האסימונים משתמשים במטענים שונים, כפי שמתואר בטבלה הבאה.
| שדה | JWT של חשבון שירות | טענת JWT של חשבון שירות |
|---|---|---|
aud |
Google Cloud API, מושמט אם מצוין scope |
חייב להיות https://oauth2.googleapis.com/token |
exp |
תאריך תפוגה | תאריך תפוגה |
iat |
זמן הבעיה | זמן הבעיה |
iss |
כתובת האימייל של חשבון השירות | כתובת האימייל של חשבון השירות |
scope |
היקפי הרשאות OAuth, לא מצוינים אם מציינים את |
היקפי ההרשאות של OAuth |
sub |
כתובת האימייל של חשבון השירות | כתובת האימייל של חשבון משתמש להענקת גישה ברמת הדומיין, מושמטת אחרת |
אפשר להשתמש בטענות JWT של חשבון שירות למשך שעה אחת לכל היותר, ואי אפשר לבטל אותן.
אסימוני JWT חיצוניים
אסימוני JWT (JSON Web Tokens) חיצוניים מונפקים על ידי ספק זהויות חיצוני, כמו Microsoft Entra ID, Okta, Kubernetes או GitHub. יכול להיות שיהיו הבדלים במבנה ובתוכן שלהם.
אם מגדירים איחוד שירותי אימות הזהות של כוח עבודה או איחוד של Workload Identity, אפשר ליצור יחסי אמון בין Google Cloud לבין ספק זהויות חיצוני. עומסי עבודה יכולים להשתמש באסימוני JWT חיצוניים כאסימונים שמעניקים גישה כדי לקבל אסימוני גישה מאוחדים.
כשמשתמשים באיחוד שירותי אימות הזהות של כוח עבודה, אסימון הגישה המאוחד שמתקבל מאמת את חשבון המשתמש במאגר הזהויות של כוח העבודה.
כשמשתמשים באיחוד שירותי אימות הזהויות של עומסי עבודה, אסימון הגישה המאוחד שמתקבל מאמת את חשבון המשתמש של מאגר הזהויות של עומס העבודה.
בשני המקרים, מזהה חשבון המשתמש נגזר מאחד או יותר מהמאפיינים של ה-JWT החיצוני.
כדי להיות תואמים לאיחוד שירותי אימות הזהות של כוח העבודה או לאיחוד שירותי אימות הזהות של עומסי עבודה, אסימוני JWT חיצוניים צריכים לעמוד בדרישות ספציפיות.
טענות נכוֹנוּת (assertions) או תגובות SAML חיצוניות
טענות נכוֹנוּת (assertions) חיצוניות של שפת סימון טענות אבטחה (SAML) הן טענות נכוֹנוּת (assertions) של SAML 2.0 שמונפקות על ידי ספק זהויות חיצוני כמו Microsoft Entra ID, Okta או Active Directory Federation Services. אפשר גם לצרף את טענות הנכוֹנוּת (assertions) החיצוניות של SAML לתגובת SAML 2.0 או להצפין אותן.
בדומה לאסימוני JSON Web חיצוניים, אתם יכולים להגדיר את איחוד שירותי אימות הזהות של כוח העבודה או את איחוד שירותי אימות הזהות של עומסי עבודה כך שעומסי עבודה יוכלו להשתמש בתגובות או בטענות נכוֹנוּת (assertions) של SAML חיצוניות כאסימונים להענקת הרשאה כדי לקבל אסימוני גישה מאוחדים.
כדי להיות תואמים לאיחוד שירותי אימות הזהות של כוח העבודה או לאיחוד שירותי אימות הזהות של עומסי עבודה, טענות נכונות (assertions) חיצוניות של SAML צריכות לעמוד בדרישות ספציפיות.
טוקן של Amazon Web Services (AWS) GetCallerIdentity
אסימוני AWS GetCallerIdentity חיצוניים הם אובייקטים של טקסט (blobs) שמכילים בקשה חתומה ל-GetCallerIdentity API של AWS.
בדומה לאסימוני אינטרנט חיצוניים של JSONולטענות נכוֹנוּת (assertions) של SAML, אפשר להגדיר את איחוד שירותי אימות הזהות של כוח עבודה או את איחוד שירותי אימות הזהות של עומסי עבודה כך שעומסי עבודה יוכלו להשתמש בבלובים האלה של טקסט כאסימון להענקת אסימונים כדי לקבל אסימוני גישה מאוחדים.
אסימונים מזהים
אסימוני זהות (ID) מאפשרים ללקוחות לזהות את המשתמשים שאיתם הם מקיימים אינטראקציה. Google Cloud תומך בסוגים שונים של אסימוני זהות, ולכולם יש את המאפיינים המשותפים הבאים:
הם חתומים אבל לא מוצפנים, כדי שהלקוח יוכל לפענח, לאמת ולפרש אותם.
הם מאמתים חשבון ראשי, שיכול להיות משתמש או עומס עבודה.
הם מונפקים ללקוח מסוים.
התוקף שלהם קצר והם פגים אחרי שעה לכל היותר.
אי אפשר לבטל אותם.
אי אפשר להשתמש בהם כדי לבצע קריאות ל-Google API, ולכן הם שונים מאסימוני גישה.
אי אפשר להשתמש בהם כדי לקבל אסימוני גישה, ולכן הם שונים מאסימונים שמאפשרים לקבל אסימונים אחרים.
אפשר להשתמש בהם כדי לאמת קריאות בין מיקרו-שירותים, או כדי לאמת באופן פרוגרמטי בשרת proxy לאימות זהויות (IAP).
אסימוני זהות יכולים להיות שונים מהסיבות הבאות:
קהל: הצד שאמור לפענח את האסימון ולהשתמש בו.
מנפיק: הגורם שמנפיק את האסימון.
Principal: סוג הזהות של חשבון המשתמש שאסימון יכול לאמת.
בטבלה הבאה מפורטים הסוגים השונים של אסימוני זהות.
| סוג הטוקן | מנפיק | קהל | חשבון משתמש |
|---|---|---|---|
| אסימון מזהה משתמש | שרת ההרשאות של Google | לקוח OAuth/OIDC |
|
| אסימון מזהה של חשבון שירות | Google Cloud שרת הרשאות IAM | חופשיים לבחור כל קהל | חשבון שירות |
| אסימון מזהה של זהות הסוכן | Google Cloud שרת הרשאות IAM | חופשיים לבחור כל קהל | זהות הסוכן |
| טענת שרת proxy לאימות זהויות (IAP) | IAP |
|
|
| טענת נכוֹנוּת (assertion) של SAML | שרת ההרשאות של Google | אפליקציית SAML | משתמש (חשבון מנוהל) |
לסוגים השונים של אסימוני זהות יש גם מאפייני אבטחה שונים:
פורמט: חלק מהאסימונים הם אסימוני אינטרנט מסוג JSON (JWT), וחלק מהאסימונים משתמשים בפורמט XML.
תוקף: יש הבדלים בתוקף של הטוקנים.
קישור: אפשר לקשר חלק מהאסימונים לפרטי כניסה נוספים, ובמקרה כזה הם נקראים אסימונים מקושרים.
בטבלה הבאה מסוכמים ההבדלים בין סוגי אסימוני הזהות.
| סוג הטוקן | פורמט | כל התאריכים | קישור |
|---|---|---|---|
| אסימון מזהה משתמש | JWT | שעה אחת | |
| אסימון מזהה של חשבון שירות | JWT | שעה אחת | |
| אסימון מזהה של זהות הסוכן | JWT | שעה אחת | אישור לקוח X.509 |
| טענת שרת proxy לאימות זהויות (IAP) | JWT | 10 דקות | |
| טענת נכוֹנוּת (assertion) של SAML | XML | 10 דקות |
טוקנים של מזהי משתמשים
אסימונים מזהים של משתמשים הם אסימוני JWT (JSON Web Tokens) שמאמתים משתמש. לקוחות יכולים לקבל אסימון מזהה של משתמש על ידי הפעלת תהליך אימות OIDC.
אסימוני User ID חתומים באמצעות Google JSON Web Key Set (JWKS). קובץ ה-JWKS של Google הוא משאב גלובלי, ואותם מפתחות חתימה משמשים לסוגים שונים של משתמשים, כולל:
חשבונות משתמשים מנוהלים
חשבונות משתמשים פרטיים
חשבונות שירות
אסימון מזהה משתמש מפוענח נראה בערך כך, כש-SIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "RS256",
"kid": "c37da75c9fbe18c2ce9125b9aa1f300dcb31e8d9",
"typ": "JWT"
}.{
"iss": "https://accounts.google.com",
"azp": "1234567890-123456789abcdef.apps.googleusercontent.com",
"aud": "1234567890-123456789abcdef.apps.googleusercontent.com",
"sub": "12345678901234567890",
"at_hash": "y0LZEe-ervzRNSxn4R-t9w",
"name": "Example user",
"picture": "https://lh3.googleusercontent.com/a/...",
"given_name": "Example",
"family_name": "User",
"hd": "example.com",
"iat": 1745361695,
"exp": 1745365295
}.SIGNATURE
אסימון מזהה כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל |
לקוח ה-OAuth שאליו משויך הטוקן הזה, שמזוהה באמצעות מזהה הלקוח ב-OAuth. לקוחות OAuth יכולים לקבל טוקנים של גישה ללקוחות OAuth אחרים ששייכים לאותו פרויקט. במקרה כזה, הקהל עשוי להיות שונה מהגורם המורשה. |
azp |
צד מורשה | לקוח ה-OAuth שביצע את תהליך האימות של OIDC, מזוהה על ידי מזהה לקוח ה-OAuth שלו. |
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
hd |
דומיין מתארח |
הדומיין הראשי של חשבון Cloud Identity או Google Workspace של המשתמש.
התביעה הזו מופיעה רק אם המשתמש הוא חשבון משתמש מנוהל והלקוח ציין את הפרמטר
|
iss |
מנפיק |
הישות שהנפיקה את האסימון. הערך תמיד יהיה https://accounts.google.com.
|
sub |
נושא |
הגורם המאומת, שמזוהה באמצעות המזהה הייחודי שלו. המזהה הזה זהה למזהה שמוצג ב- Directory API. |
הקבוצה המדויקת של ההצהרות שכלולות בטוקן מזהה תלויה בפרמטר scope בבקשת האימות.
כדי לזהות אם משתמש הוא חשבון משתמש מנוהל, או כדי לזהות את חשבון Cloud Identity או Google Workspace שאליו משתמש משתייך, הלקוחות צריכים לבדוק את הטענה hd.
אסימונים מזהים של משתמשים תקפים למשך שעה אחת, ואי אפשר לבטל אותם.
טוקנים של מזהי חשבונות שירות
אסימונים מזהים של חשבון שירות הם אסימוני JWT (JSON Web Tokens) שמאמתים חשבון שירות.
בשונה מאסימוני JWT של חשבון שירות ומהצהרות JWT של חשבון שירות, אסימוני מזהה של חשבון שירות לא נחתמים על ידי מפתח של חשבון שירות. במקום זאת, אסימונים מזהים של חשבון שירות נחתמים על ידי Google JSON Web Key Set (JWKS).
אסימון מזהה של חשבון שירות אחרי פענוח נראה בערך כך, כשSIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "RS256",
"kid": "c37da75c9fbe18c2ce9125b9aa1f300dcb31e8d9",
"typ": "JWT"
}.{
"aud": "example-audience",
"azp": "112010400000000710080",
"email": "service-account@example.iam.gserviceaccount.com",
"email_verified": true,
"exp": 1745365618,
"iat": 1745362018,
"iss": "https://accounts.google.com",
"sub": "112010400000000710080"
}.SIGNATURE
אסימון מזהה של חשבון שירות כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל | מזהה של הצד שאליו האסימון הזה מיועד. הערך יכול להיבחר באופן חופשי על ידי מי שמבקש את האסימון. |
azp |
צד מורשה | חשבון השירות שביקש את האסימון, שמזוהה באמצעות המזהה הייחודי שלו. |
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
iss |
מנפיק |
הנפקן של האסימון, תמיד מוגדר כ-https://accounts.google.com.
|
sub |
נושא | חשבון השירות שביקש את האסימון, שמזוהה באמצעות המזהה הייחודי שלו. |
הקבוצה המדויקת של ההצהרות שכלולות באסימון מזהה תלויה באופן שבו מתבצעת הבקשה לאסימון המזהה. לדוגמה, אסימוני מזהה שנשלחים בבקשה לשרת המטא-נתונים של Compute Engine יכולים לכלול טענות נוספות שמאשרות את הזהות של המכונה הווירטואלית. אסימוני מזהה שנשלחת לגביהם בקשה באמצעות IAM Credentials API יכולים להכיל באופן אופציונלי את מזהה הארגון של הפרויקט של חשבון השירות.
בניגוד לאסימוני מזהה של משתמשים, אסימוני מזהה של חשבונות שירות לא תומכים בטענהhd.
אסימונים מזהים של חשבונות שירות תקפים לשעה אחת, ואי אפשר לבטל אותם.
אסימונים מזהים של זהות הסוכן
אסימוני הזהות של הסוכן הם מסמכי זהות ניתנים לאימות של SPIFFE (JWT-SVID), והם משמשים לאימות של סוכן שהוקצתה לו זהות סוכן.
סוכן יכול לקבל אסימון מזהה משרת המטא-נתונים של Compute Engine. אופציונלית, הסוכן יכול לבקש שהטוקן יהיה קשור לאישור הלקוח X.509 שלו. טוקן מזהה של סוכן מאוגד מכיל את טביעת האצבע של אישור הלקוח X.509, והוא תקף רק כשמשתמשים בו בחיבור TLS הדדי שאומת באמצעות אותו אישור לקוח X.509.
בניגוד לאסימונים מזהים של משתמשים ולאסימונים מזהים של חשבונות שירות, אסימונים מזהים של סוכנים לא חתומים על ידי JSON Web Key Set (JWKS) של Google, ואי אפשר לאמת אותם.
אסימון מזהה של סוכן מפוענח נראה בערך כך, כש-SIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "RS256",
"kid": "78ab40e4a0319f9ced58024f5bb66e6387d68066",
"typ": "JWT"
}.{
"iss": "https://sts.googleapis.com/v1/organizations/1234567890/locations/global/workloadIdentityPools/agents.global.org-1234567890.system.id.goog",
"sub": "spiffe://agents.global.org-1234567890.system.id.goog/resources/aiplatform/projects/1234567890/locations/us-central1/reasoningEngines/987654321",
"aud": ["https://example.com/"],
"iat": 1775776191,
"exp": 1775779791,
"cnf": {
"x5t#S256": "QTB5TSHeDxHrzDzcrrHU+/shhkfCnARcBEvMldp2uis"
}
}.SIGNATURE
אסימון מזהה של סוכן כולל את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל | מזהה של הצד שאליו האסימון הזה מיועד. הערך יכול להיבחר על ידי מי שמבקש את הטוקן. |
exp |
תאריך תפוגה | תאריך התפוגה של האסימון, בפורמט חותמת זמן של מערכת Unix. |
iss |
מנפיק | הנפקן של האסימון, שהוא מאגר הזהויות של הסוכן בארגון או בפרויקט שמכילים את הסוכן. |
sub |
נושא | מזהה ה-SPIFFE של הסוכן. |
cnf.x5t#S256 |
אישור | טביעת האצבע של אישור הלקוח X.509 שהאסימון משויך אליו. ההצהרה ריקה אם הטוקן לא מאוגד. |
טענות של שרת proxy לאימות זהויות (IAP)
טענות נכוֹנוּת (assertions) של שרת proxy לאימות זהויות (IAP) הן אסימוני אינטרנט מסוג JSON (JWT) שמועברים על ידי IAP לאפליקציות אינטרנט שמוגנות על ידי IAP בכותרת בקשת ה-HTTP x-goog-iap-jwt-assertion. טענות של IAP מאמתות משתמש ומשמשות גם כהוכחה לכך שבקשה אושרה על ידי IAP.
חשבונות משתמשים מנוהלים
חשבונות פרטיים
חשבונות שירות
גורמים ראשיים במאגר זהויות של כוח עבודה
אחרי פענוח, טענת ה-IAP נראית כך, כאשר SIGNATURE מוחלף בחתימה של האסימון:
{
"alg": "ES256",
"typ": "JWT",
"kid": "4BCyVw"
}.{
"aud": "/projects/0000000000/global/backendServices/000000000000",
"azp": "/projects/0000000000/global/backendServices/000000000000",
"email": "user@example.com",
"exp": 1745362883,
"google": {
"access_levels": [
"accessPolicies/0000000000/accessLevels/Australia"
]
},
"hd": "example.com",
"iat": 1745362283,
"identity_source": "GOOGLE",
"iss": "https://cloud.google.com/iap",
"sub": "accounts.google.com:112010400000000710080"
}.SIGNATURE
אם מגדירים את IAP לשימוש באיחוד שירותי אימות הזהות של כוח עבודה במקום בזהויות של Google, טענות IAP נראות קצת אחרת:
{
"alg": "ES256",
"typ": "JWT",
"kid": "4BCyVw"
}.{
"aud": "/projects/0000000000/global/backendServices/000000000000",
"azp": "/projects/0000000000/global/backendServices/000000000000",
"email": "user@example.com",
"exp": 1745374290,
"google": {
"access_levels": [
"accessPolicies/0000000000/accessLevels/Australia"
]
},
"iat": 1745373690,
"identity_source": "WORKFORCE_IDENTITY",
"iss": "https://cloud.google.com/iap",
"sub": "sts.google.com:AAFTZ...Q",
"workforce_identity": {
"iam_principal": "principal://iam.googleapis.com/locations/global/workforcePools/example/subject/user-0000000000",
"workforce_pool_name": "locations/global/workforcePools/example"
}
}.SIGNATURE
טענת IAP כוללת את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
aud |
קהל | שירות הקצה העורפי, אפליקציית App Engine או שירות Cloud Run שאליהם מיועדת טענת ה-IAP. |
iss |
מנפיק |
המנפיק של הטוקן, תמיד מוגדר כ-https://cloud.google.com/iap
|
sub |
נושא |
הגורם המאומת, שמזוהה באמצעות המזהה הייחודי שלו. אם IAP מוגדר לשימוש בזהויות של Google, המזהה הזה שווה למזהה שמוצג ב- Directory API. |
פרטים נוספים על טענות של הצהרת IAP זמינים במאמר בנושא אימות מטען ה-JWT.
הצהרות על רכישות מתוך האפליקציה תקפות למשך 10 דקות, ואי אפשר לבטל אותן.
טענות נכוֹנוּת (assertions) של SAML
טענות נכונות (assertions) של Security Assertion Markup Language (SAML) מאמתות חשבון משתמש מנוהל ומאשרות לו גישה לאפליקציית SAML בהתאמה אישית. טענות נכונות של SAML מונפקות ונחתמות על ידי Cloud Identity, ואפשר להשתמש בהן רק כדי לאמת חשבונות משתמשים מנוהלים.
בניגוד לאסימוני זהות שנחתמים באמצעות מפתח גלובלי, טענות הנכונות (assertions) של SAML נחתמות באמצעות מפתח שספציפי לחשבון Cloud Identity או לחשבון Google Workspace.
טענת נכוֹנוּת (assertion) של תגובת SAML מפוענחת נראית כך:
<saml2:Assertion
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"
ID="..."
IssueInstant="2025-04-23T22:47:20.881Z"
Version="2.0">
<saml2:Issuer>
https://accounts.google.com/o/saml2?idpid=C0123456789
</saml2:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">...</ds:Signature>
<saml2:Subject>
<saml2:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">
user@example.com
</saml2:NameID>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml2:SubjectConfirmationData
NotOnOrAfter="2025-04-23T22:52:20.881Z"
Recipient="https://app.example.com/"/>
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions
NotBefore="2025-04-23T22:42:20.881Z"
NotOnOrAfter="2025-04-23T22:52:20.881Z">
<saml2:AudienceRestriction>
<saml2:Audience>example-app</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement
AuthnInstant="2025-04-23T22:46:44.000Z"
SessionIndex="...">
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
</saml2:AuthnContextClassRef>
</saml2:AuthnContext>
</saml2:AuthnStatement>
</saml2:Assertion>
הצהרת SAML כוללת את השדות הבאים:
| שדה | שם | תיאור |
|---|---|---|
Audience |
קהל | מזהה הישות של אפליקציית SAML. |
Issuer |
מנפיק | הנפקן של האסימון, ספציפי לחשבון Cloud Identity או לחשבון Google Workspace. |
NameID |
נושא | הגורם המאומת. הפורמט של המזהה תלוי בהגדרות של אפליקציית SAML. |
הקבוצה המדויקת של המאפיינים שנכללים בטענת הנכוֹנוּת (assertion) של SAML תלויה בהגדרות של אפליקציית SAML.
הצהרות SAML תקפות למשך 10 דקות, ואי אפשר לבטל אותן.