משתני תהליך OAuth

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

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

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

משתני זרימה של OAuth 2.0

משתני הזרימה שמוגדרים בטבלה הזו מאוכלסים כשמדיניות ה-OAuth המתאימה מיושמת, ולכן הם זמינים לאפליקציות או לכללי מדיניות אחרים שמופעלים בתהליך של שרת ה-API של שרת ה-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>

יש תמיכה רק באסימונים למוכ"ז. אין תמיכה באסימוני 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 המתאימה מיושמת, ולכן הם זמינים לאפליקציות או לכללי מדיניות אחרים שמופעלים בתהליך של שרת ה-API של שרת ה-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