הגדרה של איחוד שירותי אימות הזהות של עומסי עבודה באמצעות Active Directory

במדריך הזה מוסבר איך להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לאפשר לעומסי עבודה להשתמש בפרטי הכניסה של Active Directory כדי לבצע אימות ל- Google Cloud.

אם מריצים עומסי עבודה של Windows Server בסביבת Active Directory, לעומסי העבודה עשויה להיות גישה לפרטי כניסה של Active Directory. לדוגמה:

  • ייתכן ששירות Windows מוגדר להתחברות כמשתמש בדומיין.
  • ייתכן שאפליקציית IIS מוגדרת לרוץ כחשבון שירות מנוהל באופן קבוצתי (gMSA).

שימוש באיחוד שירותי אימות הזהויות של עומסי עבודה בשילוב עם Active Directory Federation Services (AD FS), מאפשר לעומסי העבודה להמיר את פרטי הכניסה שלהם ב-Kerberos של Active Directory בפרטי כניסה לטווח קצר של Google Cloud . עומסי העבודה יכולים להשתמש בפרטי הכניסה לטווח קצר כדי לקבל גישה ל- Google CloudAPIs.

ההחלפה של פרטי כניסה של Active Directory בפרטי כניסה לטווח קצר של Google Cloud עובדת על-ידי שרשור של שתי המרות אסימונים:

  1. עומס עבודה משתמש ב-OpenID Connect (OIDC), ב-SAML-POST או ב-WS-Trust כדי לבקש אסימון OIDC או טענת נכונות (assertion) של SAML מ-AD FS. כדי לבצע אימות ל-AD FS, עומס העבודה משתמש באימות Windows משולב (IWA) ובפרטי הכניסה שלו שקיימים ב-Active Directory.
  2. לאחר מכן עומס העבודה משתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי להמיר את אסימון ה-OIDC או את טענת הנכונות (assertion) של SAML באסימון של 'שירות אסימוני אבטחה', ובאופן אופציונלי כדי להתחזות ל Google Cloud חשבון שירות.

במאמר הזה מוסבר איך להפוך את התהליך לאוטומטי, כדי שלא יהיה צורך לבצע שינויים באפליקציה באמצעות 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, צריך לבצע את הפעולות הבאות:

OIDC

כדי לאפשר לעומסי עבודה להשתמש ב-OIDC, צריך שני רישומי אפליקציה ב-AD FS:

  • רישום אפליקציה מסוג אפליקציית נייטיב או אפליקציית שרת.

  • רישום אפליקציה מסוג Web API שתואם לספק מאגר זהויות של עומסי עבודה ב- Google Cloud.

רישום אפליקציית הלקוח

צריך ליצור אפליקציית לקוח שמייצגת את עומס העבודה. אם יש מספר עומסי עבודה שצריכים גישה ל- Google Cloud, יכול להיות שצריך ליצור מספר אפליקציות לקוח.

כדי לרשום אפליקציית לקוח ב-AD FS, מבצעים את הפעולות הבאות:

  1. פותחים את ההצמדה של MMC ל-AD FS ועוברים אל Application Groups.
  2. לוחצים על Add application group.
  3. בדף Welcome, מבצעים את הפעולות הבאות:

    1. בשדה הטקסט, מזינים שם של הלקוח.
    2. בוחרים Server application.
    3. לוחצים על Next.
  4. בדף Server application, מבצעים את הפעולות הבאות:

    1. בשדה הטקסט text-field מזינים מזהה לקוח (Client ID) והפניה אוטומטית לכתובת URI אחרת.

      אם מתכננים להשתמש רק בסוג הענקה client_credentials, לא ייעשה שימוש בהפניה האוטומטית לכתובת URI אחרת ואפשר להשתמש ב-URI כמו http://localhost/.

    2. לוחצים על Next.

  5. בדף Configure application credentials, מבצעים את הפעולות הבאות:

    1. בוחרים איך הלקוח יבצע אימות. כדי להשתמש ב-IWA, מגדירים את Windows Integrated Authentication ל-enabled.
    2. בוחרים את משתמש הדומיין שהאפליקציה מוגדרת לרוץ בשמו.
    3. לוחצים על Next.
  6. בדף Summary, בודקים את ההגדרות ולוחצים על Next.

  7. לוחצים על Close כדי לסגור את תיבת הדו-שיח.

יצירת אפליקציה של Web API למאגר הזהויות של כוח העבודה

צריך ליצור רישום נוסף של אפליקציה מסוג Web API. האפליקציה הזו תואמת לספק של מאגר זהויות של עומסי עבודה, ומשתמשים בה כדי להגדיר יחסי אמון עם Google Cloud.

כדי ליצור את האפליקציה ב-AD FS, מבצעים את הפעולות הבאות:

  1. פותחים את ההצמדה של MMC ל-AD FS ועוברים אל Application Groups.
  2. לוחצים על Add application group.
  3. בדף Welcome מזינים שם כמו Workload Identity Federation (test environment), ובוחרים Web API. לאחר מכן לוחצים על Next.
  4. בדף 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: מספר הפרויקט של Google Cloud הפרויקט שבו אתם משתמשים כדי ליצור מאגר זהויות של כוח עבודה.
    • WORKLOAD_POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של כוח העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר הזהויות של כוח העבודה.
    • WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של כוח העבודה. מאוחר יותר כשיוצרים את מאגר הזהויות של כוח העבודה, צריך להשתמש באותו מזהה.

    סידור ה-URI בצורה כזו מבטיח שמזהה הצד הנסמך יזהה באופן ייחודי ספק של מאגר זהויות של כוח עבודה.

    צריך לדעת את המזהה של הצד הנסמך מאוחר יותר כשתגדירו את ספק מאגר הזהויות של כוח העבודה.

  5. לוחצים על Next.

  6. בדף Apply access control policy, בוחרים את מדיניות הגישה המתאימה ולוחצים על Next.

  7. בדף Configure application permissions מוסיפים את אפליקציית הלקוח שיצרתם מוקדם יותר. לאחר מכן לוחצים על Next.

  8. בדף Summary, בודקים את ההגדרות ולוחצים על Next.

  9. לוחצים על Close כדי לסגור את תיבת הדו-שיח.

SAML או WS-Trust

יצירת אמון צד נסמך ב-AD FS:

  1. פותחים את הצמדת ה-MMC ל-AD FS.
  2. עוברים אל Relying party trusts.
  3. לוחצים על Add relying party trust.
  4. בדף Welcome של האשף Add relying party trust, מבצעים את הפעולות הבאות:
    1. בוחרים Claims aware
    2. לוחצים על Start.
  5. בדף Select data source מבצעים את הפעולות הבאות:
    1. בוחרים Enter data about the relying party manually.
    2. לוחצים על Next.
  6. בדף Specify display name, מבצעים את הפעולות הבאות:

    1. מזינים שם לאמון.
    2. לוחצים על Next.
  7. בדף Configure certificate, לוחצים על Next. איחוד שירותי אימות הזהויות של עומסי עבודה תומך ב-SAML מוצפן, אבל הוא לא מתואר בתהליך הזה. למידע נוסף, אפשר לעיין בהוראות של ה-CLI של gcloud בחלק יצירת המאגר והספק של הזהויות שמופיע בהמשך המדריך.

  8. בדף Configure URL, מבצעים את הפעולות הבאות:

    SAML

    משתמשים בהגדרות הבאות:

    • מגדירים את Enable support for the SAML 2.0 WebSSO protocol ל-enabled
    • בשדה Relying party SAML 2.0 SSO service URL, מזינים את כתובת ה-URL הבאה:

      https://sts.googleapis.com/v1/token
      

    WS-Trust

    שמירת הגדרות ברירת המחדל

  9. לוחצים על Next.

  10. בדף Configure identifiers, מזינים מזהה של צד נסמך.

    במקום להגדיר מזהה צד נסמך בהתאמה אישית, אפשר להשתמש ב-URI הבא כמזהה של גורם נסמך:

    https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/WORKLOAD_POOL_ID/providers/WORKLOAD_PROVIDER_ID
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NUMBER: מספר הפרויקט של Google Cloud הפרויקט שבו אתם משתמשים כדי ליצור מאגר זהויות של כוח עבודה.
    • WORKLOAD_POOL_ID: מזהה לבחירתכם, שמזהה את מאגר הזהויות של כוח העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו את מאגר הזהויות של כוח העבודה.
    • WORKLOAD_PROVIDER_ID: מזהה לבחירתכם, שמזהה את ספק מאגר הזהויות של כוח העבודה. בהמשך תצטרכו להשתמש במזהה הזה כשתיצרו ספק של מאגר זהויות של כוח העבודה.

    סידור ה-URI בצורה כזו מבטיח שמזהה הצד הנסמך יזהה באופן ייחודי ספק של מאגר זהויות של כוח עבודה.

    צריך לדעת את המזהה של הצד הנסמך מאוחר יותר כשתגדירו את ספק מאגר הזהויות של כוח העבודה.

  11. לוחצים על Next.

  12. בדף Choose access control policy, בוחרים את מדיניות הגישה המתאימה ולוחצים על Next.

  13. בדף Ready to add trust, בודקים את ההגדרות ולוחצים על Next.

  14. בדף Finish, לוחצים על Close כדי לסגור את תיבת הדו-שיח.

כדי שתהיה תאימות עם איחוד שירותי אימות הזהות של עומסי עבודה, צריך לכלול בטענות נכונות (assertions) של SAML לפחות הצהרה אחת שמזהה באופן ייחודי את משתמש ה-Active Directory. בדרך כלל, משתמשים לשם כך בהצהרה מזהה שם שתואמת לערך של הרכיב NameID בטענת הנכונות (assertion) של SAML.

כדי להתאים אישית את קבוצת ההצהרות של טענות הנכונות (assertions) של SAML, צריך לערוך את מדיניות הפקת ההצהרות של אמון הצד הנסמך. כדי לערוך את מדיניות הפקת ההצהרות, צריך לבצע את הפעולות הבאות:

  1. ברשימת האמון של צדדים נסמכים, בוחרים את האמון שיצרתם עכשיו ולוחצים על Edit claim issuance policy.
  2. לוחצים על Add rule
  3. בדף Choose rule type של האשף Add transform claim rule, מבצעים את הפעולות הבאות:
    1. בוחרים Transform an incoming claim.
    2. לוחצים על Next.
  4. בדף Configure claim rule, קובעים את ההגדרות הבאות:

    • Claim rule name: Name Identifier.
    • Incoming claim type: בוחרים Primary SID, ‏UPN או הצהרה אחרת כדי לזהות את הנושא באופן ייחודי.
    • Outgoing claim type: ‏Name ID.
    • Outgoing name ID format: ‏Unspecified.
  5. בוחרים Pass through all claim values ולוחצים על Finish.

  6. אפשר גם להגדיר כללים נוספים כך שיכללו מאפיינים נוספים בטענות הנכונות (assertions) של SAML.

  7. לוחצים על OK כדי לסגור את תיבת הדו-שיח של מדיניות הפקת ההצהרות.

הגדרת איחוד שירותי אימות הזהות של עומסי עבודה

צריך לבצע את השלבים האלה פעם אחת לכל דומיין של Microsoft Active Directory שרוצים לבצע איתו איחוד. לאחר מכן תוכלו להשתמש באותו מאגר ובאותו ספק זהויות של כוח עבודה בכמה עומסי עבודה ובכמה פרויקטים שלGoogle Cloud .

כדי להתחיל בהגדרה של איחוד שירותי אימות הזהות של עומסי עבודה, מבצעים את הפעולות הבאות:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. עדיף להשתמש בפרויקט ייעודי לניהול ספקים ומאגרי זהויות של עומסי עבודה.
  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the IAM, Resource Manager, Service Account Credentials, and Security Token Service APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

הגדרת מיפוי של מאפיין ותנאי

פרטי הכניסה הספציפיים לסביבה של עומס העבודה ב-Active Directory מכילים מספר מאפיינים, וצריך להחליט באיזה מאפיין רוצים להשתמש כמזהה הנושא (google.subject) ב- Google Cloud.

אפשר גם למפות מאפיינים נוספים (אופציונלי). לאחר מכן אפשר להפנות למאפיינים נוספים אלו כשמעניקים גישה למשאבים.

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

אפשר להשתמש בתנאי למאפיין כדי להגביל את הלקוחות שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבל אסימוניGoogle Cloud לטווח קצר.

לדוגמה, התנאי הבא מגדיר שהאפליקציות צריכות להשתמש ב-IWA כדי לאמת מול AD FS:

assertion.authmethod=='http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/windows'

כדי לשלוט ברשימת האפליקציות שיכולות לקבל פרטי כניסה לטווח קצר ל- Google Cloud, לא מגדירים תנאים למאפיינים. במקום זאת, משתמשים בהרשאות לקוח ב-AD FS כדי להגדיר אילו אפליקציות מורשות.

SAML או WS-Trust

אפשר להשתמש בתנאי למאפיין כדי להגביל את המשתמשים ב-Active Directory שיכולים להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה כדי לקבלGoogle Cloud אסימונים לטווח קצר.

לדוגמה, התנאי הבא מאפשר רק טענות נכונות (assertions) של SAML שכוללות הצהרה מסוימת על חברות בקבוצה:

"S-1-5-6" in google.groups

יצירת מאגר וספק הזהויות של כוח העבודה

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרה של איחוד זהויות של עומסי עבודה, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

לחלופין, התפקיד הבסיסי 'בעלים' ב-IAM (roles/owner) כולל גם הרשאות להגדרה של איחוד שירותי אימות הזהות. אסור להקצות תפקידים בסיסיים בסביבת ייצור, אבל אפשר להקצות אותם בסביבת פיתוח או בדיקה.

המסוף

  1. במסוף Google Cloud , עוברים לדף New workload provider and pool.

    לדף New workload provider and pool

  2. בקטע Create an identity pool, מזינים את הפרטים הבאים:

    • Name: השם של המאגר. השם משמש גם כמזהה המאגר. אי אפשר לשנות את מזהה המאגר בשלב מאוחר יותר.
    • Description: טקסט שמתאר את המטרה של המאגר.
  3. לוחצים על Continue.

  4. קובעים את הגדרות הספק:

    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.

  5. לוחצים על Continue.

  6. בקטע Configure provider attributes, מוסיפים את מיפויי המאפיינים שזיהיתם קודם לכן.

  7. בקטע Attribute conditions, מזינים את התנאי למאפיין שזיהיתם קודם לכן. אם אין תנאי למאפיין, השאירו את השדה ריק.

  8. לוחצים על Save כדי ליצור את הספק ואת מאגר הזהויות של כוח העבודה.

gcloud

  1. יוצרים מאגר זהויות חדש של כוח עבודה:

    gcloud iam workload-identity-pools create WORKLOAD_POOL_ID \
        --location="global" \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    מחליפים את הערכים בשדות הבאים:

    • WORKLOAD_POOL_ID: מזהה ייחודי של המאגר.
    • DISPLAY_NAME: שם המאגר.
    • DESCRIPTION: תיאור המאגר. התיאור מופיע כשמעניקים גישה לזהויות במאגר.
  2. הוספת ספק מאגר זהויות של כוח עבודה:

    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"
    

    מחליפים את הערכים בשדות הבאים:

    התוספת לשם המאפיין 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"
    

    מחליפים את הערכים בשדות הבאים:

    התוספת לשם המאפיין 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 מוצפן.
    שימו לב שגם אם תגדירו מפתחות של ספק הצפנת SAML, איחוד שירותי אימות הזהות של עומסי עבודה עדיין יוכל לעבד טענת נכונות (assertions) של טקסט ללא הצפנה.

    יצירת מפתחות הצפנה של טענות נכונות (assertions) של SAML לאיחוד שירותי אימות הזהות של עומסי עבודה

    הקטע מסביר איך ליצור זוג מפתחות אסימטריים שמאפשר לאיחוד שירותי אימות הזהות של עומסי עבודה לקבל טענות נכונות (assertions) מוצפנות של SAML.

    Google Cloud משתמש במפתח הפרטי כדי לפענח את טענות הנכונות (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

    1. מעבירים את קובץ האישור לשרת AD FS.
    2. בשרת AD FS, לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell (Admin).
    3. ב-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

    איחוד שירותי אימות הזהות של עומסי עבודה תומך באלגוריתמים הבאים לתעבורת מפתחות:

    איחוד שירותי אימות הזהות של עומסי עבודה תומך באלגוריתמים הבאים של הצפנת בלוקים:

אופציונלי: הפעלת הצפנה ב-SAML

טענות נכוֹנוּת (assertion) של SAML שמונפקות על ידי AD FS חתומות באופן קריפטוגרפי ומועברות דרך ערוץ TLS מוצפן. עם זאת, הצהרות ה-SAML עצמן לא מוצפנות. באמצעות הצפנה של SAML, אתם יכולים להגדיר את AD FS להצפנת טענות הנכוֹנוּת (assertions) כך שרק מאגר זהויות של עומסי עבודה יוכל לפענח ולקרוא אותן.

OIDC

התכונה הזו זמינה רק כשמשתמשים ב-SAML.

SAML או WS-Trust

  1. יוצרים מפתח הצפנה לספק מאגר הזהויות של עומסי עבודה:

    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: מזהה המאגר.

    זוג המפתחות מאוחסן ומנוהל על ידי איחוד שירותי אימות הזהות של עומסי העבודה. אפשר לייצא את המפתח הציבורי, אבל רק לאיחוד שירותי אימות הזהות של עומסי העבודה יש גישה למפתח הפרטי.

  2. מייצאים אישור שמכיל את המפתח הציבורי:

    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
    
  3. מעבירים את קובץ האישור לשרת AD FS.

  4. בשרת AD FS, לוחצים לחיצה ימנית על Start ואז לוחצים על Windows PowerShell (Admin).

  5. ב-PowerShell, משנים את אמון הצד הנסמך כך שישתמש בהצפנה:

    Set-AdfsRelyingPartyTrust `
      -TargetName NAME `
      -SamlResponseSignature MessageAndAssertion `
      -EncryptionCertificate PATH `
      -EncryptClaims $True
    

    מחליפים את מה שכתוב בשדות הבאים:

    • NAME: שם האמון של הצד הנסמך
    • PATH: הנתיב של קובץ האישור

אימות של עומס עבודה

צריך לבצע את ההוראות האלה פעם אחת לכל עומס עבודה.

מתן הרשאה לעומס העבודה החיצוני לגשת למשאבי Google Cloud

כדי להעניק לעומס העבודה גישה למשאבים של Google Cloud , מומלץ להעניק לישות הראשית גישה ישירה למשאבים. במקרה הזה, הגורם המרכזי הוא המשתמש המאוחד. יש Google Cloud מוצרים עם מגבלות של Google Cloud API. אם עומס העבודה קורא לנקודת קצה ל-API שיש לה מגבלה, אפשר במקום זאת להשתמש בהתחזות לחשבון שירות. במקרה הזה, חשבון המשתמש הואGoogle Cloud חשבון השירות, שמשמש כזהות. מעניקים גישה לחשבון השירות במשאב.

גישה ישירה למשאבים

אפשר להעניק גישה לזהות מאוחדת ישירות למשאבים באמצעות מסוף Google Cloud או ה-CLI של gcloud.

המסוף

כדי להשתמש במסוף Google Cloud כדי להקצות תפקידי IAM ישירות למשאב, צריך לעבור לדף של המשאב ואז להקצות את התפקיד. בדוגמה הבאה מוצגות ההוראות למעבר לדף Cloud Storage ולהענקת התפקיד 'צפייה באובייקט אחסון' (roles/storage.objectViewer) לזהות מאוחדת ישירות בקטגוריה של Cloud Storage.

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

  2. ברשימת הקטגוריות, לוחצים על שם הקטגוריה שבה רוצים להעניק את התפקיד.

  3. לוחצים על הכרטיסייה Permissions בחלק העליון של הדף.

  4. לוחצים על הלחצן Grant access.

    מופיעה תיבת הדו-שיח Add principals.

  5. בשדה 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: הערך של המאפיין
  6. בוחרים תפקיד (או תפקידים) בתפריט הנפתח Select a rol. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.

  7. לוחצים על Save.

gcloud

כדי להשתמש ב-CLI של gcloud כדי להקצות תפקידי IAM למשאב בפרויקט, מבצעים את הפעולות הבאות:

  1. מקבלים את מספר הפרויקט שבו מוגדר המשאב.

    gcloud projects describe $(gcloud config get-value core/project) --format=value\(projectNumber\)
    
  2. נותנים גישה למשאב.

    כדי להשתמש ב-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: הערך של המאפיין בהתאמה אישית במיפוי המאפיינים

    אפשר להקצות תפקידים לכל Google Cloud משאב שתומך במדיניות הרשאות של IAM.

התחזות לחשבון שירות

  1. כדי ליצור חשבון שירות לעומס העבודה החיצוני, צריך לבצע את הפעולות הבאות:

    1. Enable the IAM, Security Token Service, and Service Account Credentials APIs.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the APIs

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

    3. הענקת גישה לחשבון השירות למשאבים שאליהם רוצים שלזהויות חיצוניות תהיה גישה.

  2. כדי לאפשר לזהות המאוחדת להתחזות לחשבון השירות, מבצעים את הפעולות הבאות:

המסוף

כדי להשתמש במסוף Google Cloud כדי להעניק תפקידי IAM לזהות מאוחדת עם חשבון שירות, מבצעים את הפעולות הבאות:

חשבון שירות באותו פרויקט

  1. כדי לתת גישה באמצעות התחזות לחשבון שירות שנמצא באותו פרויקט, מבצעים את הפעולות הבאות:

    1. עוברים לדף Workload Identity Pools.

      לדף Workload Identity Pools

    2. בוחרים באפשרות הענקת גישה.

    3. בתיבת הדו-שיח Grant access to service account, בוחרים באפשרות Grant access using Service Account impersonation.

    4. ברשימה Service accounts, בוחרים את חשבון השירות שאליו הזהויות החיצוניות יתחזו, ומבצעים את הפעולות הבאות:

    5. כדי לבחור אילו זהויות מהמאגר יכולות להתחזות לחשבון השירות, מבצעים את אחת מהפעולות הבאות:

      • כדי לאפשר רק לזהויות ספציפיות ממאגר הזהויות של עומסי העבודה להתחזות לחשבון השירות, בוחרים באפשרות Only identities matching the filter.

      • ברשימה שם מאפיין, בוחרים את המאפיין שרוצים לסנן לפיו.

      • בשדה ערך מאפיין, מזינים את הערך הצפוי של המאפיין; לדוגמה, אם משתמשים במיפוי מאפיין google.subject=assertion.sub, מגדירים את שם מאפיין להיות subject ואת ערך מאפיין לערך של ההצהרה sub באסימונים שהונפקו על ידי ספק הזהויות החיצוני.

    6. כדי לשמור את ההגדרות האישיות, לוחצים על Save ואז על Dismiss.

חשבון שירות בפרויקט אחר

  1. כדי לתת גישה באמצעות התחזות לחשבון שירות בחשבון שירות בפרויקט אחר, מבצעים את הפעולות הבאות:

    1. עוברים לדף Service Accounts.

      לדף Service accounts

    2. בוחרים את חשבון השירות שרוצים להתחזות אליו.

    3. לוחצים על ניהול הגישה.

    4. לוחצים על Add principal.

    5. בשדה 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: המזהה של מאגר הזהויות של עומסי העבודה
    6. ברשימת התפקידים Select a role (בחירת תפקיד), בוחרים את התפקיד Workload Identity User (משתמש ב-Workload Identity) ‏(roles/iam.workloadIdentityUser).

    7. כדי לשמור את ההגדרות, לוחצים על שמירה.

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 כדי לבצע אימות ב- Google Cloud באמצעות Workload Authenticator for Windows.

Workload Authenticator for Windows הוא כלי בקוד פתוח שמשמש כפלאגין של ספריות לקוח של Cloud, וכלים כמו CLI של gcloud:

  1. כשהכלי או הספרייה צריכים פרטי כניסה חדשים, מתבצעת הפעלה ברקע של Workload Authenticator.
  2. Workload Authenticator משתמש ב-OIDC, ב-SAML או ב-WS-Trust כדי לקבל אסימון חדש או טענת נכונות (assertion) של SAML מ-AD FS, ומחזיר אותו לכלי או לספרייה.
  3. לאחר מכן הכלי או הספרייה מחליפים את האסימון או את טענת הנכונות (assertion) של SAML ב Google Cloud פרטי כניסה לטווח קצר באמצעות איחוד שירותי אימות הזהות של עומסי עבודה.

כדי להשתמש ב-Workload Authenticator for Windows, צריך ליצור קובץ תצורה של פרטי כניסה. הקובץ יגדיר את הפרטים הבאים:

  • המיקום של קובץ ההפעלה של Workload Authenticator for Windows (wwauth.exe), והפרמטרים שצריך להריץ איתו
  • מאגר וספק הזהויות של כוח עבודה שבהם צריך להשתמש
  • חשבון השירות שצריך להתחזות אליו

כדי ליצור קובץ תצורה של פרטי כניסה, צריך לבצע את הפעולות הבאות בשרת Windows שמריץ את עומס העבודה:

  1. לוחצים לחיצה ימנית על Start (או מקישים על Win+X) ואז לוחצים על Windows PowerShell.
  2. מורידים את 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, הקובץ יכיל את הנתיב לקובץ ההפעלה שלו. אם תמחקו או תעבירו את קובץ ההפעלה מאוחר יותר, עומסי העבודה לא יוכלו למצוא את קובץ ההפעלה ולהשתמש בו.

  3. הפעלה של wwauth.exe:

    & ${env:ProgramData}\wwauth.exe
    

    נפתחת תיבת דו-שיח של הגדרות:

    Workload Authenticator

  4. בוחרים בכרטיסייה 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
  5. בוחרים את הכרטיסייה Workload Identity ומזינים את ההגדרות הבאות:

    • Project number: מספר הפרויקט שמכיל את מאגר הזהויות של כוח העבודה
    • Pool ID: מזהה של מאגר זהויות של כוח עבודה
    • Provider ID: המזהה של ספק מאגר זהויות של כוח עבודה
    • Impersonate service account: enabled, if you use service account impersonation
    • כתובת אימייל: כתובת האימייל של חשבון השירות, אם משתמשים בהתחזות לחשבון שירות
  6. בוחרים בכרטיסייה AD FS ומוודאים שהשדה Relying Party ID מכיל עכשיו את כתובת ה-URL של ספק מאגר הזהויות של כוח העבודה.

  7. לוחצים על Apply ובוחרים את מיקום הקובץ שבו יישמר קובץ התצורה של פרטי הכניסה.

    בניגוד למפתח של חשבון שירות, קובץ תצורה של פרטי כניסה לא מכיל סודות כלשהם ואין צורך לשמור אותו בסודיות. פרטים לגבי קובץ התצורה של פרטי הכניסה מופיעים בכתובת https://google.aip.dev/auth/4117.

עכשיו אפשר לבדוק את ההגדרות:

  1. בוחרים משתמש Active Directory שאיתו תתבצע הבדיקה. הוא יכול להיות המשתמש ב-Active Directory של עומס העבודה או המשתמש שאיתו מחוברים כרגע.

  2. כדי לבדוק את התצורה עם המשתמש הנוכחי, לוחצים על Test.

    כדי לבדוק עם משתמש אחר, בוחרים Test > Test configuration as user ומזינים את פרטי הכניסה של המשתמש.

    הכלי עכשיו מנסה לבצע אימות ב- Google Cloud באמצעות השלבים הבאים:

    1. קבלת אסימון OIDC או טענת נכונות (assertion) של SAML מ-AD FS.
    2. קבלת אסימון מהממשק Security Token Service של Google.
    3. התחזות לחשבון השירות, אם משתמשים בהתחזות לחשבון שירות.

    אם האימות יצליח, תופיע ההודעה Test completed successfully:

    תוצאת הבדיקה

שימוש בהגדרות פרטי הכניסה כדי לקבל גישה אל Google Cloud

כדי לאפשר לכלים ולספריות לקוח להשתמש בתצורת פרטי הכניסה, צריך לבצע את הפעולות הבאות בשרת Windows שמריץ את עומס העבודה:

  1. לוחצים לחיצה ימנית על Start ואז על Run.
  2. מזינים sysdm.cpl ולוחצים על OK.
  3. בכרטיסייה Advanced, לוחצים על Environment variables.
  4. בקטע System variables, מוסיפים שני משתנים חדשים:

    Name Value
    GOOGLE_APPLICATION_CREDENTIALS נתיב לקובץ התצורה של פרטי הכניסה
    GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES 1

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

  5. לוחצים על OK.

  6. משתמשים בספריית לקוח או בכלי שתומכים באיחוד שירותי אימות הזהות של עומסי עבודה, ויכולים למצוא פרטי כניסה באופן אוטומטי:

    C++‎

    ספריות הלקוח של C++‎‏Google Cloud תומכות באיחוד שירותי אימות הזהות של עומסי עבודה החל מגרסה v2.6.0. כדי להשתמש באיחוד שירותי אימות הזהות של עומסי עבודה, צריך ליצור את ספריות הלקוח ב-gRPC בגרסה 1.36.0 ואילך.

    Go

    ספריות לקוח ל-Go תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם נעשה בהן שימוש במודול golang.org/x/oauth2 בגרסה v0.0.0-20210218202405-ba52d332ba99 ואילך.

    כדי לבדוק באיזו גרסה של המודול הזה נעשה שימוש בספריית הלקוח, מפעילים את הפקודות האלה:

    cd $GOPATH/src/cloud.google.com/go
    go list -m golang.org/x/oauth2
    

    Java

    ספריות לקוח של Java תומכות באיחוד שירותי אימות הזהות של עומסי עבודה אם הן משתמשות בארטיפקט com.google.auth:google-auth-library-oauth2-http בגרסה 0.24.0 ואילך.

    כדי לבדוק באיזו גרסה של הארטיפקט הזה נעשה שימוש בספריית הלקוח, בספרייה של האפליקציה מפעילים את פקודת Maven הזאת:

    mvn dependency:list -DincludeArtifactIds=google-auth-library-oauth2-http
    

    Node.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 תומכות באיחוד זהויות של עומסי עבודה אם הן משתמשות בגרסה 1.27.0 ואילך של חבילת google-auth.

    כדי לבדוק באיזו גרסה של החבילה הזאת נעשה שימוש בספריית הלקוח, בסביבה שהחבילה מותקנת בה מפעילים את הפקודה:

    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

    יש תמיכה באיחוד שירותי אימות הזהות של עומסי עבודה אם משתמשים בספקGoogle Cloud בגרסה 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 ואילך.

המאמרים הבאים