שיטה: הענקת גישה לאדם אחר

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

בקשת HTTP

POST https://<base_url>/delegate

מחליפים את <base_url> בכתובת ה-URL של שירות רשימת המפתחות של בקרת הגישה (KACLS).

פרמטרים של נתיב

ללא.

גוף הבקשה

גוף הבקשה מכיל ייצוג JSON של הבקשה:

ייצוג ב-JSON
{
  "authentication": string,
  "authorization": string,
  "reason": string
}
שדות
authentication

string

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

authorization

string

‫JWT עם הצהרות delegated_to ו-resource_name שמאשרות שהישות שמזוהה על ידי ההצהרה delegated_to מורשית לגשת אל resource_name בשם המשתמש. מידע נוסף זמין במאמר אסימוני הרשאה.

reason

string (UTF-8)

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

שלבי העיבוד הנדרשים

ה-KACLS חייב לבצע לפחות את השלבים הבאים:

  • צריך לאמת את טוקני ההרשאה והאימות. מידע נוסף זמין במאמרים בנושא אסימוני הרשאה ואסימוני אימות.
  • בודקים שאסימוני ההרשאה והאימות הם של אותו משתמש. מידע נוסף זמין במאמר בנושא הצפנה ופענוח של נתונים.
  • בודקים שהצהרת kacls_url באסימון ההרשאה תואמת לכתובת ה-URL הנוכחית של KACLS. כך אפשר לזהות שרתי פוטנציאליים של תקיפת 'אדם באמצע' שהוגדרו על ידי משתמשים פנימיים או אדמינים של דומיין סורר.
  • אם התביעה kacls_owner_domain קיימת באסימון ההרשאה, צריך לוודא שהערך תואם לדומיין Google Workspace של הבעלים של KACLS. כך אפשר למנוע ממשתמשים לא מורשים לרשום את רשימת בקרת הגישה שלכם ב-Google.
  • רישום הפעולה ביומן, כולל המשתמש שיזם אותה, delegated_to, resource_name והסיבה שהועברה בבקשה.
  • יוצרים, חותמים ומחזירים טוקן JWT שמכיל הצהרות delegated_to ו-resource_name מטוקן ההרשאה.

ה-KACLS יכול לבצע בדיקות אבטחה נוספות בחינם, כולל בדיקות שמבוססות על טענות JWT.

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, השיטה הזו מחזירה JWT לאימות שמכיל טענות delegated_to ו-resource_name. אפשר להשתמש באסימון הזה מאוחר יותר לאימות בשיחות לשיטות Wrap ו-Unwrap. במקרה של שגיאה, צריך להחזיר תשובה עם שגיאה מובנית.

ייצוג ב-JSON
{
  "delegated_authentication": string
}
שדות
delegated_authentication

string

אסימון JWT של אימות עם הרשאת גישה, שתקף לגישה אל resource_name על ידי המשתמש שמוזכר באסימון ה-JWT המקורי של האימות. מידע נוסף זמין במאמר אסימון אימות של KACLS ל-delegate.

דוגמה

בקשה

POST https://mykacls.example.com/v1/delegate
{
  "authentication": "eyJhbGciOi...",
  "authorization": "eyJhbGciOi...delegated_to\":\"other_entity_id\",\"resource_name\":\"meeting_id\"...}",
  "reason": "{client:'meet' op:'delegate_access'}"
}

תשובה

{
  "delegated_authentication": "eyJhbGciOi...delegated_to_from_authz_token...resource_name_from_authz_token...}"
}