ตัวแปรโฟลว์ OAuth

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

Apigee Edge ประกอบด้วยความสามารถของ OAuth 1.0a และ OAuth 2 ในชุดนโยบาย ชีวิต การจัดการรอบด้านของโทเค็นและข้อมูลลับ รวมถึงการสร้าง การตรวจสอบ และพื้นที่เก็บข้อมูลจะได้รับการจัดการ โดย Apigee Edge ในนามของบริการแบ็กเอนด์ของคุณ

เอกสารนี้ระบุตัวแปรโฟลว์ที่กำหนดโดยนโยบาย OAuth ตัวแปรสามารถเป็น ซึ่งใช้ในการติดตั้งใช้งานลักษณะการทำงานที่กำหนดเองสำหรับขั้นตอน OAuth สำหรับการใช้ OAuth โปรดดูที่ OAuth

ตัวแปรโฟลว์ OAuth 2.0

ระบบจะป้อนข้อมูลตัวแปรโฟลว์ที่กำหนดในตารางนี้เมื่อนโยบาย OAuth ที่เกี่ยวข้อง ดำเนินการแล้ว ดังนั้นนโยบายหรือแอปพลิเคชันอื่นๆ ที่ดำเนินการในพร็อกซี 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

ค่าแอตทริบิวต์ได้มาแบบไดนามิกจากตัวแปรโฟลว์ที่ระบุ หรือ โดยใช้ค่าเริ่มต้นในนโยบายแบบคงที่

หากระบุทั้ง 2 อย่าง ตัวแปรโฟลว์จะมีความสำคัญเหนือกว่า

สร้างนโยบายโทเค็นเพื่อการเข้าถึงสำหรับประเภทการให้สิทธิ์ รหัสการให้สิทธิ์ ข้อมูลเข้าสู่ระบบของผู้ใช้ และ ข้อมูลเข้าสู่ระบบไคลเอ็นต์
ชุดตัวแปรที่ประสบความสำเร็จ:
  • 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

ค่าแอตทริบิวต์ได้มาแบบไดนามิกจากตัวแปรโฟลว์ที่ระบุ หรือ โดยใช้ค่าเริ่มต้นในนโยบายแบบคงที่

หากระบุทั้ง 2 อย่าง ตัวแปรโฟลว์จะมีความสำคัญเหนือกว่า

สร้างนโยบายโทเค็นเพื่อการเข้าถึงสำหรับประเภทการให้สิทธิ์โดยนัย
ชุดตัวแปรที่ประสบความสำเร็จ:
  • 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

ค่าแอตทริบิวต์ได้มาแบบไดนามิกจากตัวแปรโฟลว์ที่ระบุ หรือ โดยใช้ค่าเริ่มต้นในนโยบายแบบคงที่

หากระบุทั้ง 2 อย่าง ตัวแปรโฟลว์จะมีความสำคัญเหนือกว่า

รีเฟรชนโยบายโทเค็นเพื่อการเข้าถึง
ชุดตัวแปรที่ประสบความสำเร็จ:
  • 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 จึงใช้งานได้

สร้างนโยบายโทเค็นคำขอ

ตัวอย่างนโยบาย

<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