משתני תהליך OAuth

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

‫Apigee Edge כולל קבוצה של מדיניות שמאגדת את היכולות של OAuth 1.0a ו-OAuth 2. ניהול מחזור החיים של טוקנים וסודות, כולל יצירה, אימות ואחסון, מתבצע על ידי Apigee Edge בשם השירותים שלכם בקצה העורפי.

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

משתני הרשאה באמצעות OAuth 2.0

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

אימות המדיניות של טוקן הגישה
  • organization_name
  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • accesstoken.{custom_attribute}
  • issued_at
  • expires_in
  • status
  • scope
  • apiproduct.name*
  • apiproduct.<custom_attribute_name>*

* משתנים של מוצרי API

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

<OAuthV2 name="VerifyAccessToken">
    <Operation>VerifyAccessToken</Operation>
    <Scope>space-separated-scopes</Scope>*
    <AccessToken>flow.variable</AccessToken>*        
    <AccessTokenPrefix>Bearer</AccessTokenPrefix>*
</OAuthV2>

יש תמיכה רק בטוקנים מסוג bearer. אין תמיכה בטוקנים של MAC.

כברירת מחדל, צריך להעביר את אסימון הגישה בכותרת של בקשת ה-HTTP Authorization.

לדוגמה:

"Authorization: Bearer {PlainText_AccessToken}"

אפשר להעביר כל flow.variable בתור:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

אם לא מציינים את השדות האופציונליים, הערכים מחולצים בהתאם למפרט של OAuth 2.0.

יצירת מדיניות של קוד הרשאה
משתנים שמוגדרים בהצלחה:
  • oauthv2authcode.{policy_name}.code
  • oauthv2authcode.{policy_name}.redirect_uri
  • oauthv2authcode.{policy_name}.scope
  • oauthv2authcode.{policy_name}.client_id

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

<OAuthV2 name="GetAuthCode">
  <Operation>GenerateAuthorizationCode</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable</ResponseType>*
  <ClientId>flow.variable</ClientId>*
  <RedirectUri>flow.variable</RedirectUri>*
  <Scope>flow.variable</Scope>*
  <State>flow.variable</State>*
  <Attributes>*   
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* אופציונלי

אפשר להעביר כל flow.variable בתור:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

אם לא מציינים את השדות האופציונליים, הערכים מחולצים בהתאם למפרט של OAuth 2.0.

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

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

יצירת מדיניות של טוקני גישה לסוגי מענקים: קוד הרשאה, פרטי כניסה של משתמש ופרטי כניסה של לקוח
משתנים שמוגדרים בהצלחה:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

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

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <SupportedGrantTypes>*
    <GrantType>authorization_code</GrantType>
    <GrantType>password</GrantType>
   <GrantType>client_credentials</GrantType>
  </SupportedGrantTypes>
  <GrantType>flow.variable</GrantType>* 
  <ClientId>flow.variable</ClientId>* 
  <RedirectUri>flow.variable</RedirectUri>* 
  <Scope>flow.variable</Scope>* 
  <AppEndUser>flow.variable</AppEndUser>* 
  <Code>flow.variable</Code>* 
  <UserName>flow.variable</UserName>* 
  <PassWord>flow.variable</PassWord>*
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute> 
    <Attribute name=2 ref=flow.variable”>value2</Attribute>  
  </Attributes>
</OAuthV2>

* אופציונלי

אפשר להעביר כל flow.variable בתור:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

אם לא מציינים את השדות האופציונליים, הערכים מחולצים בהתאם למפרט של OAuth 2.0.

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

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

יצירת מדיניות של אסימון גישה לסוג הרשאה מרומז
משתנים שמוגדרים בהצלחה:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

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

<OAuthV2 name="GenerateAccessToken">
  <Operation>GenerateAccessTokenImplicitGrant</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <ResponseType>flow.variable></ResponseType>*
  <ClientId>flow.variable></ClientId>*
  <RedirectUri>flow.variable></RedirectUri>*
  <Scope>flow.variable></Scope>*
  <State>flow.variable></State>*
  <AppEndUser>flow.variable</AppEndUser>*                                   
  <Attributes>*
    <Attribute name=1 ref=flow.variable”>value1</Attribute>
    <Attribute name=2 ref=flow.variable”>value2</Attribute>
  </Attributes>
</OAuthV2>

* אופציונלי

אפשר להעביר כל flow.variable בתור:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

אם לא מציינים את השדות האופציונליים, הערכים מחולצים בהתאם למפרט של OAuth 2.0.

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

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

רענון מדיניות טוקן הגישה
משתנים שמוגדרים בהצלחה:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.token_type
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.refresh_token

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

<OAuthV2 name="RefreshAccessToken">
  <Operation>RefreshAccessToken</Operation>
  <ExpiresIn>1000<ExpiresIn>
  <GrantType>flow.variable</GrantType>*
  <RefreshToken>flow.variable</RefreshToken>*
</OAuthV2>

* אופציונלי

אפשר להעביר כל flow.variable בתור:

  • HTTP Header: request.header.{variable_name}
  • Query parameter: request.queryparam.{variable_name}
  • Form parameter: request.formparam.{variable_name}

אם לא מציינים את השדות האופציונליים, הערכים מחולצים לפי המפרט של OAuth 2.0.

מדיניות בנושא מאפייני לקוח

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

<GetOAuthV2Info name="GetClientAttributes">
<ClientId ref="{variable_name}"/>
</GetOAuthV2Info>

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

<GetOAuthV2Info name="GetClientAttributes">
  <ClientId>{client_id}</ClientId>
</GetOAuthV2Info>
קבלת מדיניות לגבי מאפיינים של טוקן גישה
משתנים שמוגדרים בהצלחה:
  • oauthv2accesstoken.{policy_name}.access_token
  • oauthv2accesstoken.{policy_name}.scope
  • oauthv2accesstoken.{policy_name}.refresh_token
  • oauthv2accesstoken.{policy_name}.accesstoken.{custom_attribute_name}
  • oauthv2accesstoken.{policy_name}.developer.id
  • oauthv2accesstoken.{policy_name}.developer.app.name
  • oauthv2accesstoken.{policy_name}.expires_in
  • oauthv2accesstoken.{policy_name}.status

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

<GetOAuthV2Info name="GetTokenAttributes">
  <AccessToken ref="{variable_name}"/>
</GetOAuthV2Info>

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

<GetOAuthV2Info name="GetTokenAttributes">
<AccessToken>{access_token}</AccessToken>
</GetOAuthV2Info>
קבלת מדיניות מאפייני קוד ההרשאה

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

<GetOAuthV2Info name="GetAuthCodeAttributes">
 <AuthorizationCode ref="{variable_name}"/>
</GetOAuthV2Info>

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

<GetOAuthV2Info name="GetAuthCodeAttributes">
    <AuthorizationCode>{authorization_code}</AuthorizationCode>
</GetOAuthV2Info>
קבלת מדיניות מאפייני אסימון רענון

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

<GetOAuthV2Info name="GetTokenAttributes">
  <RefreshToken ref="{variable_name}"/>
</GetOAuthV2Info>

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

<GetOAuthV2Info name="GetTokenAttributes">
    <RefreshToken>{refresh_token}</RefreshToken>
</GetOAuthV2Info>

משתני תהליך של OAuth 1.0a

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

יצירת מדיניות של טוקן בקשה

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

<OAuthV1 name="GenerateRequestToken">
  <Operation>GenerateRequestToken</Operation>
</OAuthV1>

משתנים שמוגדרים בהצלחה:

  • oauth_token
  • oauth_token_secret
  • oauth_callback_confirmed
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

יצירת מדיניות של טוקן גישה

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

<OAuthV1 name="GenerateAccessToken">
  <Operation>GenerateAccessToken</Operation>
</OAuthV1>

משתנים שמוגדרים בהצלחה:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

מדיניות אימות של טוקן גישה

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

<OAuthV1 name="VerifyAccessToken">
  <Operation>VerifyAccessToken</Operation>
</OAuthV1>

משתנים שמוגדרים בהצלחה:

  • oauth_token
  • oauth_token_secret
  • oauth_response
  • oauth_consumer_key
  • oauth_consumer_secret

אימות המדיניות בנושא מפתחות API

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

<GetOAuthV1Info name="VerifyApiKey">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <APIKey ref="{variable_name}" />
</GetOAuthV1Info>

* אופציונלי

משתנים שמוגדרים בהצלחה:

  • oauth_consumer_key
  • oauth_consumer_secret

אימות מדיניות הצרכנים

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

<GetOAuthV1Info name="VerifyConsumer">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <ConsumerKey ref="{variable_name}" />
</GetOAuthV1Info>

* אופציונלי

משתנים שמוגדרים בהצלחה:

  • oauth_consumer_key
  • oauth_consumer_secret

אימות מדיניות הטוקנים

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

<GetOAuthV1Info name="VerifyToken">
  <OAuthConfig>{config_name}</OAuthConfig>*
  <RequestToken ref="{variable_name}" />
</GetOAuthV1Info>

* אופציונלי

משתנים שמוגדרים בהצלחה:

  • oauth_token
  • oauth_token_secret