הטמעה של סוג מתן הסיסמה

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

סוג ההרשאה של בעלי המשאב (או ה'סיסמה') משמש בעיקר במקרים שבהם האפליקציה אמינה מאוד. בהגדרה הזו, המשתמש מספק את פרטי הכניסה שלו לשרת המשאבים (שם משתמש/סיסמה) לאפליקציית הלקוח, ששולחת אותם בבקשת אסימון גישה אל Apigee קצה. שרת זהויות מאמת את פרטי הכניסה, ואם הם תקפים, Edge ממשיך בתהליך השליחה אסימון גישה ומחזיר אותו לאפליקציה.

מידע על נושא זה

הנושא הזה כולל תיאור כללי וסקירה כללית של הסיסמה של בעלי המשאבים ב-OAuth 2.0 תהליך של סוג הענקה והסבר על אופן היישום של התהליך הזה ב-Apigee Edge.

דוגמאות שיכולות לעזור לך

  • בבקשה אסימון גישה: סוג הענקת סיסמה: מראה איך לשלוח בקשה לאסימון, להגדיר מדיניות OAuthV2 לסוג הענקת סיסמה, ואיך להגדיר נקודת קצה למדיניות ב קצה.
  • oauth-authentic-key-secret: שרת proxy לדוגמה ב-GitHub שאפשר לפרוס ב-Edge ולנסות החוצה. זו דוגמה מקצה לקצה שמציגה את סוג הענקת הסיסמה. זה מדגים הכי טוב כלומר, לאמת את פרטי הכניסה של אפליקציית הלקוח (מפתח/סוד) לפני שליחת את פרטי הכניסה של המשתמש לספק זהויות.

וידאו

סרטון: בסרטון הזה מוסבר על ההטמעה של הענקת הסיסמה מהסוג הזה.

תרחישים לדוגמה

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

תרשים זרימה

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

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

שלבים בתהליך בחירת הרשת לסוג הענקת הסיסמה

לפניכם סיכום של השלבים הנדרשים להטמעת סוג הענקת הסיסמה כאשר Apigee Edge משמש כשרת ההרשאות.

דרישה מוקדמת: אפליקציית הלקוח חייבת להיות רשומה ב-Apigee Edge כדי את מזהה הלקוח ואת המפתחות הסודיים של הלקוח. למידע נוסף, ראו רישום אפליקציות לקוח פרטים.

1. משתמשים מתחיל את התהליך ומזין פרטי כניסה

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

2. בקשות מאפליקציות אסימון גישה מ-Apigee Edge

האפליקציה שולחת בקשה לאסימון גישה, כולל פרטי הכניסה של המשתמש, אל נקודת הקצה GenerateAccessToken ב-Apigee Edge.

הנה דוגמה לבקשת POST, שכוללת את הפרמטרים הנדרשים לסוג הענקה הזה:

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization: Basic c3FIOG9vSGV4VHo4QzAySVg5T1JvNnJoZ3ExaVNyQWw6WjRsanRKZG5lQk9qUE1BVQ' \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

לחלופין, ניתן לבצע את הפקודה הזו באופן הבא, על ידי שימוש באפשרות -u כדי לתלתל כדי ליצור עבורך את הכותרת 'אימות בסיסי' בקידוד base64.

$ curl -i \
  -X POST \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -u sqH8ooHexTz8C02IX9ORo6rhgq1iSrAl:Z4ljtJdneBOjPMAU \
  -d 'grant_type=password&username=the-user-name&password=the-users-password' \
  https://docs-test.apigee.net/oauth/token

(כל אחת מהפקודות האלה צריכה להיות בשורה אחת).

פרטי הכניסה של המשתמש נכללים בפרמטרים של הטופס, ואילו פרטי הכניסה של הלקוח מקודד בכותרת האימות הבסיסי של HTTP. לתיאור מפורט של הקריאה הזו ל-API: כולל פרטים על הכותרת הבסיסית הנדרשת, ראו את הקטע 'הענקת סיסמה' ב "בבקשה אסימוני גישה וקודי הרשאה".

3. Edge מאמת את הלקוח יישום

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

4. Edge מעבד את פרטי כניסה

אחרי שאפליקציית הלקוח מאומתת, אפשר להשתמש ב-Service Callout כדי להפעיל מדיניות JavaScript שירות הזהויות, באמצעות פרטי הכניסה של המשתמש. לדוגמה, שירות LDAP יכול להיות או כל שירות שבו ברצונך להשתמש כדי לאמת את פרטי הכניסה. כדי לקבל פרטים על המדיניות הזו, למידע נוסף, אפשר לעיין בקטע חילוץ משתנים המדיניות ו-JavaScript .

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

5. מדיניות OAuthV2 מבצע

אם פרטי הכניסה תקינים, שלב העיבוד הבא הוא להפעיל מדיניות OAuthV2 מוגדר עבור סוג הענקת הסיסמה. כאן מוצגת דוגמה. השדה <UserName> וגם &lt;PassWord&gt; ואפשר לאחזר אותם ממשתני הזרימה נשמרו באמצעות המדיניות extractVariables. כדי לקבל מידע מפורט על המדיניות הזו, למידע נוסף, ראו מדיניות OAuthV2.

<OAuthV2 name="GetAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>360000000</ExpiresIn> 
  <SupportedGrantTypes> 
     <GrantType>password</GrantType> 
  </SupportedGrantTypes> 
  <GrantType>request.queryparam.grant_type</GrantType> 
  <UserName>login</UserName>
  <PassWord>password</PassWord>
  <GenerateResponse/> 
</OAuthV2>

אם המדיניות הזו מצליחה, נוצרת תגובה חזרה ללקוח עם הרשאת גישה ב-Assistant. התגובה היא בפורמט JSON. נראה דוגמה. שימו לב ש-access_token הוא אחד רכיבים:

{
    "issued_at": "1420258685042",
    "scope": "READ",
    "application_name": "ce1e94a2-9c3e-42fa-a2c6-1ee01815476b",
    "refresh_token_issued_at": "1420258685042",
    "status": "approved",
    "refresh_token_status": "approved",
    "api_product_list": "[PremiumWeatherAPI]",
    "expires_in": "1799",
    "developer.email": "tesla@weathersample.com",
    "organization_id": "0",
    "token_type": "BearerToken",
    "refresh_token": "IFl7jlijYuexu6XVSSjLMJq8SVXGOAAq",
    "client_id": "5jUAdGv9pBouF0wOH5keAVI35GBtx3dT",
    "access_token": "I6daIgMSiUgYX1K2qgQWPi37ztS6",
    "organization_name": "docs",
    "refresh_token_expires_in": "0",
    "refresh_count": "0"
}

6. הלקוח קורא ל API מוגן

עכשיו, עם קוד גישה תקף, הלקוח יכול לבצע קריאות ל-API המוגן. כאן במקרה כזה, הבקשות נשלחות ל-Apigee Edge (שרת ה-proxy), ו-Edge אחראי על התיקוף אסימון הגישה לפני העברת הקריאה ל-API לשרת משאבי היעד. אסימוני גישה מועברות בכותרת Authorization. לדוגמה:

$ curl -H "Authorization: Bearer I6daIgMSiUgYX1K2qgQWPi37ztS6
" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282