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