אתם יכולים להשתמש במאגר זהויות של כוח עבודה ובספק של מאגר זהויות של כוח עבודה כדי לקבל אסימונים לטווח קצר מ-Security Token Service או מ-Cloud OAuth API. האסימונים האלה מאפשרים לכם לגשת למשאבים של Cloud de Confiance by S3NS שתומכים באיחוד שירותי אימות הזהות של כוח העבודה, ושיש לכם הרשאות אליהם.
אתם יכולים להשתמש בשיטות שמתוארות במאמר הזה במכונות דפדפן ללא GUI.
כדי לקבל אסימונים לטווח קצר, צריך לבצע את התהליך הכללי הבא:
- מקבלים פרטי כניסה מספק הזהויות (IdP) המהימן, או מפנים את המשתמשים לנקודת הקצה של ההרשאה (
https://auth.cloud.google/authorize) כדי להיכנס באמצעות ספק הזהויות ולקבל קוד הרשאה. - ממירים את פרטי הכניסה או את קוד ההרשאה באסימון מ-Security Token Service או מ-Cloud OAuth API.
לפני שמתחילים
צריך להגדיר את איחוד שירותי אימות הזהות של כוח עבודה או לקרוא את המדריכים הבאים להוראות ספציפיות ל-IdP:
- הגדרה של איחוד שירותי אימות הזהות של כוח עבודה שמבוסס על Microsoft Entra ID
- הגדרה של איחוד שירותי אימות הזהות של כוח עבודה שמבוסס על Okta
ציינו את המזהה של מאגר הזהויות של כוח העבודה ואת המזהה של הספק של מאגר הזהויות של כוח העבודה.
חשוב לוודא שלכל חשבון משתמש שמוחלפים בשבילו אסימונים באמצעות Security Token Service יש את ההרשאה
serviceusage.services.useלניהול זהויות והרשאות גישה (IAM). התפקיד בעל ההרשאות המינימליות ביותר שכולל את ההרשאה הזו הוא Service Usage Consumer (roles/serviceusage.serviceUsageConsumer).מפעילים את ממשקי ה-API של IAM, של Security Token Service ושל Cloud OAuth API, אם הם עדיין לא מופעלים.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםהתקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
המרה של פרטי כניסה חיצוניים באסימון גישה של Cloud de Confiance
בקטע הזה נסביר איך להשתמש ב-Security Token Service או ב-Cloud OAuth API כדי להמיר את פרטי הכניסה החיצוניים באסימון גישה שמעניק גישה ל- Cloud de Confiance. כדי לעשות את זה אפשר להשתמש ב-CLI של gcloud, ב-API בארכיטקטורת REST ובספריות הלקוח ב-Cloud, כפי שמתואר בהמשך המאמר.
במאמר החלפת טוקנים באמצעות Cloud OAuth API מוסבר איך מקבלים קוד הרשאה מנקודת הקצה של ההרשאה (https://auth.cloud.google/authorize) ואיך מחליפים קודי הרשאה וטוקנים לרענון באמצעות Cloud OAuth API.
אם צריך גישה לטווח ארוך, אפשר להגדיר תהליך ארוך טווח כדי לרענן פרטי כניסה במכונה הזו באופן קבוע. לחלופין, אפשר להריץ שרת מקומי ברקע עם נקודת קצה (endpoint) שתחזיר את פרטי הכניסה.
כניסה מבוססת דפדפן באמצעות ה-CLI של gcloud
בקטע הזה מוסבר איך להגדיר את ה-CLI של gcloud כדי לבצע
תהליך כניסה מבוססת דפדפן. לשם כך, אפשר ליצור קובץ תצורה לכניסה
ולאחר מכן להפנות את הקובץ בהפעלת הערך gcloud auth login או להפעיל
אותו כך שהמערכת תשתמש בו כברירת מחדל.
יצירת קובץ התצורה להתחברות
מריצים את הפקודה הבאה כדי ליצור קובץ תצורה לכניסה:
Linux ו-macOS
gcloud iam workforce-pools create-login-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud iam workforce-pools create-login-config ` locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID ` --output-file=LOGIN_CONFIG_PATH
מחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_POOL_ID: המזהה של מאגר איחוד שירותי אימות הזהות של כוח העבודה. -
WORKFORCE_PROVIDER_ID: המזהה של ספק איחוד שירותי אימות הזהות של כוח העבודה. -
LOGIN_CONFIG_PATH: הנתיב שבו ייכתב קובץ התצורה להתחברות. לדוגמה,login-config.json.
קובץ הגדרות ההתחברות מכיל את נקודות הקצה (endpoints) שבהן ה-CLI של gcloud משתמש כדי להפעיל את תהליך האימות בדפדפן ולהגדיר את הקהל ל-IdP שהוגדר בספק של מאגר הזהויות של כוח העבודה. הקובץ לא מכיל מידע סודי.
התוכן של קובץ התצורה לכניסה נראה כך:
{ "universe_domain": "s3nsapis.fr", "universe_cloud_web_domain": "cloud.s3nscloud.fr", "type": "external_account_authorized_user_login_config", "audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID", "auth_url": "https://auth.cloud.s3nscloud.fr/authorize", "token_url": "https://sts.s3nsapis.fr/v1/oauthtoken", "token_info_url": "https://sts.s3nsapis.fr/v1/introspect" }
כניסה באמצעות אימות מבוסס-דפדפן
מפנים לקובץ התצורה של ההתחברות באמצעות משתנה סביבה, מאפיין בהגדרות האישיות הפעילות של ה-CLI של gcloud, או משתמשים בו ישירות באמצעות הפקודה gcloud auth login:
משתנה הסביבה
כדי להשתמש בקובץ התצורה של ההתחברות עם משתנה סביבה, פועלים לפי ההוראות הבאות:
-
מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEלנתיב של קובץ התצורה להתחברות. -
מריצים את הפקודה הבאה:
gcloud auth login
- ה-CLI של gcloud מפנה למשתנה הסביבה כדי למצוא את קובץ התצורה של ההתחברות, ואז מתחיל את תהליך האימות. פועלים לפי התהליך בדפדפן כדי לאמת את ה-CLI של gcloud ולתת לו הרשאה לגשת למשאבים בשמכם בפקודות עתידיות.
כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות gcloud auth login, צריך לנקות את משתנה הסביבה CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.
ההגדרות האישיות של ה-CLI של gcloud
כדי להשתמש בקובץ התצורה של ההתחברות עם מאפיין הגדרה של ה-CLI של gcloud, פועלים לפי ההוראות הבאות:
-
מגדירים את המאפיין
auth/login_config_fileשל מערך ההגדרות האישיות הפעיל של ה-CLI של gcloud לנתיב של קובץ התצורה של ההתחברות, באמצעות הפקודה הבאה:gcloud config set auth/login_config_file LOGIN_CONFIG_PATH
-
מריצים את הפקודה הבאה:
gcloud auth login
- ה-CLI של gcloud מפנה למאפיין של מערך ההגדרות האישיות כדי למצוא את קובץ התצורה של ההתחברות, ואז מתחיל את תהליך האימות. פועלים לפי התהליך בדפדפן כדי לאמת את ה-CLI של gcloud ולתת לו הרשאה לגשת למשאבים בשמכם בפקודות עתידיות.
כדי להפסיק להשתמש בקובץ התצורה של ההתחברות לפקודות gcloud auth login, מבטלים את הגדרת המאפיין באמצעות הפקודה הבאה:
gcloud config unset auth/login_config_file
gcloud auth login
כדי להשתמש בקובץ התצורה של ההתחברות ישירות עם הפקודה gcloud auth login, צריך לפעול לפי ההוראות הבאות:
-
אם השתמשתם בדגל
--activateכשיצרתם את קובץ התצורה שמשמש לכניסה, צריך להריץ את הפקודה הבאה:gcloud auth login
-
אם לא השתמשתם בדגל
--activateכשיצרתם את קובץ התצורה שמשמש לכניסה, צריך להריץ את הפקודה הבאה:Linux ו-macOS
gcloud auth login \ --login-config=LOGIN_CONFIG_PATH
Windows (PowerShell)
gcloud auth login ` --login-config=LOGIN_CONFIG_PATH
מחליפים את LOGIN_CONFIG_PATH בנתיב של קובץ התצורה להתחברות.
הפקודה gcloud auth login שומרת את פרטי הכניסה בספריית הבית. החשבון המאומת הופך לחשבון הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אם לא משנים את ההגדרה, ה-CLI של gcloud משתמש בפרטי הכניסה האלה כדי לגשת ל- Cloud de Confiance by S3NS.
שימוש בקובצי תצורה לכניסה לחשבון
במקום כניסה מבוססת-דפדפן, בקטע הזה מוצגות דרכים שונות להשתמש בקובצי תצורה של פרטי כניסה כדי לספק גישה לפעולות מאומתות שלCloud de Confiance . כדי להגדיר את קובצי התצורה, לא צריך להתחבר ל-CLI של gcloud.
האופן שבו מגדירים את קובץ התצורה תלוי בפרוטוקול שבו משתמש ספק הזהויות – OIDC או SAML.
OIDC
אתם יכולים לקבל את פרטי הכניסה שבהם אתם משתמשים כדי להגדיר את קובץ התצורה מהמקורות הבאים:
- פרטי כניסה שהתקבלו מקובץ
- פרטי כניסה שהתקבלו מכתובת URL
- פרטי כניסה שהתקבלו מקובץ הפעלה לא אינטראקטיבי
- פרטי כניסה שהתקבלו מקובץ הפעלה אינטראקטיבי
פרטי כניסה שהתקבלו מקובץ
כשמשתמשים בפרטי כניסה שהתקבלו מקובץ, האסימונים נטענים מקובץ. תהליך אחר צריך לרענן את הקובץ הזה עם אסימון OIDC חדש לפני שיפוג התוקף של האסימון הישן. לדוגמה, אם לאסימון יש משך חיים של שעה אחת, חייבים לרענן את הקובץ לפני שמסתיימת השעה שלו.
כדי ליצור את קובץ התצורה באמצעות פרטי כניסה שהתקבלו מקובץ, מריצים את הפקודה הבאה:
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:id_token \
--credential-source-file=PATH_TO_OIDC_ID_TOKEN \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file=config.json
מחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה-
PATH_TO_OIDC_TOKEN: הנתיב לקובץ פרטי הכניסה של ה-IdP ב-OIDC -
WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שמשויך לפרויקט המשתמש במאגרי כוח העבודה.
לחשבון משתמש הזה צריכה להיות ההרשאה (serviceusage.services.use) בפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-OIDC, בדומה לצורה הזו:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"file": "PATH_TO_OIDC_CREDENTIALS_FILE"
}
}
פרטי כניסה שהתקבלו מכתובת URL
כשמשתמשים בפרטי כניסה שהתקבלו מכתובת URL, האסימונים נטענים משרת מקומי עם נקודת קצה (endpoint) שמגיבה לבקשות של HTTP GET. התגובה צריכה להיות טוקן של מזהה OIDC, בפורמט טקסט פשוט או בפורמט JSON.
כדי ליצור קובץ תצורה באמצעות פרטי כניסה שהתקבלו מכתובת URL, מריצים את הפקודה הבאה:
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:id_token \
--credential-source-url=URL_TO_RETURN_OIDC_ID_TOKEN \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file=config.json
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.URL_TO_RETURN_OIDC_ID_TOKEN: כתובת ה-URL שמפעילים כדי לאחזר את פרטי הכניסה של OIDC, כמו טוקן של מזהה של OIDC, לדוגמה:http://localhost:5000/token.WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט שמשמש למכסה ולחיוב. לחשבון המשתמש צריכה להיות הרשאתserviceusage.services.useבפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-OIDC, בדומה לצורה הזו:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"url": "URL_TO_RETURN_OIDC_ID_TOKEN"
}
}
פרטי כניסה שהתקבלו מקובץ הפעלה לא אינטראקטיבי
כשמשתמשים בפרטי כניסה שהתקבלו מקובץ הפעלה לא אינטראקטיבי, האסימונים נטענים מקובץ הפעלה מקומי. קובץ ההפעלה צריך לספק ל-stdout טוקן של מזהה OIDC תקין ותקף בפורמט JSON:
{
"version": 1,
"success": true,
"token_type": "urn:ietf:params:oauth:token-type:id_token",
"id_token": "HEADER.PAYLOAD.SIGNATURE",
"expiration_time": 1620499962
}
צריך למלא את השדות האלה, מלבד
expiration_time, כדי שהתגובה תהיה תקינה. השדה expiration_time נדרש רק
כשקובץ פלט צוין בתצורה של פרטי הכניסה.
צריך להציג בקובץ ההפעלה שגיאות ל-stdout בפורמט
JSON הבא:
{
"version": 1,
"success": false,
"code": "401",
"message": "Caller not authorized."
}
כל השדות אלה נדרשים לתגובת שגיאה. כשעולה השגיאה המתאימה, ספריות הלקוח משתמשות בשדות של הקוד (code) וההודעה (message).
הפקודה יכולה להחזיר את השדות הבאים:
version: הגרסה של פלט ה-JSON. יש תמיכה רק בגרסה1.success: הסטטוס של התגובה. כשהסטטוס הואtrue, קובץ ההפעלה חייב לצאת עם קוד יציאה0והתגובה חייבת לכלול את השדות הבאים:token_type:id_token- השדה
expiration_time, אם קובץ פלט מצוין בתצורה של פרטי הכניסה
כשהסטטוס הוא
false, קובץ ההפעלה חייב לצאת עם ערך שאינו אפס והתגובה חייבת לכלול את השדות הבאים:codemessage
token_type: סוג אסימון הנושא של צד שלישי שחייב להיותurn:ietf:params:oauth:token-type:id_tokenid_token: אסימון OIDC של צד שלישיexpiration_time: זמן התפוגה של אסימון OIDC של צד שלישי בשניות (ראשית זמן יוניקס [Unix epoch])code: מחרוזת קוד השגיאהmessage: הודעת השגיאה
ספריות הלקוח מגדירות את משתני הסביבה האלה כשקובץ ההפעלה מופעל:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE: שדה הקהל מהתצורה של פרטי הכניסה. המשתנה הזה תמיד מוגדר.GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE: הסוג של אסימון הנושא הצפוי. המשתנה הזה תמיד מוגדר.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE: המיקום של קובץ הפלט מהתצורה של פרטי הכניסה. המשתנה הזה מוצג רק כשהוא מצוין בתצורה של פרטי הכניסה.
קובץ ההפעלה יכול להשתמש במשתני הסביבה כדי להימנע מכתיבה בתוך הקוד של הערכים האלה.
כדי להפעיל את השיטה הזו של קבלת פרטי הכניסה באמצעות ספריות הלקוח, חייבים להגדיר את משתנה הסביבה GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES ל-1.
כדי ליצור את קובץ התצורה באמצעות פרטי כניסה שהתקבלו מקובץ הפעלה, מריצים את הפקודה הבאה:
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:id_token \
--executable-command=EXECUTABLE_COMMAND \
--executable-timeout-millis=EXECUTABLE_TIMEOUT \
--executable-output-file=EXECUTABLE_OUTPUT_FILE \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file /path/to/generated/config.json
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.EXECUTABLE_COMMAND: הפקודה המלאה, כולל ארגומנטים, שמריצים כדי לאחזר את אסימון הנושא, כמו טוקן של מזהה של OIDC, בפורמט הבא:--executable-command="/path/to/command --foo=bar".-
EXECUTABLE_TIMEOUT: אופציונלי. משך הזמן, באלפיות שנייה, שצריך להמתין להרצה של קובץ ההפעלה (ברירת המחדל היא 30 שניות). -
EXECUTABLE_OUTPUT_FILE: אופציונלי. נתיב לפרטי הכניסה של צד שלישי שקובץ ההפעלה יצר. כדאי להיעזר בזה אם רוצים לשמור במטמון את פרטי הכניסה. ספריות האימות בודקות את הנתיב הזה לפני שמריצות את קובץ ההפעלה. WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שלו שמשמשים למכסה ולחיוב. חייבים להגדיר לחשבון המשתמש את ההרשאהserviceusage.services.useבפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-OIDC, בדומה לצורה הזו:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"executable": {
"command": "EXECUTABLE_COMMAND",
"timeout_millis": "EXECUTABLE_TIMEOUT",
"output_file": "EXECUTABLE_OUTPUT_FILE"
}
}
}
פרטי כניסה שהתקבלו מקובץ הפעלה אינטראקטיבי
כשמשתמשים בפרטי כניסה שהתקבלו מקובץ הפעלה אינטראקטיבי, אפשר לספק קובץ הפעלה שיוצר אינטראקציה עם המשתמש דרך stdin ו-stdout. אם המשתמש ייכנס לחשבון, קובץ ההפעלה יכתוב פרטי כניסה תקינים ותקפים לקובץ שצוין.
כדי להשתמש במצב הזה, נדרשים הדגלים הבאים:
--executable-output-file: הקובץ שמקבל את המידע על פרטי הכניסה מקובץ ההפעלה--exeutable-interactive-timeout-millis: ערך שאינו אפס שמציין את המצב האינטראקטיבי ומגדיר את הזמן הקצוב לתפוגה. לדוגמה, ל-60000יהיה זמן קצוב לתפוגה של 60 שניות
צריך למלא את השדות הבאים, מלבד
expiration_time, כדי שהתגובה תהיה תקינה.
{
"version": 1,
"success": true,
"token_type": "urn:ietf:params:oauth:token-type:id_token",
"id_token": "HEADER.PAYLOAD.SIGNATURE",
"expiration_time": 1620499962
}
קובץ ההפעלה צריך לכתוב שגיאות לקובץ שצוין
ב---executable-output-file בפורמט JSON הבא. צריך למלא
את כל השדות הבאים כשחוזרת הודעת שגיאה.
{
"version": 1,
"success": false,
"code": "401",
"message": "Caller not authorized."
}
צריך לציין בשדות code ו-message את הודעת השגיאה המתאימה. ספריות
הלקוח משתמשות בשדות האלה כשעולה השגיאה.
לאחר ביצוע תקין, הפקודה תחזיר את אותם השדות לפרטי כניסה שהתקבלו מקובץ הפעלה בין אם הוא אינטראקטיבי או לא אינטראקטיבי.
משתני הסביבה גם זהים לפרטי כניסה שהתקבלו מקובץ הפעלה בין אם הוא אינטראקטיבי או לא אינטראקטיבי.
כדי ליצור פרטי כניסה שהתקבלו מקובץ הפעלה אינטראקטיבי, צריך להוסיף את הפרמטר
--executable-interactive-timeout-millis ואת הפרמטר
--executable-output-file.
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:id_token \
--executable-command=EXECUTABLE_COMMAND \
--executable-interactive-timeout-millis=EXECUTABLE_INTERACTIVE_TIMEOUT \
--executable-output-file=EXECUTABLE_OUTPUT_FILE \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file /path/to/generated/config.json
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.-
WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה. EXECUTABLE_COMMAND: הפקודה המלאה, כולל ארגומנטים, שמריצים כדי לאחזר את אסימון הנושא, בפורמט הבא:--executable-command="/path/to/command --arg1=val1 --arg2=val2"EXECUTABLE_INTERACTIVE_TIMEOUT: משך הזמן, באלפיות שנייה, שצריך להמתין להרצה של קובץ ההפעלה.EXECUTABLE_OUTPUT_FILE: נתיב לפרטי הכניסה של צד שלישי שקובץ ההפעלה יצר. כדאי להיעזר בנתיב הזה אם אתם רוצים לשמור במטמון את פרטי הכניסה. ספריות האימות בודקות את הנתיב הזה לפני שהן מריצות את קובץ ההפעלה.WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שלו שמשמשים למכסה ולחיוב. לחשבון המשתמש צריכה להיות ההרשאהserviceusage.services.useבפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-OIDC, בדומה לצורה הזו:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:id_token",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"executable": {
"command": "EXECUTABLE_COMMAND",
"interactive_timeout_millis": "EXECUTABLE_INTERACTIVE_TIMEOUT",
"timeout_millis": "EXECUTABLE_TIMEOUT",
"output_file": "EXECUTABLE_OUTPUT_FILE",
}
}
}
השדה timeout_millis מוחזר כי קובץ הפעלה אינטראקטיבי יכול לרוץ במקרים מסוימים גם במצב לא אינטראקטיבי.
במצב אינטראקטיבי, הפקודה מחזירה ברירת מחדל של זמן קצוב לתפוגה.
SAML
אתם יכולים לקבל את פרטי הכניסה שבהם אתם משתמשים כדי להגדיר את קובץ התצורה מהמקורות הבאים:
- פרטי כניסה שהתקבלו מקובץ
- פרטי כניסה שהתקבלו מכתובת URL
- פרטי כניסה שהתקבלו מקובץ הפעלה
- פרטי כניסה שהתקבלו מקובץ הפעלה במצב אינטראקטיבי של gcloud
פרטי כניסה שהתקבלו מקובץ
טענות נכוֹנוּת (assertions) נטענות מקובץ. תהליך אחר צריך לרענן את הקובץ הזה באמצעות טענת נכוֹנוּת חדשה של SAML בקידוד base64 לפני שהתוקף של הטענה הקודמת יפוג. לדוגמה, אם לטענת נכונות יש משך חיים של שעה אחת, חייבים לרענן את הקובץ לפני שמסתיימת השעה שלו.
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--output-file=federation_config.json \
--credential-source-file=CREDENTIAL_FILE \
--subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.CREDENTIAL_FILE: הנתיב לקובץ פרטי הכניסה שה-IdP יוצר.WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שלו שמשמשים למכסה ולחיוב. לחשבון המשתמש צריכה להיות הרשאתserviceusage.services.useבפרויקט הזה.
פרטי כניסה שהתקבלו מכתובת URL
טענות נכוֹנוּת (assertions) נטענות משרת מקומי עם נקודת קצה (endpoint) שמגיבה לבקשות HTTP מסוג GET. התגובה חייבת להיות טענת נכוֹנוּת של SAML [בקידוד base64](https://toolbox.googleapps.com/apps/encode_decode/) או JSON שמכיל טענת נכוֹנוּת של SAML בקידוד base64. כדי להשתמש בפרטי הכניסה שהתקבלו מכתובת URL, צריך להשתמש בדגל `--credential-source-url` : ```sh gcloud iam workforce-pools create-cred-config \ locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \ --output-file=federation_config.json \ --credential-source-url=CREDENTIAL_URL \ --subject-token-type=urn:ietf:params:oauth:token-type:saml2 \ --workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT ``` מחליפים את הערכים הבאים: *WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.
* WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.
* CREDENTIAL_URL: כתובת ה-URL של נקודת הקצה של השרת המקומי.
* WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שלו שמשמשים למכסה ולחיוב. לחשבון המשתמש צריכה להיות הרשאת `serviceusage.services.use` בפרויקט הזה.
פרטי כניסה שהתקבלו מקובץ הפעלה
טענות נכוֹנוּת (assertions) נטענות מקובץ הפעלה מקומי. קובץ ההפעלה צריך להעביר טענת נכוֹנוּת של SAML תקינה ותקפה בפורמט JSON אל stdout.
{
"version": 1,
"success": true,
"token_type": "urn:ietf:params:oauth:token-type:saml2",
"saml_response": "...",
"expiration_time": 1620499962
}
צריך למלא את השדות האלה, מלבד
expiration_time, כדי שהתגובה תהיה תקינה. השדה expiration_time נדרש רק
כשקובץ פלט מצוין בתצורת פרטי הכניסה.
אם מתרחשת שגיאה, קובץ ההפעלה צריך להציג ל-stdout את הקובץ בפורמט JSON הבא:
{
"version": 1,
"success": false,
"code": "401",
"message": "Caller not authorized."
}
כל השדות אלה נדרשים לתגובת שגיאה. כשעולה השגיאה המתאימה, ספריות הלקוח משתמשות בשדות של הקוד (code) וההודעה (message).
הפקודה יכולה להחזיר את השדות הבאים:
version: הגרסה של פלט ה-JSON. יש תמיכה רק בגרסה1.success: הסטטוס של התגובה. כשהערך של הסטטוס הואtrue, קובץ ההפעלה צריך לצאת עם קוד יציאה0והתגובה חייבת לכלול את השדות הבאים:token_type:saml_response- השדה
expiration_time, אם קובץ פלט מצוין בתצורה של פרטי הכניסה
כשהערך של הסטטוס הוא
false, קובץ ההפעלה צריך לצאת עם ערך שאינו אפס והתגובה צריך לכלול את השדות הבאים:code+message+token_type: סוג אסימון הנושא של צד שלישי שחייב להיותurn:ietf:params:oauth:token-type:saml2saml_response: תגובת SAML של הצד השלישיexpiration_time: זמן התפוגה של תגובת SAML של הצד השלישי בשניות (ראשית זמן יוניקס [Unix epoch])code: מחרוזת קוד השגיאהmessage: הודעת השגיאה
ספריות הלקוח מגדירות את משתני הסביבה האלה כשקובץ ההפעלה מופעל:
GOOGLE_EXTERNAL_ACCOUNT_AUDIENCE: שדה הקהל מהתצורה של פרטי הכניסה. המשתנה הזה תמיד מוגדר.GOOGLE_EXTERNAL_ACCOUNT_TOKEN_TYPE: הסוג של אסימון הנושא הצפוי. המשתנה הזה תמיד מוגדר.GOOGLE_EXTERNAL_ACCOUNT_OUTPUT_FILE: המיקום של קובץ הפלט מהתצורה של פרטי הכניסה. המשתנה הזה מוצג רק כשהוא מצוין בתצורה של פרטי הכניסה.
כדי להפעיל את השיטה הזו של קבלת פרטי הכניסה באמצעות ספריות הלקוח, צריך להגדיר את משתנה הסביבה GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES ל-1.
כדי ליצור את קובץ התצורה באמצעות פרטי כניסה שהתקבלו מקובץ הפעלה, מריצים את הפקודה הבאה:
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
--executable-command=EXECUTABLE_COMMAND \
--executable-timeout-millis=EXECUTABLE_TIMEOUT \
--executable-output-file=EXECUTABLE_OUTPUT_FILE \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file /path/to/generated/config.json
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.EXECUTABLE_COMMAND: הפקודה המלאה, כולל ארגומנטים, שמריצים כדי לאחזר את אסימון הנושא, בפורמט הבא:--executable-command="/path/to/command --foo=bar".-
EXECUTABLE_TIMEOUT: אופציונלי. משך הזמן, באלפיות שנייה, שצריך להמתין להרצה של קובץ ההפעלה (ברירת המחדל היא 30 שניות). -
EXECUTABLE_OUTPUT_FILE: אופציונלי. הנתיב לפרטי הכניסה של זהות צד שלישי (3PI) שקובץ ההפעלה יצר. כדאי להיעזר בזה אם רוצים לשמור במטמון את פרטי הכניסה. ספריות ההרשאה בודקות אם הוא קיים לפני שהן מריצות את קובץ ההפעלה. WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט שמשמש למכסה ולחיוב. לחשבון המשתמש צריכה להיות ההרשאהserviceusage.services.useבפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-SAML, שאמור להיראות ככה:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID",
"subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "WORKFORCE_POOL_USER_PROJECT",
"credential_source": {
"executable": {
"command": "EXECUTABLE_COMMAND",
"timeout_millis": "EXECUTABLE_TIMEOUT",
"output_file": "EXECUTABLE_OUTPUT_FILE"
}
}
}
פרטי כניסה שהתקבלו מקובץ הפעלה במצב אינטראקטיבי של gcloud
כשמשתמשים בפרטי כניסה שהתקבלו מקובץ הפעלה במצב אינטראקטיבי של gcloud, קובץ הפעלה יוצר אינטראקציה עם המשתמש באמצעות ממשק שורת הפקודה.
בפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:
-
EXECUTABLE_OUTPUT_FILE: שדה חובה. הנתיב לקובץ שמספק את פרטי הכניסה שקובץ ההפעלה יצר. -
EXECUTABLE_TIMEOUT: שדה חובה. זמן קצוב לתפוגה שהוא לא אפס מסמן גם לפקודה להשתמש במצב אינטראקטיבי.
{
"version": 1,
"success": true,
"token_type": "urn:ietf:params:oauth:token-type:saml2",
"saml_response": "...",
"expiration_time": 1620499962
}
צריך למלא את השדות האלה, מלבד
expiration_time, כדי שהתגובה תהיה תקינה. כשהמדיניות expiration_time מושמטת, הקובץ להפעלה עדיין פועל.
צריך להציג בקובץ ההפעלה שגיאות ל-executable-output-file בפורמט JSON הבא. כשקובץ ההפעלה מדווח על שגיאה, כל השדות האלה נדרשים. כשעולה השגיאה המתאימה, ספריות הלקוח משתמשות בשדות של הקוד (code) וההודעה (message).
{
"version": 1,
"success": false,
"code": "401",
"message": "Caller not authorized."
}
אם הפקודה בוצעה בהצלחה, יוחזרו אותם שדות כמו בפרטי כניסה שהתקבלו מקובץ הפעלה לא אינטראקטיבי.
משתני הסביבה גם זהים לפרטי כניסה שהתקבלו מקובץ הפעלה לא אינטראקטיבי.
כדי ליצור פרטי כניסה שהתקבלו מקובץ הפעלה אינטראקטיבי, צריך להוסיף את הפרמטר --executable-interactive-timeout-millis.
gcloud iam workforce-pools create-cred-config \
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID \
--subject-token-type=urn:ietf:params:oauth:token-type:saml2 \
--executable-command=EXECUTABLE_COMMAND \
--executable-interactive-timeout-millis=EXECUTABLE_INTERACTIVE_TIMEOUT \
--executable-output-file=EXECUTABLE_OUTPUT_FILE \
--workforce-pool-user-project=WORKFORCE_POOL_USER_PROJECT \
--output-file /path/to/generated/config.json
מחליפים את מה שכתוב בשדות הבאים:
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה.EXECUTABLE_COMMAND: הפקודה המלאה, כולל ארגומנטים, שמריצים כדי לאחזר את אסימון הנושא, בפורמט הבא:--executable-command="/path/to/command --foo=bar").EXECUTABLE_INTERACTIVE_TIMEOUT: משך הזמן, באלפיות שנייה, שצריך להמתין להרצה של קובץ ההפעלה.EXECUTABLE_OUTPUT_FILE: נתיב לפרטי הכניסה של צד שלישי שקובץ ההפעלה יצר. כדאי להיעזר בזה אם רוצים לשמור במטמון את פרטי הכניסה. ספריות האימות בודקות את הנתיב הזה לפני שמריצות את קובץ ההפעלה.WORKFORCE_POOL_USER_PROJECT: מספר הפרויקט או המזהה שלו שמשמשים למכסה ולחיוב. לחשבון המשתמש צריכה להיות ההרשאהserviceusage.services.useבפרויקט הזה.
הרצת הפקודה יוצרת קובץ תצורה של IdP ב-SAML, בדומה לצורה הזו:
{
"type": "external_account",
"audience": "//iam.googleapis.com/locations/global/workforcePools/<var>WORKFORCE_POOL_ID<var>/providers/<var>WORKFORCE_PROVIDER_ID</var>",
"subject_token_type": "urn:ietf:params:oauth:token-type:saml2",
"token_url": "https://sts.googleapis.com/v1/token",
"workforce_pool_user_project": "<var>WORKFORCE_POOL_USER_PROJECT</var>",
"credential_source": {
"executable": {
"command": "<var>EXECUTABLE_COMMAND</var>",
"interactive_timeout_millis": "<var>EXECUTABLE_INTERACTIVE_TIMEOUT</var>",
"timeout_millis": "<var>EXECUTABLE_TIMEOUT</var>",
"output_file": "<var>EXECUTABLE_OUTPUT_FILE</var>",
}
}
}
כדי להיכנס, מריצים את הפקודה הבאה:
gcloud auth login --cred-file=/path/to/config.json
שימו לב שבשלב הזה, לא ה-CLI של gcloud ולא כלי שורת הפקודה של BigQuery תומכים בסוגים של פרטי כניסה שהתקבלו מקובץ הפעלה.
לתהליכי עבודה ללא דפדפן GUI, ה-CLI של gcloud משתמש באופן אוטומטי בהיקף הבא: https://www.googleapis.com/auth/cloud-platform.
לאחר מכן, ה-CLI של gcloud שולח בשקיפות את פרטי הכניסה לנקודת הקצה (endpoint) של Security Token Service, שבה הם מומרים לטוקני גישה זמניים שלCloud de Confiance .
עכשיו אפשר להריץ פקודות של gcloud באמצעות ה-CLI של gcloud.
שימוש ב Cloud de Confiance ספריות לקוח
אם משתמשים בספריית לקוח נתמכת, אפשר להגדיר את ספריית הלקוח כך שהיא תיצור את פרטי הכניסה של Google באופן אוטומטי. כשהדבר אפשרי, אנחנו ממליצים ליצור פרטי כניסה באופן אוטומטי כדי שלא תצטרכו להטמיע את תהליך המרת האסימונים בעצמכם.
ספריות הלקוח שלCloud de Confiance תומכות במאגרי כוח עבודה בשפות הבאות: Node.js, Java, Python, Go ו-C++ (gRPC).
כדי להשתמש בספריות הלקוח באמצעות השירותים או השפות האלה, מבצעים את הפעולות הבאות:
bq
כדי לאמת באמצעות איחוד שירותי אימות הזהות של כוח עבודה, משתמשים בפקודה gcloud auth login:
gcloud auth login --cred-file=FILEPATH.json
FILEPATH הוא הנתיב לקובץ התצורה של פרטי הכניסה.
בכלי bq יש תמיכה באיחוד שירותי אימות הזהות של כוח עבודה ב-Google Cloud CLI בגרסה 390.0.0 ואילך.
C++
רוב ספריות הלקוח שלCloud de Confiance ל-C++ תומכות באיחוד שירותי אימות הזהות של כוח עבודה באמצעות אובייקט ChannelCredentials, שנוצר בהפעלת grpc::GoogleDefaultCredentials(). כדי לאתחל את פרטי הכניסה האלה, צריך ליצור את ספריות הלקוח בגרסה 1.42.0 ואילך של gRPC.
ספריות הלקוח ב-Cloud Storage של C++ משתמשות ב-API בארכיטקטורת REST, ולא ב-gRPC, ולכן לא תומכות באיחוד שירותי אימות הזהות של כוח עבודה.
auto creds = grpc::GoogleDefaultCredentials();
// Create a channel, stub and make RPC calls (same as in the previous example)
auto channel = grpc::CreateChannel("greeter.googleapis.com", creds);
std::unique_ptr<Greeter::Stub> stub(Greeter::NewStub(channel));
grpc::Status s = stub->sayHello(&context, *request, response);
gcloud
כדי לאמת באמצעות איחוד שירותי אימות הזהות של כוח עבודה, משתמשים בפקודה gcloud auth login:
gcloud auth login --cred-file=FILEPATH.json
מחליפים את FILEPATH בנתיב לקובץ התצורה של פרטי הכניסה.
ב-CLI של gcloud יש תמיכה באיחוד שירותי אימות הזהות של כוח עבודה ב-CLI של Google Cloud בגרסה 392.0.0 ואילך.
המשך
בספריות הלקוח של Cloud ל-Go יש תמיכה באיחוד שירותי אימות הזהות של כוח עבודה, אם משתמשים במודול golang.org/x/oauth2 בגרסה v0.0.0-20211005180243-6b3c2da341f1 ואילך.
import (
"context"
"fmt"
"log"
"cloud.google.com/go/storage"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
"io/ioutil"
)
ctx := context.Background()
client, err := storage.NewClient(ctx)
# Explicit initialization can also be used.
# var jsonPath = "/path/to/3p-credentials.json"
# client, err := storage.NewClient(ctx, option.WithCredentialsFile(jsonPath))
if err != nil {
log.Fatal(err)
}
fmt.Println("Buckets:")
it := client.Buckets(ctx, projectID)
for {
battrs, err := it.Next()
if err == iterator.Done {
break
}
if err != nil {
log.Fatal(err)
}
fmt.Println(battrs.Name)
}
Java
ספריות הלקוח של Cloud ל-Java תומכות באיחוד שירותי אימות הזהות של כוח עבודה כשמשתמשים בגרסה 1.2.0 ואילך של ארטיפקט com.google.auth:google-auth-library-oauth2-http.
import com.google.auth.oauth2.GoogleCredentials;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
GoogleCredentials sourceCredentials = credentials
.createScoped(Arrays.asList("https://www.googleapis.com/auth/devstorage.read_only"));
Storage storageService = StorageOptions.newBuilder().setProjectId("project-id")
.setCredentials(sourceCredentials).build().getService();
Node.js
בספריות הלקוח של Cloud ל-Node.js יש תמיכה באיחוד שירותי אימות הזהות של כוח עבודה, אם משתמשים בגרסה 7.10.0 ואילך של חבילת google-auth-library.
בניגוד למאגרי זהויות של עומסי עבודה, מאגרי זהויות של כוח עבודה משויכים לארגון ולא לפרויקט ב- Cloud de Confiance . כשיוצרים אובייקט GoogleAuth, צריך לציין מזהה פרויקט. למידע נוסף, אפשר להיכנס לקובץ README של חבילת google-auth-library.
const auth = new GoogleAuth({
scopes: 'https://www.googleapis.com/auth/cloud-platform',
// Specify a project ID.
projectId: 'CLOUD_RESOURCE_PROJECT_ID',
});
# API request using Auth library.
const client = await auth.getClient();
const url =
`https://storage.googleapis.com/storage/v1/b?projects=${projectId}`;
const res = await client.request({url});
console.log(res.data);
Python
ספריות הלקוח של Cloud ל-Python תומכות באיחוד שירותי אימות הזהות של כוח עבודה כשמשתמשים בגרסה 2.3.0 ואילך של חבילת google-auth.
from google.cloud import storage
import google.auth
credentials, project = google.auth.default(
scopes=['https://www.googleapis.com/auth/devstorage.read_only'])
client = storage.Client(
project="project-id", credentials=credentials)
בקוד לדוגמה, הערך project יכול להיות None אם הספרייה לא יכולה לאתר באופן אוטומטי את מזהה הפרויקט. אפשר להעביר את מזהה הפרויקט באופן מפורש כשמשתמשים במכונה של שירות, כמו בדוגמה של לקוח האחסון, או להגדיר את מזהה הפרויקט באמצעות משתנה הסביבה GOOGLE_CLOUD_PROJECT.
לפרטים, אפשר לעיין במדריך למשתמש לחבילת google-auth.
שימוש ב-API בארכיטקטורת REST
כדי לקבל קוד הרשאה מנקודת הקצה של ההרשאה (https://auth.cloud.google/authorize) ולהחליף קודי הרשאה או אסימוני רענון באמצעות Cloud OAuth API (cloudoauth.googleapis.com), קראו את המאמר החלפת אסימונים באמצעות Cloud OAuth API.
אפשר גם לקרוא ל- Cloud de Confiance Security Token Service API כדי להמיר את פרטי הכניסה החיצוניים ב Cloud de Confiance טוקני גישה, באמצעות הפקודה הבאה:
curl https://sts.s3nsapis.fr/v1/token \
--data-urlencode "audience=//iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID" \
--data-urlencode "grant_type=urn:ietf:params:oauth:grant-type:token-exchange" \
--data-urlencode "requested_token_type=urn:ietf:params:oauth:token-type:access_token" \
--data-urlencode "scope=https://www.googleapis.com/auth/cloud-platform" \
--data-urlencode "subject_token_type=SUBJECT_TOKEN_TYPE" \
--data-urlencode "subject_token=EXTERNAL_SUBJECT_TOKEN" \
--data-urlencode "options={\"userProject\":\"BILLING_PROJECT_NUMBER\"}"
מחליפים את מה שכתוב בשדות הבאים:
AUDIENCE: שם המשאב המלא של הספק שמנפיק את אסימון הנושא.-
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה -
WORKFORCE_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה SUBJECT_TOKEN_TYPE: מוגדר לאחת מהאפשרויות הבאות:-
urn:ietf:params:oauth:token-type:id_tokenלאסימונים מזהים של OIDC urn:ietf:params:oauth:token-type:saml2לטענות נכוֹנוּת (assertions) של SAML
-
EXTERNAL_SUBJECT_TOKEN: האסימון שמנפיק ה-IdP ומייצג את הזהות של הישות המורשית שעבורה מתבקש טוקן הגישה.אם הגדרתם ספק OIDC, האסימון צריך להיות בפורמט JWT.
BILLING_PROJECT_NUMBER: מספר או מזהה הפרויקט שמשמש למכסות ולחיוב לחשבון המשתמש צריכה להיות ההרשאהserviceusage.services.useבפרויקט הזה.
התגובה אמורה להיראות כך:
{
"access_token": "ya29.dr.AaT61Tc6Ntv1ktbGkaQ9U_MQfiQw...",
"issued_token_type": "urn:ietf:params:oauth:token-type:access_token",
"token_type": "Bearer",
"expires_in": 3600
}
ניהול סשנים באמצעות ה-CLI של gcloud
התוקף של האסימונים הזמניים של Cloud de Confiance שה-CLI של gcloud מקבל מנקודת הקצה (endpoint) של Security Token Service יפוג אחרי טווח זמן מוגדר. כשהאסימון קרוב לזמן התפוגה שלו, ה-CLI של gcloud בודק את קובץ פרטי הכניסה שסיפקתם ובוחן את התוקף של פרטי הכניסה שקיבלתם מה-IdP. אם פרטי הכניסה עדיין בתוקף, ה-CLI של gcloud ממשיך לקבל בשקיפות אסימון גישה חדש ל-Cloud de Confiance , והסשן הנוכחי ממשיך לרוץ ללא הפרעה.
אם התוקף של פרטי הכניסה יפוג, לא יונפקו אסימונים חדשים של Cloud de Confiance וכל הקריאות שיבוצעו באמצעות פרטי הכניסה האלה ייכשלו. בשלב הזה, צריך לבצע אימות מחדש.
כדי לסיים את הסשן, מריצים את הפקודה הבאה:
gcloud auth revoke
ב-gcloud יש תמיכה בסשנים מרובים של משתמשים. כדי להציג את רשימת הסשנים, כולל הסשן הפעיל הנוכחי, מריצים את הפקודה הבאה:
gcloud auth list
הפלט של הפקודה אמור להיראות כך:
Credentialed Accounts
ACTIVE ACCOUNT
* bola@example.com
principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/kalani@example.comכדי לעבור לסשן אחר ולהגדיר אותו כפעיל, מריצים את הפקודה הבאה:
gcloud config set account principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/SUBJECT_ID