אימות מחדש של רכישות מתוך האפליקציה

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

אימות מחדש של IAP (או, reauth) נועד לאכוף מדיניות של אימות מחדש בשירותים ובאפליקציות (או, אפליקציות) שמוגנים על ידי IAP. באמצעות השירות הזה, אתם יכולים לאכוף מדיניות של אימות מחדש בשירותים ובאפליקציות קריטיים שמטפלים במידע סודי. לדוגמה, אתם יכולים לציין שמשתמשים שניגשים לאפליקציית משאבי אנוש קריטית יאומתו מחדש כל שעה באמצעות גורם שני.

שיטות נתמכות לאימות מחדש

אפשר להשתמש בשיטות הבאות כדי לנהל את הגדרות האימות מחדש:

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

מידע נוסף מופיע בקטע IapSettings.

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

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

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

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

  • ברירת מחדל: אם סוג המדיניות מוגדר כ-DEFAULT במשאב, כמו ארגון, אז כשמעריכים את הגדרת האימות מחדש במשאב ברמה נמוכה יותר, כמו תיקייה, נעשה שימוש בהגדרה של המשאב ברמה הנמוכה יותר אם היא מוגדרת. אחרת, מוחלת הגדרת האימות מחדש של המשאב ברמה הגבוהה יותר.

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

  • ירושה: ההגדרות של המשאב ברמה הגבוהה יותר משולבות עם ההגדרות של המשאב ברמה הנמוכה יותר.

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

    אם בשתי הרמות יש reauthSettings, התוצאה הממוזגת תשתמש בערכים הבאים:

    • משך הסשן הקצר יותר.
    • שיטת האימות מחדש עם העדיפות הגבוהה יותר.
    • העדיפות היא Secure key (הכי גבוהה), Enrolled second factors (בינונית) ו-Login (הכי נמוכה).
  • סוג המדיניות שמתקבל: סוג המדיניות של ההגדרות הממוזגות הוא MINIMUM.

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

ארגון IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

תיקייה IapSettings:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "1200s"
    policyType: "DEFAULT"

שירות או אפליקציה IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "7200s"
    policyType: "DEFAULT"

ההגדרות אחרי המיזוג:

ארגון IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

תיקייה IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "1200s"
    policyType: "MINIMUM"

שירות או אפליקציה IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "1200s"
    policyType: "MINIMUM"

בדוגמה הזו, אם סוג המדיניות של כל משאב מוגדר כ-DEFAULT, נעשה שימוש ב-reauthSettings של השירות או האפליקציה.

MaxAge

משתמשים בפרמטר maxAge כדי לציין באיזו תדירות משתמש קצה צריך לבצע אימות מחדש. הערך מצוין בשניות. לדוגמה, כדי להגדיר מדיניות אימות מחדש של שעה אחת, מגדירים את הערך של seconds ל-3,600, כמו בדוגמה הבאה:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

הערך המינימלי של maxAge הוא 300 שניות, או חמש דקות.

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

המסוף

  1. עוברים אל דף IAP.
    כניסה לדף 'שרת proxy לאימות זהויות (IAP)'
  2. בוחרים פרויקט, ואז בוחרים את המשאב שרוצים להגדיר לו מדיניות לאימות מחדש.

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

  4. מציינים את הגדרות האימות מחדש ולוחצים על שמירה.

gcloud

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

מידע נוסף זמין במאמר gcloud iap settings set.

מריצים את הפקודה הבאה:

gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

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

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

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

gcloud iap settings set SETTING_FILE --folder=FOLDER

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

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

כדי להגדיר מדיניות אימות מחדש בשירות App Engine בפרויקט, מריצים את הפקודה הבאה:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE

כאשר SETTING_FILE הוא:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

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

  • ‫FOLDER: מזהה התיקייה.
  • ‫ORGANIZATION: מזהה הארגון.
  • ‫PROJECT: מזהה הפרויקט.
  • ‫RESOURCE_TYPE: סוג משאב IAP. חייב להיות app-engine, iap_web, compute, organization או folder.
  • ‫SERVICE: שם השירות. השדה הזה הוא אופציונלי אם הערך של resource-type הוא compute או app-engine.
  • ‫VERSION: שם הגרסה. המאפיין הזה לא רלוונטי לסוג המשאב compute והוא אופציונלי לסוג המשאב app-engine.

API

מריצים את הפקודה הבאה כדי להכין קובץ iap_settings.json. מעדכנים את הערכים לפי הצורך.

cat << EOF > iap_settings.json
{
  "access_settings": {
      "reauth_settings": {
            "method": "LOGIN",
            "maxAge": "300s",
            "policy_type": "DEFAULT"
        }
    }
}
EOF

מריצים את הפקודה gcloud iap settings get כדי לקבל את שם המשאב. מעתיקים את השדה name מהפלט. תצטרכו את השם בשלב הבא.

gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]

בפקודה הבאה, מחליפים את RESOURCE_NAME בשם מהשלב הקודם. ה-IapSettings יעודכן.

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.reauthSettings"

הסבר על פרטי כניסה לאימות מחדש

אחרי אימות מחדש מוצלח, IAP יוצר קובץ Cookie בדפדפן של משתמש הקצה. כדי למנוע אימות מחדש תכוף של אפליקציות באותו דומיין, קובץ ה-Cookie מוגדר בדומיין פרטי ברמה העליונה והוא תקף לכל הדומיין הזה.

לדוגמה, foo.example.com הוא משאב שמוגן על ידי IAP ויש לו מדיניות אימות מחדש של IAP. אחרי אימות מחדש מוצלח, IAP מגדיר קובץ Cookie ב-example.com כי זה הדומיין הפרטי ברמה העליונה. אפליקציות מאותו דומיין פרטי ברמה העליונה, כמו bar.example.com, משתמשות באותם פרטי כניסה לאימות מחדש, ולא מבקשות מהמשתמש לבצע אימות מחדש כל עוד פרטי הכניסה תקפים.

לכתובות URL כמו myapp.appspot.com, ‏ appspot.com הוא דומיין ציבורי, ולכן הדומיין הפרטי ברמה העליונה הוא myapp.appspot.com.

מגבלות ידועות

  • אימות מחדש נתמך רק בתהליכים בדפדפן. אין תמיכה בגישה לחשבון משתמש באמצעות תוכנה. לדוגמה, אפליקציות לנייד ולמחשב לא יכולות לבצע אימות מחדש של משתמשים כי אין להן גישה למשאבים שדורשים אימות מחדש.
  • חשבונות שירות ו-IAP-TCP פטורים מדרישות האימות מחדש.
  • אימות מחדש לא פועל עם סוג החבר allUsers במערכת לניהול זהויות והרשאות גישה (IAM).
  • זהויות חיצוניות, כמו OAuth ו-SAML, לא נתמכות באימות מחדש.
  • אי אפשר להשתמש בזהויות של איחוד שירותי אימות הזהות של כוח העבודה לאימות מחדש ב-IAP.