במאמר הזה מוסבר איך להגדיר איחוד שירותי אימות הזהות של כוח העבודה באמצעות PingOne Advanced Identity Cloud (AIC) כספק זהויות (IdP) ולנהל את הגישה אלCloud de Confiance. אחרי שמגדירים את ספק הזהויות PingOne AIC, משתמשים מאוחדים יכולים לגשת לשירותי Cloud de Confiance שמבוססים על איחוד שירותי אימות הזהות של כוח העבודה באמצעות פרוטוקול SAML 2.0.
לפני שמתחילים
- מוודאים שהגדרתם Cloud de Confiance ארגון.
-
מגדירים את משתנה הסביבה
GOOGLE_CLOUD_UNIVERSE_DOMAINלערךs3nsapis.fr. -
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init - בקטע Native Consoles > Access Management, עוברים אל Realms > REALM_NAME > Dashboard ולוחצים על SAML Applications.
- לוחצים על הוספת ספק ישויות > מתארח.
מזינים מזהה ישות. שומרים את הערך הזה לשימוש מאוחר יותר.
- מוודאים שהערך של Entity Provider Base URL נכון. מערכת Advanced Identity Cloud משתמשת בערך הזה לכל נקודות הקצה שקשורות ל-SAML 2.0.
- בקטע Meta Aliases (כינויים של קובצי Meta), מספקים ערך שמתאים לכתובת URL במאפיין Identity Provider Meta Alias (כינוי של קובץ Meta של ספק זהויות). הכינוי הזה חייב להיות ייחודי במעגל האמון.
- לוחצים על יצירה.
- בכרטיסייה Assertion Processing (עיבוד הצהרות), בקטע Attribute Mapper (מיפוי מאפיינים), ממפים את שמות מאפייני ה-SAML לשמות מאפיינים מקומיים. שמות מאפייני ה-SAML הם השמות שמשמשים בטענת הנכונות (assertion).
- לוחצים על הוספה או על עדכון לכל מיפוי.
- לוחצים על שמירת השינויים.
Over REST
מריצים את הפקודה הבאה:
curl --output METADATA_XML \ "https://TENANT_ENV_FQDN/am/ExportSamlMetadata?entityid=ENTITY_ID&realm=/REALM"בדפדפן
פותחים את כתובת ה-URL של המטא-נתונים של סביבת הדייר בדפדפן כדי להוריד את קובץ ה-XML:
https://TENANT_ENV_FQDN/am/ExportSamlMetadata?entityid=ENTITY_ID&realm=/REALM- שומרים את קובץ ה-XML במחשב המקומי.
מכינים את קובץ ה-XML של המטא-נתונים של ספק השירות. Cloud de Confiance משתמשים בתבנית הבאה ומחליפים את ערכי ה-placeholder:
<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID"> <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID" index="0" isDefault="true"/> </md:SPSSODescriptor> </md:EntityDescriptor>מייבאים את המטא-נתונים באחת מהדרכים הבאות:
במסוף
- במסוף Admin של PingOne AIC, עוברים אל SAML Applications (אפליקציות SAML).
- לוחצים על הוספת ספק ישויות > מרחוק.
- מעלים את קובץ ה-XML של מטא-נתוני ספק השירות שיצרתם. Cloud de Confiance
- לוחצים על יצירה.
Over REST
- ממירים את המטא-נתונים של ה-XML למחרוזת בקידוד base64url.
- קבלת טוקן גישה
מריצים את הפקודה הבאה:
curl --request POST \ --header 'authorization: Bearer ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --header 'Accept-API-Version: resource=1.0' \ --data-raw '{"standardMetadata": "BASE64URL_ENCODED_METADATA"}' \ 'https://TENANT_ENV_FQDN/am/json/realms/root/realms/alpha/realm-config/saml2/remote?_action=importEntity'
- עוברים אל Realms > REALM_NAME > Applications > Federation > Circles of Trust.
- לוחצים על הוספת מעגל מהימן.
- מזינים שם ולוחצים על יצירה.
- בדף Circle of Trust, בנכס Entity Providers, בוחרים את ספק הזהויות המתארח ואת Cloud de Confiance ספק השירות המרוחק.
- לוחצים על שמירת השינויים.
כדי ליצור ספק של מאגר זהויות של כוח עבודה ב-SAML, צריך לוודא שמטא-הנתונים של ספק הזהויות כוללים לפחות את מזהה הישות ב-SAML, את כתובת ה-URL של הכניסה היחידה ומפתח ציבורי אחד לחתימה. לשם כך, בצע את הצעדים הבאים:
gcloud
שומרים את המטא-נתונים של SAML מאפליקציית PingOne AIC.
כדי ליצור את הספק של מאגר הזהויות של כוח העבודה ב-SAML, מריצים את הפקודה הבאה:
gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --idp-metadata-path="XML_METADATA_PATH" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --location=globalמחליפים את מה שכתוב בשדות הבאים:
-
WORKFORCE_PROVIDER_ID: מזהה הספק. WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.-
DISPLAY_NAME: שם מוצג. -
DESCRIPTION: תיאור. -
XML_METADATA_PATH: הנתיב לקובץ המטא-נתונים בפורמט XML שייצאתם מ-PingOne AIC. -
ATTRIBUTE_MAPPING: מיפוי המאפיינים. לדוגמה,google.subject=assertion.subject,google.groups=assertion.attributes.groups,attribute.department=assertion.attributes.department[0]. -
ATTRIBUTE_CONDITION: תנאי למאפיין (לא חובה). לדוגמה, כדי להגביל את המאפייןipaddrלטווח מסוים של כתובות IP, אפשר ליצור את התנאיassertion.ipaddr.startsWith('98.11.12.').
מידע נוסף זמין במאמר בנושא מיפוי מאפיינים.
הפקודה הזו מקצה את
subject, groupsו-departmentבטענת הנכונות (assertion) של SAML למאפייניםgoogle.subject, google.groupsו-attribute.departmentבהתאמה. בנוסף, באמצעות התנאי למאפיין אפשר להבטיח שרק משתמשים בטווח מסוים של כתובות IP יוכלו להיכנס באמצעות ספק הזהויות הזה לכוח העבודה.-
המסוף
כדי להגדיר את פלאגין שמתממשק עם שירותים חיצוניים של SAML באמצעות המסוף Cloud de Confiance , בצע את הפעולות הבאות:
- במסוף Cloud de Confiance , עוברים לדף Workforce Identity Pools: מעבר אל Workforce Identity Pools
- בטבלה Workforce Identity Pools (מאגרי זהויות של כוח עבודה), בוחרים את המאגר שרוצים ליצור עבורו את הספק.
- בקטע ספקים, לוחצים על הוספת ספק.
- ברשימה Select a Provider vendor (בחירת ספק), בוחרים באפשרות Generic Identity Provider (ספק זהויות כללי).
- בקטע Select an authentication protocol, בוחרים באפשרות SAML.
- בקטע Create a provider, מבצעים את הפעולות הבאות:
- בשדה Name, מזינים שם לספק.
- אופציונלי: בשדה Description, מזינים תיאור של הספק.
- בקטע IDP metadata file (XML) (קובץ מטא-נתונים של IdP (XML)), בוחרים את קובץ ה-XML של המטא-נתונים שייצאתם מ-PingOne AIC.
- מוודאים שהאפשרות ספק מופעל מופעלת.
- לוחצים על Continue.
- בקטע שיתוף פרטי הספק, לוחצים על המשך.
בקטע Configure provider (הגדרת ספק), מבצעים את הפעולות הבאות:
- בשדה Attribute mapping (מיפוי מאפיינים), מזינים ביטוי CEL עבור
google.subject(לדוגמה,assertion.subject). אופציונלי: כדי להזין מיפויים אחרים, לוחצים על הוספת מיפוי ומזינים מיפויים אחרים – לדוגמה:
google.subject=assertion.subject, google.groups=assertion.attributes['https://example.com/aliases'], attribute.costcenter=assertion.attributes.costcenter[0]אופציונלי: כדי להוסיף תנאי של מאפיינים, לוחצים על הוספת תנאי ומזינים ביטוי CEL שמייצג תנאי של מאפיינים. לדוגמה, כדי להגביל את המאפיין
ipaddrלטווח מסוים של כתובות IP, אפשר ליצור את התנאיassertion.attributes.ipaddr.startsWith('98.11.12.'). התנאי הזה מבטיח שרק משתמשים עם כתובת IP שמתחילה ב-98.11.12.יוכלו להיכנס באמצעות ספק הזהויות הזה לכוח העבודה.
- בשדה Attribute mapping (מיפוי מאפיינים), מזינים ביטוי CEL עבור
כדי להפעיל רישום מפורט ביומן הביקורת, בקטע רישום מפורט, לוחצים על המתג הפעלת רישום ביומן הביקורת של ערכי מאפיינים.
כדי ליצור את הספק, לוחצים על שליחה.
-
TEST_PROJECT_ID: מזהה הפרויקט. WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.-
DEPARTMENT_VALUE: הערך הממופה שלattribute.department. -
TEST_PROJECT_ID: מזהה הפרויקט. WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה.-
GROUP_ID: קבוצה בהצהרה הממופהgoogle.groups. -
עוברים לדף הכניסה של המסוף (איחוד).
-
מזינים את שם הספק בפורמט הבא:
locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
כשמוצגת בקשה, מזינים את פרטי הכניסה ל-PingOne AIC. -
WORKFORCE_POOL_ID: המזהה של מאגר הזהויות של כוח העבודה. -
WORKFORCE_PROVIDER_ID: המזהה של ספק איחוד שירותי אימות הזהות של כוח העבודה. -
LOGIN_CONFIG_PATH: הנתיב שבו ייכתב קובץ התצורה להתחברות. לדוגמה,login-config.json. -
מגדירים את משתנה הסביבה
CLOUDSDK_AUTH_LOGIN_CONFIG_FILEלנתיב של קובץ התצורה להתחברות. -
מריצים את הפקודה הבאה:
gcloud auth login
- ה-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 ולאשר לו גישה למשאבים בשמכם עבור פקודות עתידיות.
-
אם השתמשתם בדגל
--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 בנתיב של קובץ התצורה להתחברות.
- נכנסים עם חשבון משתמש לאפליקציית PingOne AIC ומקבלים את התגובה ב-SAML.
- שומרים את התגובה ב-SAML שמוחזרת על ידי PingOne AIC במיקום מאובטח במחשב המקומי. מאחסנים את הנתיב במשתנה סביבה – לדוגמה:
SAML_ASSERTION_PATH=/tmp/saml_assertion.xml. יוצרים קובץ תצורה:
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 \ --credential-source-file=SAML_ASSERTION_PATH \ --workforce-pool-user-project=PROJECT_ID \ --output-file=config.jsonמחליפים את מה שכתוב בשדות הבאים:
-
SAML_ASSERTION_PATH: הנתיב לקובץ של טענת הנכונות ב-SAML. -
PROJECT_ID: מזהה הפרויקט.
-
קובץ התצורה שייווצר יהיה דומה לזה:
{ "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", "credential_source": { "file": "SAML_ASSERTION_PATH" }, "workforce_pool_user_project": "PROJECT_ID" }כדי להיכנס ל-CLI של gcloud באמצעות החלפת אסימונים, מריצים את הפקודה הבאה:
gcloud auth login --cred-file=config.jsonלאחר מכן,
gcloudמעביר בשקיפות את פרטי הכניסה ב-PingOne AIC לאסימוני גישה זמניים, כדי שתוכלו לבצע קריאותgcloudאחרות ל- Cloud de Confiance. Cloud de Confiance הפלט אמור להיראות כך:Authenticated with external account user credentials for: [principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject/USER_ID].כדי להציג את החשבונות עם פרטי הכניסה ואת החשבון הפעיל, מריצים את הפקודה הבאה:
gcloud auth list- נכנסים לדף Cloud Storage.
- מוודאים שאפשר לראות את רשימת הקטגוריות הקיימות של הפרויקט
TEST_PROJECT_ID. - מחיקה של המשתמשים באיחוד שירותי אימות הזהות של כוח העבודה והנתונים שלהם.
- מידע על מוצרי Cloud de Confiance Google Cloud שתומכים באיחוד שירותי אימות הזהות של כוח העבודה.
- הגדרת גישה של משתמשים למסוף (מאוחד)
יצירת IdP מתארח
שימוש במאפיינים
בקטע הזה מוסבר איך להשתמש במאפיינים מטענת הנכונות (assertion) של SAML.
בדוגמאות הבאות, מאפיינים בטענת הנכוֹנוּת (assertion) של SAML ממופים למאפיינים מקומיים:
| מאפיין SAML | מאפיין מקומי |
|---|---|
IDPEmail |
mail |
FirstName |
givenName |
groups |
groups |
מגדירים את המאפיינים הנדרשים בקטע 'מיפוי מאפיינים'. תמפו את המאפיינים האלה בהמשך המדריך הזה, כשתיצרו את ספק מאגר הזהויות של כוח העבודה.
ייצוא מטא-נתונים של ספק
אפשר לגשת למטא-נתונים של SAML 2.0 של הספק המתארח באחת מהדרכים הבאות:
ייבוא Google כספק שירות מרוחק
יצירת מעגל מהימן (CoT)
יצירת ספק זהויות של מאגר כוח העבודה ב-PingOne AIC
בקטע הזה מוסבר איך ליצור ספק מאגר זהויות של כוח עבודה כדי לאפשר למשתמשים בספק הזהויות שלכם לגשת אל Cloud de Confiance. אפשר להגדיר את הספק לשימוש בפרוטוקול SAML.
יצירת ספק של מאגר זהויות של כוח עבודה ב-SAML
ניהול הגישה למשאבים Cloud de Confiance
בקטע הזה מוסבר איך לנהל את הגישה ל Cloud de Confiance משאבים עבור משתמשי PingOne AIC.
הפרויקט לדוגמה שמופיע במדריך הזה יכול להיות שונה מהפרויקט שבו השתמשתם כדי להגדיר את איחוד שירותי אימות הזהות של כוח העבודה.
אפשר לנהל תפקידים לזהויות בודדות, לקבוצת זהויות או למאגר שלם. מידע נוסף מופיע במאמר מזהים של חשבונות משתמשים בכוח העבודה בכללי מדיניות הרשאה.
שימוש במאפיינים של מחלקה ממופה
כדי להקצות את התפקיד Storage Admin (roles/storage.admin) לכל הזהויות במחלקה ספציפית בפרויקט TEST_PROJECT_ID, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/attribute.department/DEPARTMENT_VALUE"
מחליפים את מה שכתוב בשדות הבאים:
שימוש בקבוצות ממופות
כדי להקצות את התפקיד Storage Admin (roles/storage.admin) לכל הזהויות בקבוצה GROUP_ID בפרויקט TEST_PROJECT_ID, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding TEST_PROJECT_ID \
--role="roles/storage.admin" \
--member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
מחליפים את מה שכתוב בשדות הבאים:
כניסה לחשבון ובדיקת גישה
בקטע הזה נכנסים כמשתמש של מאגר הזהויות של כוח העבודה ובודקים את הגישה.
כניסה
כניסה לחשבון במסוף (איחוד)
כדי להיכנס למסוף Cloud de Confiance by S3NS איחוד שירותי אימות הזהות של כוח עבודה, שנקרא גם המסוף (מאוחד), מבצעים את הפעולות הבאות:
כניסה מבוססת דפדפן ל-Google Cloud CLI
כדי להיכנס ל-CLI של gcloud באמצעות הדפדפן:
מריצים את הפקודה הבאה כדי ליצור קובץ תצורה לכניסה:
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
gcloud auth login כדי לתת הרשאה ל-CLI של gcloud בלי לציין את הנתיב של קובץ הגדרות הכניסה בכל פעם.
מחליפים את מה שכתוב בשדות הבאים:
קובץ הגדרות הכניסה מכיל את נקודות הקצה (endpoints) שבהן ה-CLI של gcloud משתמש כדי להפעיל את תהליך האימות בדפדפן ולהגדיר את הקהל לספק הזהויות שהוגדר במאגר הזהויות של כוח העבודה. הקובץ לא מכיל מידע סודי.
התוכן של קובץ התצורה לכניסה נראה כך:
{ "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:
משתנה הסביבה
כדי להשתמש בקובץ התצורה שמשמש לכניסה באמצעות משתנה סביבה, מבצעים את ההוראות הבאות:
כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות gcloud auth login, מוחקים את משתנה הסביבה CLOUDSDK_AUTH_LOGIN_CONFIG_FILE.
ההגדרות האישיות של ה-CLI של gcloud
כדי להשתמש בקובץ התצורה שמשמש לכניסה עם מאפיין תצורה של ה-CLI של gcloud:
כדי להפסיק להשתמש בקובץ התצורה שמשמש לכניסה לפקודות gcloud auth login, מבטלים את הגדרת המאפיין באמצעות הפקודה הבאה:
gcloud config unset auth/login_config_file
gcloud auth login
כדי להשתמש ישירות בקובץ התצורה לכניסה באמצעות הפקודה gcloud auth login, פועלים לפי ההוראות הבאות:
הפקודה gcloud auth login שומרת את פרטי הכניסה לגישה בספריית הבית. המשתמש המאומת הופך למשתמש הפעיל בהגדרות האישיות הפעילות של ה-CLI של gcloud. אלא אם משנים את ברירת המחדל, ה-CLI של gcloud משתמש בפרטי הכניסה המאוחסנים האלה כדי לגשת אל Cloud de Confiance by S3NS.
כניסה באמצעות דפדפן ללא GUI ל-CLI של gcloud
כדי להיכנס ל-PingOne AIC באמצעות ה-CLI של gcloud באמצעות פרוטוקול SAML:
בדיקת גישה
אתם יכולים לגשת לשירותים של Cloud de Confiance שמאפשרים איחוד שירותי אימות הזהות של כוח העבודה, שקיבלתם אליהם גישה. מוקדם יותר במדריך הזה הקציתם את התפקיד Storage Admin לכל הזהויות במחלקה או בקבוצה ספציפית בפרויקט TEST_PROJECT_ID. כדי לבדוק אם יש לכם גישה, אתם יכולים להציג את הרשימה של הקטגוריות של Cloud Storage.
כניסה לחשבון במסוף (איחוד)
כדי לאמת את הגישה במסוף (איחוד), מבצעים את הפעולות הבאות:
CLI של gcloud
כדי לראות את הקטגוריות והאובייקטים של Cloud Storage בפרויקט שיש אליו גישה, מריצים את הפקודה הבאה:
gcloud alpha storage ls --project="TEST_PROJECT_ID"
לחשבון המשתמש צריכה להיות ההרשאה serviceusage.services.use בפרויקט שהוגדר בסשן של ה-CLI של gcloud: PROJECT_ID.