במדריך הזה מוסבר איך להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לאפשר לעומסי עבודה להשתמש בפרטי הכניסה של Active Directory כדי לבצע אימות ל- Cloud de Confiance by S3NS.
אם מריצים עומסי עבודה של Windows Server בסביבת Active Directory, לעומסי העבודה עשויה להיות גישה לפרטי כניסה של Active Directory. לדוגמה:
- ייתכן ששירות Windows מוגדר להתחברות כמשתמש בדומיין.
- ייתכן שאפליקציית IIS מוגדרת לרוץ כחשבון שירות מנוהל באופן קבוצתי (gMSA).
שימוש באיחוד שירותי אימות הזהות של עומסי עבודה בשילוב עם Active Directory Federation Services (AD FS), מאפשר לעומסי העבודה להמיר את פרטי הכניסה שלהם ב-Kerberos של Active Directory בפרטי כניסה לטווח קצר של Cloud de Confiance . עומסי העבודה יכולים להשתמש בפרטי הכניסה לטווח קצר כדי לקבל גישה ל- Cloud de ConfianceAPIs.
ההחלפה של פרטי כניסה של Active Directory בפרטי כניסה לטווח קצר של Cloud de Confiance עובדת על-ידי שרשור של שתי המרות אסימונים:
- עומס עבודה משתמש ב-OpenID Connect (OIDC), ב-SAML-POST או ב-WS-Trust כדי לבקש אסימון OIDC או טענת נכונות (assertion) של SAML מ-AD FS. כדי לבצע אימות ל-AD FS, עומס העבודה משתמש באימות Windows משולב (IWA) ובפרטי הכניסה שלו שקיימים ב-Active Directory.
- לאחר מכן עומס העבודה משתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי להמיר את אסימון ה-OIDC או את טענת הנכונות (assertion) של SAML באסימון של 'שירות אסימוני אבטחה', ובאופן אופציונלי כדי להתחזות ל Cloud de Confiance חשבון שירות.
במאמר הזה מוסבר איך להפוך את התהליך לאוטומטי, כדי שלא יהיה צורך לבצע שינויים באפליקציה באמצעות Workload Authenticator for Windows.
הכנת AD FS
צריך לבצע את השלבים פעם אחת בלבד.
בחירת פרוטוקול
הדרך להכין את AD FS תלויה בסוג הפרוטוקול שבו רוצים להשתמש:
SAML: אתם יכולים לאפשר לעומסי עבודה להשתמש ב-SAML או ב-WS-Trust כדי לקבל טענות נכונות (assertions) של SAML.
כדי להשתמש ב-SAML או ב-WS-Trust, יוצרים צד נסמך ב-AD FS ומגדירים מאגר זהויות של עומסי עבודה שיכול לתת אמון בטענות הנכונות (assertions) שמונפקים בשביל הצד הנסמך.
עומס עבודה יכול להיעזר במשתמש ב-Active Directory כדי לאמת ל-AD FS באמצעות קישור SAML-POST או WS-Trust. לאחר מכן, AD FS מנפיקה טענת נכונות (assertion) של SAML שמכילה מידע על משתמש Active Directory של עומס העבודה ומידע נוסף כמו חברויות בקבוצות.
כדי להשתמש ב-SAML או ב-WS-Trust, צריך AD FS 3.0, AD FS ל-Windows Server 2016 או גרסה חדשה יותר של AD FS.
OIDC: אתם יכולים לאפשר לעומסי עבודה להשתמש ב-OIDC כדי לקבל אסימוני OIDC.
כדי להשתמש ב-OIDC, צריך ליצור לקוח OIDC (אפליקציית נייטיב) ומשאב OIDC (Web API) ב-AD FS. לאחר מכן מגדירים מאגר זהויות של עומסי עבודה כדי שיתנו אמון באסימוני הגישה שהונפקו בשביל ה-Web API.
עומס עבודה יכול לעשות שימוש במשתמש של Active Directory ובהענקת
client_credentialsשל OAuth כדי לבצע אימות ל-AD FS. לאחר מכן, AD FS מנפיקה אסימון גישה, אבל לא אסימון מזהה.אסימון הגישה מכיל מידע על האפליקציה של לקוח OIDC, אבל הוא לא כולל מידע על המשתמש של עומס העבודה ב-Active Directory או על החברויות שלו בקבוצות.
מכיוון שאסימוני הגישה לא מכילים מידע על המשתמש ב-Active Directory, שימוש ב-OIDC יכול להיות גמיש פחות משימוש ב-SAML או ב-WS-Trust.
שימוש ב-OIDC מחייב AD FS בשביל Windows Server 2016 או גרסה חדשה יותר של AD FS.
כדי להיכנס לחשבון, ספק הזהויות שלכם צריך לספק פרטי אימות חתומים: ספקי זהויות שתומכים ב-OIDC צריכים לספק אסימון JWT, ותשובות שמגיעות מספקי זהויות שתומכים ב-SAML חייבות להיות חתומות.
דרישות מוקדמות של IWA
הקטע מתאר דרישות מוקדמות של IWA שנחוצות כדי להשתמש במדריך זה.
אם עוד לא השתמשתם ב-IWA עם AD FS, ודאו שאתם עומדים בדרישות המקדימות הבאות:
- הגדרתם ל-AD FS לאפשר אימות ב-Windows ולהשתמש בשם הנכון של חשבון המשתמש בשירות.
- הגדרתם הגנה מורחבת לאימות שתואמת לפריסת ה-AD FS.
רישום עומס העבודה
כדי לרשום את עומס העבודה ב-AD FS, צריך לבצע את הפעולות הבאות:
OIDC
כדי לאפשר לעומסי עבודה להשתמש ב-OIDC, צריך שני רישומי אפליקציה ב-AD FS:
רישום אפליקציה מסוג אפליקציית נייטיב או אפליקציית שרת.
רישום אפליקציה מסוג Web API שתואם לספק מאגר זהויות של כוח עבודה ב- Cloud de Confiance.
רישום אפליקציית הלקוח
צריך ליצור אפליקציית לקוח שמייצגת את עומס העבודה. אם יש מספר עומסי עבודה שצריכים גישה ל- Cloud de Confiance, יכול להיות שצריך ליצור מספר אפליקציות לקוח.
כדי לרשום אפליקציית לקוח ב-AD FS, מבצעים את הפעולות הבאות:
- פותחים את ההצמדה של MMC ל-AD FS ועוברים אל Application Groups.
- לוחצים על Add application group.
בדף Welcome, מבצעים את הפעולות הבאות:
- בשדה הטקסט, מזינים שם של הלקוח.
- בוחרים Server application.
- לוחצים על Next.
בדף Server application, מבצעים את הפעולות הבאות:
בשדה הטקסט text-field מזינים מזהה לקוח (Client ID) והפניה אוטומטית לכתובת URI אחרת.
אם מתכננים להשתמש רק בסוג הענקה
client_credentials, לא ייעשה שימוש בהפניה האוטומטית לכתובת URI אחרת ואפשר להשתמש ב-URI כמוhttp://localhost/.לוחצים על Next.
בדף Configure application credentials, מבצעים את הפעולות הבאות:
- בוחרים איך הלקוח יבצע אימות. כדי להשתמש ב-IWA, מגדירים את Windows Integrated Authentication ל-enabled.
- בוחרים את משתמש הדומיין שהאפליקציה מוגדרת לרוץ בשמו.
- לוחצים על Next.
בדף Summary, בודקים את ההגדרות ולוחצים על Next.
לוחצים על Close כדי לסגור את תיבת הדו-שיח.
יצירת אפליקציה של Web API למאגר זהויות של עומסי עבודה
צריך ליצור רישום נוסף של אפליקציה מסוג Web API. האפליקציה הזו תואמת לספק של מאגר זהויות של כוח עבודה, ומשתמשים בה כדי להגדיר יחסי אמון עם Cloud de Confiance.
כדי ליצור את האפליקציה ב-AD FS, מבצעים את הפעולות הבאות:
- פותחים את ההצמדה של MMC ל-AD FS ועוברים אל Application Groups.
- לוחצים על Add application group.
- בדף Welcome מזינים שם כמו
Workload Identity Federation (test environment), ובוחרים Web API. לאחר מכן לוחצים על Next. בדף Configure Web API, מזינים מזהה צד נסמך בשביל ה-Web API.
במקום להגדיר מזהה צד נסמך בהתאמה אישית, אפשר להשתמש ב-URI הבא כמזהה צד נסמך:
https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_POOL_ID/providers/WORKLOAD_PROVIDER_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט של Cloud de Confiance הפרויקט שבו אתם משתמשים כדי ליצור מאגר זהויות של כוח עבודה. WORKLOAD_POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של עומסי עבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר זהויות של עומסי עבודה.WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של כוח העבודה. בהמשך תצטרכו להשתמש באותו מזהה כשתיצרו ספק של מאגר זהויות של כוח העבודה.
סידור ה-URI בצורה כזו מבטיח שמזהה הצד הנסמך יזהה באופן ייחודי ספק של מאגר זהויות של כוח עבודה.
תצטרכו לדעת את המזהה של הצד הנסמך מאוחר יותר כשתגדירו את ספק מאגר הזהויות של כוח העבודה.
-
לוחצים על Next.
בדף Apply access control policy, בוחרים את מדיניות הגישה המתאימה ולוחצים על Next.
בדף Configure application permissions מוסיפים את אפליקציית הלקוח שיצרתם מוקדם יותר. לאחר מכן לוחצים על Next.
בדף Summary, בודקים את ההגדרות ולוחצים על Next.
לוחצים על Close כדי לסגור את תיבת הדו-שיח.
SAML או WS-Trust
יצירת אמון צד נסמך ב-AD FS:
- פותחים את הצמדת ה-MMC ל-AD FS.
- עוברים אל Relying party trusts.
- לוחצים על Add relying party trust.
- בדף Welcome של האשף Add relying party trust, מבצעים את הפעולות הבאות:
- בוחרים Claims aware
- לוחצים על Start.
- בדף Select data source מבצעים את הפעולות הבאות:
- בוחרים Enter data about the relying party manually.
- לוחצים על Next.
בדף Specify display name, מבצעים את הפעולות הבאות:
- מזינים שם לאמון.
- לוחצים על Next.
בדף Configure certificate, לוחצים על Next. איחוד שירותי אימות הזהות של עומסי עבודה תומך ב-SAML מוצפן, אבל הוא לא מתואר בתהליך הזה. למידע נוסף, אפשר לעיין בהוראות של ה-CLI של gcloud בחלק יצירת המאגר והספק של הזהויות שמופיע בהמשך המדריך.
בדף Configure URL, מבצעים את הפעולות הבאות:
SAML
משתמשים בהגדרות הבאות:
- מגדירים את Enable support for the SAML 2.0 WebSSO protocol ל-enabled
בשדה Relying party SAML 2.0 SSO service URL, מזינים את כתובת ה-URL הבאה:
https://sts.s3nsapis.fr/v1/token
WS-Trust
שמירת הגדרות ברירת המחדל
לוחצים על Next.
בדף Configure identifiers, מזינים מזהה של צד נסמך.
במקום להגדיר מזהה צד נסמך בהתאמה אישית, אפשר להשתמש ב-URI הבא כמזהה של גורם נסמך:
https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_POOL_ID/providers/WORKLOAD_PROVIDER_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט של Cloud de Confiance הפרויקט שבו אתם משתמשים כדי ליצור מאגר זהויות של כוח עבודה. WORKLOAD_POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של עומסי עבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר זהויות של עומסי עבודה.WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של כוח העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו ספק של מאגר זהויות של כוח העבודה.
סידור ה-URI בצורה כזו מבטיח שמזהה הצד הנסמך יזהה באופן ייחודי ספק של מאגר זהויות של כוח עבודה.
תצטרכו לדעת את המזהה של הצד הנסמך מאוחר יותר כשתגדירו את ספק מאגר הזהויות של כוח העבודה.
-
לוחצים על Next.
בדף Choose access control policy, בוחרים את מדיניות הגישה המתאימה ולוחצים על Next.
בדף Ready to add trust, בודקים את ההגדרות ולוחצים על Next.
בדף Finish, לוחצים על Close כדי לסגור את תיבת הדו-שיח.
כדי שתהיה תאימות עם איחוד שירותי אימות הזהות של עומסי עבודה, צריך לכלול בטענות נכונות (assertions) של SAML לפחות הצהרה אחת שמזהה באופן ייחודי את משתמש ה-Active Directory. בדרך כלל, משתמשים לשם כך בהצהרה מזהה שם שתואמת לערך של הרכיב NameID בטענת הנכונות (assertion) של SAML.
כדי להתאים אישית את קבוצת ההצהרות של טענות הנכונות (assertions) של SAML, צריך לערוך את מדיניות הפקת ההצהרות של אמון הצד הנסמך. כדי לערוך את מדיניות הפקת ההצהרות, צריך לבצע את הפעולות הבאות:
- ברשימת האמון של צדדים נסמכים, בוחרים את האמון שיצרתם עכשיו ולוחצים על Edit claim issuance policy.
- לוחצים על Add rule
- בדף Choose rule type של האשף Add transform claim rule, מבצעים את הפעולות הבאות:
- בוחרים Transform an incoming claim.
- לוחצים על Next.
בדף Configure claim rule, קובעים את ההגדרות הבאות:
- Claim rule name:
Name Identifier. - Incoming claim type: בוחרים Primary SID, UPN או הצהרה אחרת כדי לזהות את הנושא באופן ייחודי.
- Outgoing claim type: Name ID.
- Outgoing name ID format: Unspecified.
- Claim rule name:
בוחרים Pass through all claim values ולוחצים על Finish.
אפשר גם להגדיר כללים נוספים כך שיכללו מאפיינים נוספים בטענות הנכונות (assertions) של SAML.
לוחצים על OK כדי לסגור את תיבת הדו-שיח של מדיניות הפקת ההצהרות.
הגדרת איחוד שירותי אימות הזהות של עומסי עבודה
צריך לבצע את השלבים האלה פעם אחת לכל דומיין של Microsoft Active Directory שרוצים לבצע איתו איחוד. לאחר מכן תוכלו להשתמש באותו מאגר ובאותו ספק זהויות של כוח עבודה בכמה עומסי עבודה ובכמה פרויקטים שלCloud de Confiance .
כדי להתחיל בהגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:
-
בדף לבחירת הפרויקט במסוף Cloud de Confiance , בוחרים פרויקט ב- Cloud de Confiance או יוצרים אותו.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
מומלץ
להשתמש בפרויקט ייעודי לניהול ספקים ומאגרי זהויות של עומסי עבודה.
מפעילים את ממשקי ה-API של IAM, מנהל המשאבים, Service Account Credentials ו-Security Token Service.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
הגדרת מיפוי של מאפיין ותנאי
פרטי הכניסה הספציפיים לסביבה של עומס העבודה ב-Active Directory מכילים מספר מאפיינים, וצריך להחליט באיזה מאפיין רוצים להשתמש כמזהה הנושא (google.subject) ב- Cloud de Confiance.
אפשר גם למפות מאפיינים נוספים (אופציונלי). לאחר מכן אפשר להפנות למאפיינים נוספים אלו כשמעניקים גישה למשאבים.
OIDC
מיפויי המאפיינים יכולים להשתמש בהצהרות מוטמעות באסימוני גישה של AD FS כמאפייני מקור.
כדי לאמת אפליקציה, אפשר להשתמש במיפוי המאפיינים הבא:
google.subject=assertion.appid
המיפוי מגדיר את google.subject לערך של ההצהרה appid, שמכילה את מזהה הלקוח של האפליקציה של AD FS.
SAML או WS-Trust
מיפויי המאפיינים יכולים להשתמש בהצהרות שמוטמעות בטענת הנכונות (assertion) שהפיקה AD FS, כפי שתיארנו קודם במדריך.
אפשר להשתמש במיפוי הבא כדי לאפשר לאיחוד שירותי אימות הזהויות של עומסי עבודה להשתמש בהצהרה של מזהה שם מטענת הנכונות (assertion) של SAML כדי לזהות את המשתמש באופן ייחודי:
google.subject=assertion.subject
אם הגדרתם שמדיניות הפקת ההצהרות תכלול הצהרות נוספות בטענות הנכונות (assertions) של SAML, אפשר להוסיף עוד מיפויים. לדוגמה:
google.groups=assertion.attributes['http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid'] attribute.userip=['http://schemas.microsoft.com/2014/09/requestcontext/claims/userip'][0]
לחלופין, אפשר להגדיר תנאי למאפיין. תנאים למאפיינים הם ביטויים ב-CEL שאפשר לבדוק בהם טענת נכוֹנוּת (assertion) ומאפייני יעד.
אם בפרטי כניסה מסוימים הערך של התנאי למאפיין הוא true, הפרטים האלה מאושרים. אם הוא לא מקבל הערך הזה, זה אומר שפרטי הכניסה נדחו.
OIDC
אפשר להשתמש בתנאי למאפיין כדי להגביל את הלקוחות שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבל אסימוניCloud de Confiance לטווח קצר.
לדוגמה, התנאי הבא מגדיר שהאפליקציות צריכות להשתמש ב-IWA כדי לאמת מול AD FS:
assertion.authmethod=='http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/windows'
כדי לשלוט ברשימת האפליקציות שיכולות לקבל פרטי כניסה לטווח קצר ל- Cloud de Confiance, לא מגדירים תנאים למאפיינים. במקום זאת, משתמשים בהרשאות לקוח ב-AD FS כדי להגדיר אילו אפליקציות מורשות.
SAML או WS-Trust
אפשר להשתמש בתנאי למאפיין כדי להגביל את המשתמשים ב-Active Directory שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבלCloud de Confiance אסימונים לטווח קצר.
לדוגמה, התנאי הבא מאפשר רק טענות נכונות (assertions) של SAML שכוללות הצהרה מסוימת על חברות בקבוצה:
"S-1-5-6" in google.groups
יצירה של ספק ומאגר זהויות של עומסי עבודה
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- אדמין במאגר זהויות של עומסי עבודה (
roles/iam.workloadIdentityPoolAdmin) - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
לחלופין, התפקיד הבסיסי 'בעלים' ב-IAM (roles/owner) כולל
גם הרשאות להגדרה של איחוד שירותי אימות הזהות.
אסור להקצות תפקידים בסיסיים בסביבת ייצור, אבל אפשר להקצות אותם בסביבת פיתוח או בדיקה.
המסוף
במסוף Cloud de Confiance , עוברים לדף New workload provider and pool.
בקטע Create an identity pool, מזינים את הפרטים הבאים:
- Name: השם של המאגר. השם משמש גם כמזהה המאגר. אי אפשר לשנות את מזהה המאגר בשלב מאוחר יותר.
- Description: טקסט שמתאר את המטרה של המאגר.
לוחצים על Continue.
קובעים את הגדרות הספק:
OIDC
- Select a provider: בוחרים את הספק OpenID Connect (OIDC).
- Provider name: שם הספק. השם משמש גם כמזהה הספק. אי אפשר יהיה לשנות את מזהה הספק מאוחר יותר.
- Issuer URL:
https://ADFS_DOMAIN/adfs.ADFS_DOMAINהוא השם הדומיין הציבורי של השרת או החווה של AD FS.
SAML
כדי להגדיר איחוד שירותי אימות הזהות של עומסי עבודה מ-IdP תואם 2.0 SAML, אפשר להשתמש בהוראות ה-CLI של gcloud.
לוחצים על Continue.
בקטע Configure provider attributes, מוסיפים את מיפויי המאפיינים שזיהיתם קודם לכן.
בקטע Attribute conditions, מזינים את התנאי למאפיין שזיהיתם קודם לכן. אם אין תנאי למאפיין, השאירו את השדה ריק.
לוחצים על Save כדי ליצור את הספק ואת מאגר הזהויות של עומסי העבודה.
gcloud
יצירת מאגר זהויות חדש של עומסי עבודה:
gcloud iam workload-identity-pools create WORKLOAD_POOL_ID \ --location="global" \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"מחליפים את הערכים בשדות הבאים:
WORKLOAD_POOL_ID: מזהה ייחודי של המאגר.DISPLAY_NAME: שם המאגר.DESCRIPTION: תיאור המאגר. התיאור מופיע כשמעניקים גישה לזהויות במאגר.
הוספת ספק למאגר הזהויות של עומסי עבודה:
OIDC
gcloud iam workload-identity-pools providers create-oidc WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="WORKLOAD_POOL_ID" \ --issuer-uri="https://ADFS_DOMAIN/adfs" \ --allowed-audiences="RELYING_PARTY_ID" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים בשדות הבאים:
WORKLOAD_PROVIDER_ID: מזהה ייחודי של הספק.WORKLOAD_POOL_ID: מזהה המאגר.ADFS_DOMAIN: שם הדומיין הציבורי של שרת או חוות AD FS.-
RELYING_PARTY_ID: מזהה הצד הנסמך של אפליקציית Web API למאגר זהויות של עומסי עבודה ב-AD FS. הפרמטר נדרש רק אם משתמשים במזהה מותאם אישית של צד נסמך. MAPPINGS: רשימה מופרדת בפסיקים שלמיפויי מאפיינים שזיהיתם קודם לכן.CONDITIONS: התנאי למאפיין שזיהיתם קודם לכן. אם אין לכם תנאי למאפיין, אפשר להסיר את הפרמטר.
התוספת לשם המאפיין
gcp-שמורה ואי אפשר להשתמש בה במזהה של מאגר זהויות של כוח עבודה או של ספק זהויות של כוח עבודה.SAML או WS-Trust
curl -O https://ADFS_DOMAIN/federationmetadata/2007-06/federationmetadata.xml gcloud iam workload-identity-pools providers create-saml WORKLOAD_PROVIDER_ID \ --location="global" \ --workload-identity-pool="POOL_ID" \ --idp-metadata-path="federationmetadata.xml" \ --attribute-mapping="MAPPINGS" \ --attribute-condition="CONDITIONS"מחליפים את הערכים בשדות הבאים:
WORKLOAD_PROVIDER_ID: מזהה ייחודי של הספק.ADFS_DOMAIN: שם הדומיין של שרת AD FS או חוות שרתים.WORKLOAD_POOL_ID: מזהה המאגר.MAPPINGS: רשימה מופרדת בפסיקים שלמיפויי מאפיינים שזיהיתם קודם לכן.CONDITIONS: אופציונלי: תנאי למאפיין שיצרתם מוקדם יותר במדריך.
התוספת לשם המאפיין
gcp-שמורה ואי אפשר להשתמש בה במזהה של מאגר זהויות של כוח עבודה או של ספק זהויות של כוח עבודה.דוגמה:
gcloud iam workload-identity-pools providers create-saml example-provider \ --location="global" \ --workload-identity-pool="pool-1" \ --idp-metadata-path="federationmetadata.xml" \ --attribute-mapping=google.subject=assertion.subject"אופציונלי: אישור טענות נכונות (assertions) מוצפנות של SAML מה-IdP
כדי לאפשר ל-IdP ב-SAML 2.0 ליצור טענות נכוֹנוּת (assertions) של SAML מוצפן שאיחוד שירותי אימות הזהות של עומסי עבודה יכול לאשר, צריך לבצע את הפעולות הבאות:
- באיחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:
- יוצרים זוג מפתחות אסימטריים בשביל הספק של מאגר הזהויות של עומסי העבודה.
- מורידים קובץ אישור שמכיל את המפתח הציבורי.
- מגדירים את ספק הזהויות ב-SAML כך שישתמש במפתח הציבורי להצפנה של טענות הנכוֹנוּת שהוא מנפיק ב-SAML.
- מבצעים את הפעולות הבאות בספק הזהויות:
- מפעילים הצפנה של טענות נכונות (assertions), שנקראת גם הצפנת אסימונים.
- מעלים את המפתח הציבורי שיצרתם באיחוד שירותי אימות הזהות של עומסי עבודה.
- מוודאים שה-IdP מייצר טענות נכונות (assertions) של SAML מוצפן.
יצירת מפתחות הצפנה של טענות נכונות (assertions) של SAML לאיחוד שירותי אימות הזהות של עומסי עבודה
הקטע מסביר איך ליצור זוג מפתחות אסימטריים שמאפשר לאיחוד שירותי אימות הזהות של עומסי עבודה לקבל טענות נכונות (assertions) מוצפנות של SAML.
Cloud de Confiance by S3NS משתמש במפתח הפרטי כדי לפענח את טענות הנכונות (assertions) ב-SAML שה-IdP מנפיק. כדי ליצור זוג מפתחות אסימטריים להצפנה ב-SAML, מריצים את הפקודה הבאה. מידע נוסף זמין במאמר אלגוריתמים נתמכים להצפנה ב-SAML.
gcloud iam workload-identity-pools providers keys create KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --use encryption \ --spec KEY_SPECIFICATION
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח שבחרתם -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה -
KEY_SPECIFICATION: מפרט המפתחות, שיכול להיות אחד מאלה:rsa-2048, rsa-3072אוrsa-4096.
אחרי שיוצרים את זוג המפתחות, מריצים את הפקודה הבאה כדי להוריד את המפתח הציבורי לקובץ האישור. רק לאיחוד שירותי אימות הזהות של עומסי העבודה יש גישה למפתח הפרטי.
gcloud iam workload-identity-pools providers keys describe KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global \ --format "value(keyData.key)" \ > CERTIFICATE_PATH
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה CERTIFICATE_PATH: הנתיב שבו האישור ייכתב. לדוגמה:saml-certificate.cerאוsaml-certificate.pem
הגדרת ה-IdP שתואם ל-SAML 2.0 להנפקה של טענות נכונות (assertions) מוצפנות של SAML
- מעבירים את קובץ האישור לשרת AD FS.
- בשרת AD FS, לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
-
ב-PowerShell, מריצים את הפקודה הבאה כדי להפעיל את ההצפנה:
Set-AdfsRelyingPartyTrust ` -TargetName NAME ` -SamlResponseSignature MessageAndAssertion ` -EncryptionCertificate PATH ` -EncryptClaims $Trueמחליפים את הערכים בשדות הבאים:
NAME: שם האמון של הצד הנסמך-
PATH: הנתיב של קובץ האישור
משתמשי WS-Trust: התכונה זמינה רק כשמשתמשים ב-SAML.
אחרי שמגדירים את IdP להצפנת טענות נכונות (assertions) של SAML, מומלץ לבדוק שטענות הנכונות (assertions) שנוצרות הן אכן מוצפנות. גם כשמוגדרת הצפנת טענות נכונות (assertions) של SAML, איחוד שירותי אימות הזהות של עומסי עבודה עדיין יכול לעבד טענות נכונות (assertions) בטקסט ללא הצפנה.
מחיקת מפתחות ההצפנה של איחוד שירותי אימות הזהות של עומסי עבודה
כדי למחוק מפתחות הצפנה של SAML, צריך להריץ את הפקודה הבאה:gcloud iam workload-identity-pools providers keys delete KEY_ID \ --workload-identity-pool WORKLOAD_POOL_ID \ --provider WORKLOAD_PROVIDER_ID \ --location global
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_ID: שם המפתח -
WORKLOAD_POOL_ID: מזהה המאגר -
WORKLOAD_PROVIDER_ID: המזהה של ספק מאגר הזהויות של כוח העבודה
באילו אלגוריתמים אפשר להשתמש להצפנה ב-SAML
איחוד שירותי אימות הזהות של עומסי עבודה תומך באלגוריתמים הבאים לתעבורת מפתחות:
- http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p
- http://www.w3.org/2009/xmlenc11#rsa-oaep"
- http://www.w3.org/2001/04/xmlenc#rsa-1_5"
איחוד שירותי אימות הזהות של עומסי עבודה תומך באלגוריתמים הבאים של הצפנת בלוקים:
אופציונלי: הפעלת הצפנה ב-SAML
טענות נכוֹנוּת (assertion) של SAML שמונפקות על ידי AD FS חתומות באופן קריפטוגרפי ומועברות דרך ערוץ TLS מוצפן. עם זאת, הצהרות ה-SAML עצמן לא מוצפנות. באמצעות הצפנה של SAML, אפשר להגדיר את AD FS להצפנת טענות נכוֹנוּת (assertions) כך שרק מאגר הזהויות של כוח העבודה יוכל לפענח ולקרוא אותן.
OIDC
התכונה הזו זמינה רק כשמשתמשים ב-SAML.
SAML או WS-Trust
יוצרים מפתח הצפנה לספק מאגר הזהויות של כוח העבודה:
gcloud iam workload-identity-pools providers keys create rsa2048 \ --workload-identity-pool=POOL_ID \ --provider=WORKLOAD_PROVIDER_ID \ --location=global \ --use=ENCRYPTION \ --spec=RSA_2048מחליפים את מה שכתוב בשדות הבאים:
-
WORKLOAD_PROVIDER_ID: מזהה הספק. -
POOL_ID: מזהה המאגר.
זוג המפתחות מאוחסן ומנוהל על ידי איחוד שירותי אימות הזהות של עומסי עבודה. אפשר לייצא את המפתח הציבורי, אבל רק לאיחוד שירותי אימות הזהות של עומסי העבודה יש גישה למפתח הפרטי.
-
מייצאים אישור שמכיל את המפתח הציבורי:
gcloud iam workload-identity-pools providers keys describe rsa2048 \ --workload-identity-pool=POOL_ID \ --provider=WORKLOAD_PROVIDER_ID \ --location=global \ --format="value(keyData.key)" > workload-identity-federation.cerמעבירים את קובץ האישור לשרת AD FS.
בשרת AD FS, לוחצים לחיצה ימנית על Start ואז לוחצים על Windows PowerShell (Admin).
ב-PowerShell, משנים את אמון הצד הנסמך כך שישתמש בהצפנה:
Set-AdfsRelyingPartyTrust ` -TargetName NAME ` -SamlResponseSignature MessageAndAssertion ` -EncryptionCertificate PATH ` -EncryptClaims $True
מחליפים את מה שכתוב בשדות הבאים:
NAME: שם האמון של הצד הנסמך-
PATH: הנתיב של קובץ האישור
אימות של עומס עבודה
צריך לבצע את ההוראות האלה פעם אחת לכל עומס עבודה.
מתן הרשאה לעומס העבודה החיצוני לגשת למשאבים של Cloud de Confiance
כדי להעניק לעומס העבודה גישה למשאבים של Cloud de Confiance , מומלץ להעניק לישות העיקרית גישה ישירה למשאבים. במקרה הזה, הגורם המרכזי הוא המשתמש המאוחד. יש Cloud de Confiance מוצרים עם מגבלות של Google Cloud API. אם עומס העבודה קורא לנקודת קצה ל-API שיש לה מגבלה, אפשר במקום זאת להשתמש בהתחזות לחשבון שירות. במקרה הזה, חשבון המשתמש הואCloud de Confiance חשבון השירות, שמשמש כזהות. מעניקים גישה לחשבון השירות במשאב.
גישה ישירה למשאבים
אפשר להעניק גישה לזהות מאוחדת ישירות למשאבים באמצעות מסוף Cloud de Confiance או ה-CLI של gcloud.
המסוף
כדי להשתמש במסוף Cloud de Confiance כדי להעניק תפקידי IAM ישירות למשאב, צריך לעבור לדף של המשאב ואז להעניק את התפקיד. בדוגמה הבאה מוסבר איך לעבור לדף Cloud Storage ולהעניק את התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) ישירות בקטגוריה של Cloud Storage לזהות מאוחדת.
- במסוף Cloud de Confiance , נכנסים לדף Buckets של Cloud Storage.
ברשימת הקטגוריות, לוחצים על שם הקטגוריה שבה רוצים להעניק את התפקיד.
לוחצים על הכרטיסייה Permissions בחלק העליון של הדף.
לוחצים על הלחצן add_boxGrant access.
מופיעה תיבת הדו-שיח Add principals.
בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לקטגוריה.
לפי נושא
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
SUBJECT: הנושא האישי שמופה מה-IdP, לדוגמה:administrator@example.com
לפי קבוצה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
GROUP: הקבוצה שמופה מה-IdP (לדוגמה:administrator-group@example.com).
לפי תכונה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
ATTRIBUTE_NAME: אחד מהמאפיינים שמופו מה-IdP -
ATTRIBUTE_VALUE: הערך של המאפיין
-
בוחרים תפקיד (או תפקידים) בתפריט הנפתח Select a rol. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
לוחצים על Save.
gcloud
כדי להשתמש ב-CLI של gcloud כדי להקצות תפקידי IAM למשאב בפרויקט, מבצעים את הפעולות הבאות:
מקבלים את מספר הפרויקט שבו מוגדר המשאב.
gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
הענקת גישה למשאב.
כדי להשתמש ב-CLI של gcloud כדי להעניק את התפקיד Storage Object Viewer (
roles/storage.objectViewer) לזהויות חיצוניות שעומדות בקריטריונים מסוימים, מריצים את הפקודה הבאה.לפי נושא
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"לפי קבוצה
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"לפי תכונה
gcloud storage buckets add-iam-policy-binding BUCKET_ID \ --role=roles/storage.objectViewer \ --member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_ID: הקטגוריה שרוצים לתת לה גישה -
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה -
SUBJECT: הערך הצפוי של המאפיין שמיפיתם ל-google.subject -
GROUP: הערך הצפוי של המאפיין שמיפיתם ל-google.groups -
ATTRIBUTE_NAME: השם של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם -
ATTRIBUTE_VALUE: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
אפשר להקצות תפקידים לכל Cloud de Confiance משאב שתומך במדיניות הרשאות של IAM.
-
התחזות לחשבון שירות
כדי ליצור חשבון שירות לעומס העבודה החיצוני, מבצעים את הפעולות הבאות:
מפעילים את ממשקי ה-API IAM, Security Token Service ו-Service Account Credentials.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםיצירת חשבון שירות שמייצג את עומס העבודה. מומלץ להשתמש בחשבון שירות ייעודי לכל עומס עבודה. חשבון השירות לא חייב להיות באותו פרויקט כמו מאגר הזהויות של עומסי העבודה, אבל אתם צריכים להפנות לפרויקט שמכיל את חשבון השירות.
הענקת גישה לחשבון השירות למשאבים שאליהם רוצים שלזהויות חיצוניות תהיה גישה.
כדי לאפשר לזהות המאוחדת להתחזות לחשבון השירות, מבצעים את הפעולות הבאות:
המסוף
כדי להשתמש במסוף Cloud de Confiance כדי להעניק תפקידי IAM לזהות מאוחדת עם חשבון שירות, מבצעים את הפעולות הבאות:
חשבון שירות באותו פרויקט
כדי לתת גישה באמצעות התחזות לחשבון שירות שנמצא באותו פרויקט, מבצעים את הפעולות הבאות:
עוברים לדף Workload Identity Pools.
לוחצים על הענקת גישה.
בתיבת הדו-שיח Grant access to service account, בוחרים באפשרות Grant access using Service Account impersonation.
ברשימה Service accounts, בוחרים את חשבון השירות שאליו הזהויות החיצוניות יתחזו, ומבצעים את הפעולות הבאות:
כדי לבחור אילו זהויות מהמאגר יכולות להתחזות לחשבון השירות, מבצעים את אחת מהפעולות הבאות:
כדי לאפשר רק לזהויות ספציפיות ממאגר הזהויות של עומסי העבודה להתחזות לחשבון השירות, בוחרים באפשרות Only identities matching the filter.
ברשימה שם מאפיין, בוחרים את המאפיין שרוצים לסנן לפיו.
בשדה Attribute value, מזינים את הערך הצפוי של המאפיין; לדוגמה, אם משתמשים במיפוי מאפיין
google.subject=assertion.sub, מגדירים את Attribute name ל-subjectואת Attribute value לערך של ההצהרהsubבאסימונים שהונפקו על ידי ספק הזהויות החיצוני.
כדי לשמור את ההגדרות, לוחצים על Save ואז על Dismiss.
חשבון שירות בפרויקט אחר
כדי לתת גישה באמצעות התחזות לחשבון שירות בחשבון שירות בפרויקט אחר, מבצעים את הפעולות הבאות:
עוברים לדף Service Accounts.
בוחרים את חשבון השירות שרוצים להתחזות אליו.
לוחצים על ניהול הגישה.
לוחצים על Add principal.
בשדה New principal, מזינים אחד ממזהי הגורמים המורשים הבאים של הזהויות במאגר שיתחזו לחשבון השירות.
לפי נושא
principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECTמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
SUBJECT: הנושא האישי שמופה מה-IdP, לדוגמה:administrator@example.com
לפי קבוצה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUPמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
GROUP: הקבוצה שמופה מה-IdP (לדוגמה:administrator-group@example.com).
לפי תכונה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה -
ATTRIBUTE_NAME: אחד מהמאפיינים שמופו מה-IdP -
ATTRIBUTE_VALUE: הערך של המאפיין
לפי בריכה
principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/*מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: מספר הפרויקט -
WORKLOAD_POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה
-
ברשימת התפקידים Select a role בוחרים את התפקיד Workload Identity User (
roles/iam.workloadIdentityUser).כדי לשמור את ההגדרות, לוחצים על Save.
gcloud
כדי להקצות את התפקיד Workload Identity User (roles/iam.workloadIdentityUser) לחשבון משתמש מאוחד או לקבוצת חשבונות משתמשים מאוחדים, מריצים את הפקודה הבאה. מידע נוסף על מזהי ישויות מורשות של איחוד שירותי אימות הזהות של עומסי עבודה זמין במאמר סוגי חשבון משתמש.
לפי נושא
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT"לפי קבוצה
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/group/GROUP"לפי תכונה
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
--role=roles/iam.workloadIdentityUser \
--member="principalSet://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/attribute.ATTRIBUTE_NAME/ATTRIBUTE_VALUE"מחליפים את מה שכתוב בשדות הבאים:
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות-
PROJECT_NUMBER: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי העבודה. -
POOL_ID: מזהה מאגר הזהויות של עומסי העבודה -
SUBJECT: הערך הצפוי של המאפיין שמיפיתם ל-google.subject -
GROUP: הערך הצפוי של המאפיין שמיפיתם ל-google.groups -
ATTRIBUTE_NAME: השם של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם -
ATTRIBUTE_VALUE: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים שלכם
הגדרות אישיות של פרטי הכניסה
אתם יכולים לאפשר לספריות לקוח של Cloud ולכלים כמו ה-CLI של gcloud ו-Terraform להשתמש בפרטי הכניסה של Active Directory כדי לבצע אימות ב- Cloud de Confiance באמצעות Workload Authenticator for Windows.
Workload Authenticator for Windows הוא כלי בקוד פתוח שמשמש כפלאגין של ספריות לקוח של Cloud, וכלים כמו ה-CLI של gcloud:
- כשהכלי או הספרייה צריכים פרטי כניסה חדשים, מתבצעת הפעלה ברקע של Workload Authenticator.
- Workload Authenticator משתמש ב-OIDC, ב-SAML או ב-WS-Trust כדי לקבל אסימון חדש או טענת נכונות (assertion) של SAML מ-AD FS, ומחזיר אותו לכלי או לספרייה.
- לאחר מכן הכלי או הספרייה מחליפים את האסימון או את טענת הנכונות (assertion) של SAML ב Cloud de Confiance פרטי כניסה לטווח קצר באמצעות איחוד שירותי אימות הזהות של עומסי עבודה.
כדי להשתמש ב-Workload Authenticator for Windows, צריך ליצור קובץ תצורה של פרטי כניסה. הקובץ יגדיר את הפרטים הבאים:
- המיקום של קובץ ההפעלה של Workload Authenticator for Windows (
wwauth.exe), והפרמטרים שצריך להריץ איתו - מאגר וספק הזהויות של כוח עבודה שבהם צריך להשתמש
- חשבון השירות שצריך להתחזות אליו
כדי ליצור קובץ תצורה של פרטי כניסה, צריך לבצע את הפעולות הבאות בשרת Windows שמריץ את עומס העבודה:
- לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell.
מורידים את Workload Authenticator for Windows ושומרים אותו במיקום שעומס העבודה יכול לגשת אליו:
(New-Object Net.WebClient).DownloadFile( "https://github.com/GoogleCloudPlatform/iam-windows-authenticator/releases/latest/download/wwauth.exe", "${env:ProgramData}\wwauth.exe")אם תיצרו קובץ תצורה של פרטי כניסה באמצעות Workload Authenticator for Windows, הקובץ יכיל את הנתיב לקובץ ההפעלה שלו. אם תמחקו או תעבירו את קובץ ההפעלה מאוחר יותר, עומסי העבודה לא יוכלו למצוא את קובץ ההפעלה ולהשתמש בו.
הפעלה של
wwauth.exe:& ${env:ProgramData}\wwauth.exeנפתחת תיבת דו-שיח של הגדרות:

בוחרים בכרטיסייה AD FS ומזינים את ההגדרות הבאות:
Issuer URI of AD FS server: ה-URI הציבורי של השרת או החווה של AD FS.
https://ADFS_DOMAIN/adfs/
מחליפים את
ADFS_DOMAINבשם הדומיין הציבורי של שרת או חוות השרתים של AD FS.
ההגדרות הבאות תלויות בפרוטוקול שבו רוצים להשתמש:
OIDC
- Protocol: AdfsOidc
- Relying party ID: שומרים את ברירת המחדל.
- Client ID – מזהה הלקוח (Client ID) של אפליקציית השרת ב-AD FS.
SAML
- Protocol: AdfsSamlPost
- Assertion consumer service URL:
https://sts.googleapis.com/v1/token. - Sign requests using certificate: disabled
WS-Trust
- Protocol: AdfsWsTrust
בוחרים את הכרטיסייה Workload Identity ומזינים את ההגדרות הבאות:
- Project number: מספר הפרויקט שמכיל את מאגר הזהויות של עומסי עבודה
- Pool ID: מזהה של מאגר זהויות של עומסי עבודה
- Provider ID: המזהה של ספק מאגר הזהויות של עומסי העבודה
- Impersonate service account: enabled, if you use service account impersonation
- Email address: כתובת האימייל של חשבון השירות, אם משתמשים בהתחזות לחשבון שירות
בוחרים בכרטיסייה AD FS ומוודאים שהשדה Relying Party ID מכיל עכשיו את כתובת ה-URL של ספק מאגר הזהויות של כוח העבודה.
לוחצים על Apply ובוחרים את מיקום הקובץ שבו יישמר קובץ התצורה של פרטי הכניסה.
בניגוד למפתח של חשבון שירות, קובץ תצורה של פרטי כניסה לא מכיל סודות כלשהם ואין צורך לשמור אותו בסודיות. פרטים לגבי קובץ התצורה של פרטי הכניסה מופיעים בכתובת https://google.aip.dev/auth/4117.
עכשיו אפשר לבדוק את ההגדרות:
בוחרים משתמש Active Directory שאיתו תתבצע הבדיקה. הוא יכול להיות המשתמש ב-Active Directory של עומס העבודה או המשתמש שאיתו מחוברים כרגע.
כדי לבדוק את התצורה עם המשתמש הנוכחי, לוחצים על Test.
כדי לבדוק עם משתמש אחר, בוחרים Test > Test configuration as user ומזינים את פרטי הכניסה של המשתמש.
הכלי עכשיו מנסה לבצע אימות ב- Cloud de Confiance באמצעות השלבים הבאים:
- קבלת אסימון OIDC או טענת נכונות (assertion) של SAML מ-AD FS.
- קבלת אסימון מהממשק Security Token Service של Google.
- התחזות לחשבון השירות, אם משתמשים בהתחזות לחשבון שירות.
אם האימות יצליח, תופיע ההודעה Test completed successfully:

שימוש בהגדרות פרטי הכניסה כדי לקבל גישה אל Cloud de Confiance
כדי לאפשר לכלים ולספריות לקוח להשתמש בתצורת פרטי הכניסה, צריך לבצע את הפעולות הבאות בשרת Windows שמריץ את עומס העבודה:
- לוחצים לחיצה ימנית על Start ואז על Run.
- מזינים
sysdm.cplולוחצים על OK. - בכרטיסייה Advanced, לוחצים על Environment variables.
בקטע System variables, מוסיפים שני משתנים חדשים:
Name Value GOOGLE_APPLICATION_CREDENTIALSנתיב לקובץ התצורה של פרטי הכניסה GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES1מומלץ מאוד לערוך את קובץ התצורה של פרטי הכניסה ולהשתמש בנקודת קצה אזורית של שירות אסימוני אבטחה, אם היא זמינה.
לוחצים על OK.
משתמשים בספריית לקוח או בכלי שתומכים באיחוד שירותי אימות הזהות של עומסי עבודה, ויכולים למצוא פרטי כניסה באופן אוטומטי:
C++
ספריות הלקוח של C++Cloud de Confiance תומכות באיחוד שירותי אימות הזהות של עומסי עבודה החל מגרסה v2.6.0. כדי להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה, צריך ליצור את ספריות הלקוח ב-gRPC בגרסה 1.36.0 ואילך.
המשך
ספריות לקוח ל-Go תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם נעשה בהן שימוש במודול
golang.org/x/oauth2בגרסה v0.0.0-20210218202405-ba52d332ba99 ואילך.כדי לבדוק באיזו גרסה של המודול הזה נעשה שימוש בספריית הלקוח, מפעילים את הפקודות האלה:
cd $GOPATH/src/cloud.google.com/go go list -m golang.org/x/oauth2Java
ספריות לקוח של Java תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם הן משתמשות בארטיפקט
com.google.auth:google-auth-library-oauth2-httpבגרסה 0.24.0 ואילך.כדי לבדוק באיזו גרסה של הארטיפקט הזה נעשה שימוש בספריית הלקוח, בספרייה של האפליקציה מפעילים את פקודת Maven הזאת:
mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-httpNode.js
ספריות לקוח של Node.js תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם הן משתמשות בגרסה 7.0.2 ואילך של חבילת
google-auth-library.כדי לבדוק באיזו גרסה של החבילה הזאת נעשה שימוש בספריית הלקוח, בספרייה של האפליקציה מפעילים את פקודת Maven הזאת:
npm list google-auth-libraryכשיוצרים אובייקט
GoogleAuth, אפשר לציין מזהה פרויקט או לאפשר ל-GoogleAuthלאתר את מזהה הפרויקט באופן אוטומטי. כדי לאתר את מזהה הפרויקט באופן אוטומטי, צריך להקצות לחשבון השירות בקובץ התצורה את התפקיד דפדפן (roles/browser) או תפקיד עם הרשאות דומות בפרויקט. לפרטים נוספים, ראוREADMEלחבילתgoogle-auth-library.Python
ספריות לקוח של Python תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם הן משתמשות בחבילת
google-authבגרסה 1.27.0 ואילך.כדי לבדוק באיזו גרסה של החבילה הזאת נעשה שימוש בספריית הלקוח, בסביבה שהחבילה מותקנת בה מפעילים את הפקודה:
pip show google-authכדי לציין מזהה פרויקט ללקוח האימות, תוכלו להגדיר את משתנה הסביבה
GOOGLE_CLOUD_PROJECTאו לאפשר ללקוח למצוא את מזהה הפרויקט באופן אוטומטי. כדי לאתר את מזהה הפרויקט באופן אוטומטי, צריך להקצות לחשבון השירות בקובץ התצורה את התפקיד דפדפן (roles/browser) או תפקיד עם הרשאות דומות בפרויקט. לפרטים נוספים, ראו מדריך למשתמש לחבילתgoogle-auth.gcloud
כדי לבצע אימות באמצעות איחוד שירותי אימות הזהות של עומסי עבודה, משתמשים בפקודה
gcloud auth login:gcloud auth login --cred-file=FILEPATH.json
מחליפים את
FILEPATHבנתיב לקובץ התצורה של פרטי הכניסה.ב-CLI של gcloud יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה ב-CLI של gcloud בגרסה 363.0.0 ואילך.
Terraform
יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה אם משתמשים בספקCloud de Confiance בגרסה 3.61.0 ואילך:
terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.61.0" } } }BQ
כדי לבצע אימות באמצעות איחוד שירותי אימות הזהויות של עומסי עבודה, משתמשים בפקודה
gcloud auth login:gcloud auth login --cred-file=FILEPATH.json
מחליפים את
FILEPATHבנתיב לקובץ התצורה של פרטי הכניסה.ב-bq, יש תמיכה באיחוד שירותי אימות הזהויות של עומסי עבודה ב-CLI של gcloud בגרסה 390.0.0 ואילך.