משתני תהליך 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>

יש תמיכה רק באסימונים למוכ"ז. אין תמיכה באסימוני MAC.

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

לדוגמה:

"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