คุณกำลังดูเอกสารประกอบ 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 |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
ประเภท | สตริง |
<AccessToken> องค์ประกอบ
ระบุตัวแปรที่มีโทเค็นเพื่อการเข้าถึงอยู่ ตัวอย่างเช่น หากโทเค็นเพื่อการเข้าถึงคือ
แนบไปกับข้อความคำขอเป็นพารามิเตอร์การค้นหา ให้ระบุ
request.queryparam.access_token
คุณสามารถใช้ตัวแปรใดก็ได้ที่ถูกต้องที่อ้างอิงพารามิเตอร์
โทเค็น หรือส่งในสตริงโทเค็นตามตัวอักษรได้ (กรณีไม่บ่อยนัก)
<AccessToken ref="request.queryparam.access_token"></AccessToken>
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ต้องระบุ |
ประเภท: | สตริง |
Attributes
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
อ้างอิง |
ตัวแปรโทเค็นเพื่อการเข้าถึง โดยทั่วไปจะดึงมาจากตัวแปรโฟลว์ |
ไม่มี | ไม่บังคับ |
<Attributes> องค์ประกอบ
ชุดแอตทริบิวต์ในโปรไฟล์โทเค็นเพื่อการเข้าถึงที่จะถูกแก้ไขหรือเสริม
ค่าเริ่มต้น: | ไม่มี |
การตรวจหาบุคคล: | ต้องระบุ |
ประเภท: | ไม่มี |
<Attributes>/<Attribute> องค์ประกอบ
แอตทริบิวต์แต่ละรายการที่จะอัปเดต
แอตทริบิวต์ชื่อระบุพร็อพเพอร์ตี้ที่กำหนดเองของโปรไฟล์โทเค็นเพื่อการเข้าถึง อัปเดตแล้ว ตัวอย่างนี้แสดงวิธีใช้ค่าตัวแปรที่อ้างอิงและค่าคงที่
<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>