กําหนดนโยบาย OAuthV2Info

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

อะไร

ช่วยให้คุณเพิ่มหรืออัปเดตแอตทริบิวต์ที่กำหนดเองที่เชื่อมโยงกับโทเค็นเพื่อการเข้าถึงได้ แอตทริบิวต์ที่กำหนดเอง อาจรวมถึงชื่อแผนก รหัสลูกค้า หรือตัวระบุเซสชัน ดูเพิ่มเติม การปรับแต่งโทเค็นและ รหัสการให้สิทธิ์

คุณเพิ่มหรือแก้ไขแอตทริบิวต์ที่กำหนดเองได้เท่านั้น คุณใช้นโยบายนี้เพื่อเปลี่ยนช่องต่างๆ ไม่ได้ เช่น ขอบเขต, สถานะ, วันหมดอายุ_in, developer_email, client_id, org_name หรือrefresh_count หากมี มีแอตทริบิวต์อยู่แล้ว นโยบายนี้จะปรับปรุง หากไม่มี นโยบายจะเพิ่มนโยบายดังกล่าว โทเค็นเพื่อการเข้าถึงที่อ้างอิงต้องเป็นโทเค็นที่ถูกต้องและอยู่ในสถานะที่ได้รับอนุมัติ

ตัวอย่าง

ตัวอย่างพื้นฐาน

ด้านล่างนี้คือตัวอย่างนโยบายที่ใช้เพื่ออัปเดตโทเค็นเพื่อการเข้าถึง OAuth 2.0 ตัวอย่างด้านล่าง ค้นหาโทเค็นเพื่อการเข้าถึงในข้อความคำขอโดยมองหาพารามิเตอร์การค้นหาที่เรียกว่า access_token เมื่อแอปไคลเอ็นต์แสดงโทเค็นการเข้าถึง นโยบาย ด้านล่างนี้จะค้นหาโทเค็นเพื่อการเข้าถึงในพารามิเตอร์การค้นหา จากนั้นจะอัปเดตการเข้าถึง โปรไฟล์ของโทเค็น โดยจะเพิ่มพร็อพเพอร์ตี้ที่กำหนดเองชื่อ department.id ลงใน โปรไฟล์

<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>

การอ้างอิงองค์ประกอบ

การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย SetOAuthV2

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1">    
    <DisplayName>Set OAuth v2.0 Info 1</DisplayName>
    <AccessToken ref={some-variable}></AccessToken>
    <Attributes/>
</SetOAuthV2Info>
</xml>

<ตั้งค่าOAuthV2ข้อมูล> แอตทริบิวต์

<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">

ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name สามารถ ประกอบด้วยตัวอักษร ตัวเลข การเว้นวรรค ขีดกลางสั้น ขีดล่าง และจุด ค่านี้ไม่สามารถ เกิน 255 อักขระ

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

ไม่มี ต้องระบุ
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว เป็นเรื่องปกติ พฤติกรรมสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้ดำเนินการตามขั้นตอนได้อย่างต่อเนื่องแม้จะมีนโยบายแล้วก็ตาม ล้มเหลว

เท็จ ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย นโยบายจะไม่ บังคับใช้ แม้ว่าจะยังคงแนบกับขั้นตอน

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

เท็จ เลิกใช้

&lt;DisplayName&gt; องค์ประกอบ

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มี

หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ name ของนโยบายจะเป็น

การมีบุคคลอยู่ ไม่บังคับ
ประเภท สตริง

&lt;AccessToken&gt; องค์ประกอบ

ระบุตัวแปรที่มีโทเค็นเพื่อการเข้าถึงอยู่ ตัวอย่างเช่น หากโทเค็นเพื่อการเข้าถึงคือ แนบไปกับข้อความคำขอเป็นพารามิเตอร์การค้นหา ให้ระบุ request.queryparam.access_token คุณสามารถใช้ตัวแปรใดก็ได้ที่ถูกต้องที่อ้างอิงพารามิเตอร์ โทเค็น หรือส่งในสตริงโทเค็นตามตัวอักษรได้ (กรณีไม่บ่อยนัก)

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ต้องระบุ
ประเภท: สตริง

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
อ้างอิง

ตัวแปรโทเค็นเพื่อการเข้าถึง โดยทั่วไปจะดึงมาจากตัวแปรโฟลว์

ไม่มี ไม่บังคับ

&lt;Attributes&gt; องค์ประกอบ

ชุดแอตทริบิวต์ในโปรไฟล์โทเค็นเพื่อการเข้าถึงที่จะถูกแก้ไขหรือเสริม

ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ต้องระบุ
ประเภท: ไม่มี

&lt;Attributes&gt;/&lt;Attribute&gt; องค์ประกอบ

แอตทริบิวต์แต่ละรายการที่จะอัปเดต

แอตทริบิวต์ชื่อระบุพร็อพเพอร์ตี้ที่กำหนดเองของโปรไฟล์โทเค็นเพื่อการเข้าถึง อัปเดตแล้ว ตัวอย่างนี้แสดงวิธีใช้ค่าตัวแปรที่อ้างอิงและค่าคงที่

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
ค่าเริ่มต้น: ไม่มี
การตรวจหาบุคคล: ไม่บังคับ
ประเภท: ไม่มี

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
ชื่อ ชื่อของแอตทริบิวต์โปรไฟล์ที่จะเพิ่มหรือเปลี่ยน ไม่มี
อ้างอิง

ค่าที่จะกำหนดให้แอตทริบิวต์โปรไฟล์

ไม่มี ไม่บังคับ

ตัวแปรโฟลว์

เมื่อสําเร็จ ระบบจะตั้งค่าตัวแปรของโฟลว์ต่อไปนี้

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

สคีมา

นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd) สคีมานโยบายสำหรับใช้อ้างอิง ที่มีอยู่ใน GitHub

ข้อมูลอ้างอิงข้อผิดพลาด

ส่วนนี้จะอธิบายรหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงกลับมา และตัวแปรข้อผิดพลาดที่ Edge ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้มีความสำคัญต่อการทราบว่าคุณจะสร้างกฎความผิดพลาดเพื่อ จัดการกับข้อผิดพลาด หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่สิ่งที่คุณจำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการ ข้อผิดพลาด

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ
steps.oauth.v2.access_token_expired 500 โทเค็นเพื่อการเข้าถึงที่ส่งไปยังนโยบายหมดอายุแล้ว
steps.oauth.v2.invalid_access_token 500 โทเค็นเพื่อการเข้าถึงที่ส่งไปยังนโยบายไม่ถูกต้อง
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 โปรดดูที่ โพสต์ชุมชน Apigee นี้เพื่อดูข้อมูลเกี่ยวกับการแก้ปัญหาข้อผิดพลาดนี้

ข้อผิดพลาดในการทำให้ใช้งานได้

โปรดดูข้อมูลเกี่ยวกับข้อผิดพลาดในการทำให้ใช้งานได้จากข้อความที่รายงานใน UI

ตัวแปรความผิดพลาด

ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อนโยบายนี้ทำให้เกิดข้อผิดพลาดขณะรันไทม์

ตัวแปร สถานที่ ตัวอย่าง
fault.name="fault_name" fault_name คือชื่อของข้อผิดพลาดตามที่ระบุไว้ในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของรหัสข้อผิดพลาด fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด oauthV2.SetTokenInfo.cause = Invalid Access Token

ตัวอย่างการตอบสนองข้อผิดพลาด

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

ตัวอย่างกฎข้อผิดพลาด

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

หัวข้อที่เกี่ยวข้อง