אימות מדיניות IAM

מדיניות רגילה

הדף הזה מתייחס ל-Apigee, אבל לא ל-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

אפשר להשתמש במדיניות VerifyIAM כדי לאכוף בדיקות הרשאות לגישה ל-API, על סמך Google Cloud IAM. זוהי חלופה למדיניות OAuthv2 ולמדיניות VerifyAPIKey. למידע על הכללת VerifyIAM בפתרון לבקרת גישה שמבוסס על IAM, אפשר לעיין במאמר סקירה כללית על אימות API שמבוסס על IAM.

המדיניות הזו היא מדיניות רגילה ואפשר לפרוס אותה בכל סוג של סביבה. מידע על סוגי המדיניות והזמינות שלהם בכל סוג סביבה זמין במאמר סוגי מדיניות.

הפניה לרכיב

במאמר הזה מפורטים הרכיבים והמאפיינים של מדיניות VerifyIAM.

<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">
    <DisplayName>Custom label used in UI</DisplayName>
    <CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>
</VerifyIAM>

מאפייני <VerifyIAM>

<VerifyIAM async="false" continueOnError="false" enabled="true" name="MyVerifyIAMPolicy">

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

מאפיין תיאור ברירת מחדל נוכחות
name

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

אפשר להשתמש ברכיב <DisplayName> כדי לתת למדיניות תווית בשם אחר בשפה טבעית בכלי לעריכת פרוקסי בממשק הניהול.

לא רלוונטי חובה
continueOnError

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

הגדרה ל-true מאפשרת להמשיך את הביצוע של התהליך גם אחרי שמדיניות נכשלת. מידע נוסף:

FALSE אופציונלי
enabled

מגדירים את המדיניות למצב true כדי לאכוף אותה.

מגדירים את הערך false כדי להשבית את המדיניות. המדיניות לא תיאכף גם אם היא תישאר מצורפת לזרימה.

TRUE אופציונלי
async

המאפיין הזה הוצא משימוש.

FALSE הוצא משימוש

אלמנט <DisplayName>

משתמשים בו בנוסף למאפיין name כדי לתת למדיניות שם אחר בשפה טבעית, לסימון המדיניות בכלי לעריכת פרוקסי בממשק המשתמש לניהול.

<DisplayName>Policy Display Name</DisplayName>
ברירת מחדל

לא רלוונטי

אם לא מציינים את הרכיב הזה, המערכת משתמשת בערך של המאפיין name של המדיניות.

נוכחות אופציונלי
סוג String

אלמנט <CredentialSource>

<CredentialSource>flow_variable_name_containing_credential_value</CredentialSource>

הרכיב הזה מציין את משתנה הזרימה שמכיל את ערך האישורים, והוא כולל את המאפיינים הבאים:

  • בדרך כלל, הלקוח שולח את הערך בפרמטר של שאילתה, בכותרת HTTP או בפרמטר של טופס. במחרוזת צריך לציין את משתנה הזרימה המתאים בפורמט request.queryparam.token.
  • כשקוראים מההפניה, צפוי ערך ישיר. לדוגמה, אסור להשתמש ב-'Bearer' כתחילית.
  • אם לא מציינים ערך, ההנחה היא שהערך נמצא בכותרת ההרשאה בפורמט הרגיל Bearer xyz.
ברירת מחדל לא רלוונטי
נוכחות אופציונלי
סוג משתנה בתהליך

דוגמה:

<VerifyIAM async="false" continueOnError="false" enabled="true" name="Verify-IAM-Permissions-1">
    <DisplayName>VerifyIAM policy for flow 1</DisplayName>
    <CredentialSource>request.queryparam.token</CredentialSource>
</VerifyIAM>

הפניה לשגיאה

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

שגיאות זמן ריצה

השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.

קוד תקלה סטטוס HTTP מטרה
steps.verifyiam.CredentialSourceRefUnresolved 400 לא הייתה אפשרות לפתור את משתנה הזרימה שסופק בתוך מקור האישורים.
steps.verifyiam.CredentialValueNotProvided 400 לא נמצאו פרטי כניסה. אם לא מסופק הפניה למקור פרטי הכניסה, אנחנו בודקים את המקום שמוגדר כברירת מחדל, כמו כותרת הרשאה.
steps.verifyiam.Forbidden 403 לא ניתן להעביר את הבקשה בגלל חוסר הרשאות מספיק או היקפי גישה חסרים או בעיות אחרות שקשורות לכך.
steps.verifyiam.MiscellaneousAuthorizationConfigurationError 500 בעיה בבקשת האימות ל-IAM. הגורם שמפיק את ה-API צריך לתקן את השגיאה הזו על סמך הפרטים בתגובת השגיאה.
steps.verifyiam.Unauthorized 401 בעיה בפרטי הכניסה, למשל ערך לא תקין או שתוקף השימוש בהם פג.
steps.verifyiam.UnexpectedAuthorizationInfrastructureError 500 שגיאה פנימית.

שגיאות בהטמעה

המדיניות הזו לא מחזירה שגיאות פריסה ספציפיות למדיניות.

משתני תקלות

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

משתנים כאשר: דוגמה
fault.name="fault_name" fault_name הוא שם התקלה, כפי שמופיע בטבלה Runtime errors שלמעלה. שם התקלה הוא החלק האחרון של קוד התקלה. fault.name="Unauthorized"
verifyiam.policy_name.failed policy_name הוא השם שהמשתמש הגדיר למדיניות שגרמה לשגיאה. verifyiam.Verify-IAMToken.failed = true