คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
อะไร
ช่วยให้คุณเพิ่มหรืออัปเดตแอตทริบิวต์ที่กำหนดเองซึ่งเชื่อมโยงกับโทเค็นเพื่อการเข้าถึง แอตทริบิวต์ที่กำหนดเอง อาจรวมถึงสิ่งต่างๆ เช่น ชื่อแผนก รหัสลูกค้า หรือตัวระบุเซสชัน ดูเพิ่มเติมที่ การปรับแต่งโทเค็นและ รหัสการให้สิทธิ์
คุณสามารถเพิ่มหรือแก้ไขแอตทริบิวต์ที่กำหนดเองได้เท่านั้น คุณไม่สามารถใช้นโยบายนี้เพื่อเปลี่ยนช่องต่างๆ เช่น ขอบเขต สถานะ expires_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>
แอตทริบิวต์ <SetOAuthV2Info>
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
| แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
|---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
| ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
|---|---|
| การมีบุคคลอยู่ | ไม่บังคับ |
| ประเภท | สตริง |
องค์ประกอบ <AccessToken>
ระบุตัวแปรที่โทเค็นเพื่อการเข้าถึงอยู่ ตัวอย่างเช่น หากโทเค็นเพื่อการเข้าถึงแนบอยู่กับข้อความคำขอเป็นพารามิเตอร์การค้นหา ให้ระบุ request.queryparam.access_token คุณสามารถใช้ตัวแปรที่ถูกต้องซึ่งอ้างอิง
โทเค็นได้ หรือส่งสตริงโทเค็นตามตัวอักษร (กรณีที่พบได้น้อย)
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| ค่าเริ่มต้น: | ไม่มี |
| การมีบุคคลอยู่: | ต้องระบุ |
| ประเภท: | สตริง |
แอตทริบิวต์
| แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
|---|---|---|---|
| ref |
ตัวแปรโทเค็นเพื่อการเข้าถึง โดยปกติจะดึงข้อมูลจากตัวแปรโฟลว์ |
ไม่มี | ไม่บังคับ |
องค์ประกอบ <Attributes>
ชุดแอตทริบิวต์ในโปรไฟล์โทเค็นเพื่อการเข้าถึงที่จะมีการแก้ไขหรือเพิ่ม
| ค่าเริ่มต้น: | ไม่มี |
| การมีบุคคลอยู่: | ต้องระบุ |
| ประเภท: | ไม่มี |
องค์ประกอบ <Attributes>/<Attribute>
แอตทริบิวต์แต่ละรายการที่จะอัปเดต
แอตทริบิวต์ชื่อจะระบุคุณสมบัติที่กำหนดเองของโปรไฟล์โทเค็นเพื่อการเข้าถึงที่จะ อัปเดต ตัวอย่างนี้แสดงวิธีใช้ค่าตัวแปรที่อ้างอิงและค่าแบบคงที่
<Attributes>
<Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
<Attribute name="foo">bar</Attribute>
</Attributes>| ค่าเริ่มต้น: | ไม่มี |
| การมีบุคคลอยู่: | ไม่บังคับ |
| ประเภท: | ไม่มี |
แอตทริบิวต์
| แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
|---|---|---|---|
| name | ชื่อแอตทริบิวต์โปรไฟล์ที่จะเพิ่มหรือเปลี่ยน | ไม่มี | |
| ref |
ค่าที่จะกำหนดให้กับแอตทริบิวต์โปรไฟล์ |
ไม่มี | ไม่บังคับ |
ตัวแปรโฟลว์
เมื่อสำเร็จ ระบบจะตั้งค่าตัวแปรโฟลว์ต่อไปนี้
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{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>