אוטומציה של תהליך יצירת האסימונים

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

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

עם זאת, יכול להיות שהסביבה שלכם תתמוך באוטומציה של משימות פיתוח נפוצות, כמו אוטומציה של בדיקות או אינטגרציה רציפה/פריסה רציפה (CI/CD). כדי להפוך את המשימות האלה לאוטומטיות כש-SAML מופעל, צריך דרך להשיג ולרענן טוקנים של OAuth2 בלי להעתיק ולהדביק קוד גישה מדפדפן.

מידע על משתמשים במכשירים

‫Apigee Edge תומך במשתמשים שהם מכונות בארגון שמופעל בו SAML. משתמשים במכונה משמשים אך ורק לאוטומציה, ואף אדם לא ניגש אליהם ישירות.

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

איך יוצרים אוטומציה של תהליך יצירת הטוקן

כדי להפוך את תהליך יצירת האסימון לאוטומטי:

שלב תיאור
1 יצירת משתמש מכונה באזור הזהויות של SAML
2 הקצאת התפקידים הנדרשים למשתמש המכונה בארגון Edge
3 קבלת טוקנים של OAuth2 של משתמשי המכונה

סרטון: סרטון קצר שמסביר איך להפוך את הגישה לממשקי Apigee Edge API לאוטומטית באמצעות פרטי כניסה של משתמש מכונה.

ניהול משתמשי מכונה באזורי זהויות של SAML

‫Apigee מספק ממשק שורת פקודה (CLI) לניהול משתמשי מכונה, שמאפשר ליצור ולנהל חשבונות של משתמשי מכונה. בקטעים הבאים מוסבר איך להשתמש ב-CLI לניהול משתמשים במכונה.

שימוש ב-CLI

כדי להשתמש ב-CLI לניהול משתמשי מכונה, קודם צריך להוריד ולחלץ את הקובץ הבא: usermgmt.tar.gz(1)

הפורמט להפעלת ה-CLI הוא:

usermgmt_platform [command] [flags]

בטבלה הבאה מפורטות הפלטפורמות הנתמכות והפקודה המתאימה להפעלת ה-CLI לניהול משתמשי מכונה. (קבצי ההפעלה נמצאים בספרייה usermgmt).

פלטפורמה ‫32 ביט ‫64 ביט
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

בטבלה הבאה מפורטות הפקודות שאפשר לציין.

פקודה מידע נוסף
create יצירת משתמש מכונה באזור זהויות
delete מחיקת משתמש מכונה באזור זהויות
help איך מקבלים עזרה בשימוש ב-CLI
list רשימת כל המשתמשים במכונות באזור זהות
reset איפוס הסיסמה של משתמש מכונה באזור זהות

אפשר להוסיף אחד מהדגלים הבאים כדי להציג עזרה לגבי הפקודה שצוינה: ‎-h או ‎--help

כניסה ל-CLI

בפעם הראשונה שמריצים את ה-CLI במהלך תקופה של 24 שעות, מוצגת בקשה להזין את פרטי החשבון של zoneadmin.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

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

קבלת עזרה לשימוש ב-CLI

מציגים את פרטי השימוש ב-CLI באמצעות הפקודה usermgmt_platform help. כאן אפשר לעיין ברשימת הפלטפורמות הנתמכות.

usermgmt_platform help

מוצג מידע העזרה הבא:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

כדי להציג עזרה לגבי פקודה ספציפית, מעבירים את הפקודה ואת הדגל ‎-h או ‎--help בשורת הפקודה.

לדוגמה, כדי לקבל עזרה לגבי הפקודה list:

usermgmt_platform list -h

מוצג מידע העזרה הבא:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

יצירת משתמש מכונה באזור זהויות

יוצרים משתמש מכונה באזור זהויות באמצעות הפקודה usermgmt_platform create. כאן אפשר לעיין ברשימת הפלטפורמות הנתמכות.

  1. מזינים את הפקודה הבאה:
    usermgmt_platform create

    תוצג רשימה של אזורי זהויות:

    myzone1
    myzone2
  2. מזינים את שם האזור בהנחיה:
    Enter a zone name: myzone1
  3. מזינים שם משתמש למשתמש המכונה:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. מזינים סיסמה למשתמש המכונה. מזינים שוב את הסיסמה כשמוצגת בקשה לעשות זאת.
    Password: password
    Re-enter password: password 

    המשתמש נוצר.

    Created machine user machineuser1@mycompany.com

רשימה של כל המשתמשים במכונה באזור זהות

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

  1. מזינים את הפקודה הבאה:
    usermgmt_platform list
    תוצג רשימה של אזורי הזהויות:
    myzone1
    myzone2
  2. מזינים את שם האזור בהנחיה:
    Enter a zone name: myzone1

    מוצגת רשימת משתמשי המכונה באזור הזהות:

    Machine users in the zone:
    machineuser1@mycompany.com
        

איך מאפסים את הסיסמה של משתמש מכונה באזור זהויות

כדי לאפס את הסיסמה של משתמש מכונה באזור זהויות, משתמשים בפקודה usermgmt_platform reset. כאן אפשר לעיין ברשימת הפלטפורמות הנתמכות.

  1. מזינים את הפקודה הבאה:
    usermgmt_platform reset

    תוצג רשימה של אזורי זהויות:

    myzone1
    myzone2
  2. מזינים את שם האזור בהנחיה:
    Enter a zone name: myzone1
  3. מזינים את שם המשתמש של המשתמש המכונה שרוצים לאפס את הסיסמה שלו:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. מזינים סיסמה חדשה למשתמש המכונה. מזינים שוב את הסיסמה כשמוצגת בקשה לעשות זאת.
    Enter the new password: password
    Re-enter password: password

    הסיסמה מאופסת.

    Reset password for machine user machineuser1@mycompany.com

מחיקת משתמש מכונה באזור זהויות

כדי למחוק משתמש מכונה באזור זהויות, משתמשים בפקודה usermgmt_platform delete. כאן אפשר לעיין ברשימת הפלטפורמות הנתמכות.

  1. מזינים את הפקודה הבאה:
    usermgmt_platform delete
    תוצג רשימה של אזורי הזהויות:
    myzone1
    myzone2
  2. מזינים את שם האזור בהנחיה:
    Enter a zone name: myzone1
  3. מזינים את שם המשתמש של המשתמש במכונה שרוצים למחוק:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    משתמש המכונה נמחק.

    Deleted user machineuser1@mycompany.com

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

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

קבלת טוקנים של OAuth2 של משתמש המכונה

אפשר להשתמש בכלי השירות acurl(1) ו-get_token(1) כדי להפוך את תהליך יצירת האסימונים לאוטומטי ולנהל את שמירת האסימונים במטמון עבור משתמשים שהם מכונות, כמו שמתואר במאמרים OAuth2 למשתמשים שהם מכונות ומשתמשים שהם מכונות באזורי SAML.

כדי לקבל את הטוקנים של משתמש המכונה מסוג OAuth2 באופן ידני באמצעות curl:

  1. משתמשים בכלי המועדף לקידוד כתובות URL כדי לקודד את שם המשתמש והסיסמה של המשתמש במכונה.

    אזהרה: כדי לוודא שפרטי הכניסה של המשתמש במכונה לא ייחשפו, צריך להשתמש בכלי פנימי לקידוד כתובות URL.

  2. כדי ליצור את אסימוני הגישה והרענון הראשוניים, קוראים לנקודת הקצה של אסימון SAML, כמו שמוצג בדוגמה הבאה:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    לצורך הרשאה, מעבירים את פרטי הכניסה של אפליקציית הלקוח ב-OAuth2 ששמורים במערכת, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, בכותרת Authorization. הקריאה מדפיסה את אסימוני הגישה והרענון אל stdout.

  3. מעבירים את טוקן הגישה לקריאה ל-API של ניהול Edge ככותרת Bearer:
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. כשפג תוקף אסימון הגישה, אפשר לרענן אותו על ידי שליחת אסימון הרענון לנקודת הקצה של אסימון SAML, כמו בדוגמה הבאה:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) זכויות יוצרים ©‏ 2023 Google LLC
הכלים usermgmt,‏ acurl ו-get_token זמינים כ'תוכנה' בהתאם להסכם שחל על השימוש שלך ב-Google Cloud Platform, כולל התנאים הספציפיים לשירות שזמינים בכתובת https://cloud.google.com/terms/service-terms.