คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ภาพรวม
เพิกถอนโทเค็นเพื่อการเข้าถึง OAuth2 ที่เชื่อมโยงกับรหัสแอปของนักพัฒนาแอปหรือรหัสผู้ใช้ปลายทางของแอป หรือทั้งสองอย่าง
ใช้นโยบาย OAuthv2 เพื่อสร้างโทเค็นเพื่อการเข้าถึง OAuth 2.0 โทเค็นที่ Apigee สร้างขึ้น มีรูปแบบดังต่อไปนี้
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
องค์ประกอบ application_name
มีรหัสแอปของนักพัฒนาซอฟต์แวร์ที่เชื่อมโยงกับโทเค็น
โดยค่าเริ่มต้น Apigee จะไม่มี ID ผู้ใช้ปลายทางในโทเค็น คุณกำหนดค่า Apigee ให้รวมได้
รหัสผู้ใช้ปลายทางด้วยการเพิ่มองค์ประกอบ <AppEndUser>
ลงในนโยบาย OAuthv2 ดังนี้
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
ในตัวอย่างนี้ ให้ส่งรหัสผู้ใช้ปลายทางไปยังนโยบาย OAuthv2 ในพารามิเตอร์การค้นหาชื่อ app_enduser
จากนั้น ID ผู้ใช้ปลายทางจะรวมอยู่ในโทเค็นในองค์ประกอบ app_enduser
:
วันที่
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
เพิกถอนตามรหัสแอปของนักพัฒนาซอฟต์แวร์
เพิกถอนโทเค็นเพื่อการเข้าถึง OAuth2 ที่เชื่อมโยงกับรหัสแอปของนักพัฒนาแอป โทเค็นเพื่อการเข้าถึง OAuth2 ทั้งหมดที่สร้างโดย Apigee จะมีรหัสของแอปนักพัฒนาซอฟต์แวร์ที่เชื่อมโยงอยู่ ด้วยโทเค็น จากนั้นคุณจะเพิกถอนโทเค็นโดยอิงตามรหัสแอปดังกล่าวได้
ใช้ Developer Apps API เพื่อดูรายการรหัสแอปของนักพัฒนาซอฟต์แวร์เฉพาะราย
คุณยังสามารถใช้ Developer Apps API เพื่อดูรายละเอียดเกี่ยวกับแอป
เพิกถอนตามรหัสผู้ใช้ปลายทางของแอป
เพิกถอนโทเค็นเพื่อการเข้าถึง OAuth2 ที่เชื่อมโยงกับรหัสของผู้ใช้ปลายทางของแอปที่เจาะจง นี่คือโทเค็น ที่เชื่อมโยงกับรหัสของผู้ใช้ที่ออกโทเค็นให้
โดยค่าเริ่มต้นจะไม่มีช่องสำหรับรหัสผู้ใช้ปลายทางในโทเค็นเพื่อการเข้าถึง OAuth วิธีเปิดใช้การเพิกถอน โทเค็นเพื่อการเข้าถึง OAuth 2.0 ตามรหัสผู้ใช้ปลายทาง คุณต้องกำหนดค่านโยบาย OAuthv2 ให้รวมรหัสผู้ใช้ไว้ด้วย ในโทเค็นดังที่แสดงด้านบน
หากต้องการรับรหัสผู้ใช้ปลายทางของแอป ให้ใช้ API สำหรับนักพัฒนาแอป
ตัวอย่าง
ตัวอย่างต่อไปนี้ใช้นโยบายเพิกถอน OAuth V2 เพื่อเพิกถอนโทเค็นเพื่อการเข้าถึง OAuth2
รหัสแอปของนักพัฒนาซอฟต์แวร์
หากต้องการเพิกถอนโทเค็นเพื่อการเข้าถึงตามรหัสแอปของนักพัฒนาซอฟต์แวร์ ให้ใช้องค์ประกอบ <AppId>
ใน
นโยบายของคุณ
ตัวอย่างต่อไปนี้คาดว่าจะพบรหัสแอปของนักพัฒนาซอฟต์แวร์ของโทเค็นเพื่อการเข้าถึงในพารามิเตอร์การค้นหาที่ชื่อ
app_id
:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
นโยบายเพิกถอนโทเค็นเพื่อการเข้าถึงเนื่องจากรหัสของแอปนักพัฒนาซอฟต์แวร์
เพิกถอนก่อนการประทับเวลา
วิธีเพิกถอนโทเค็นเพื่อการเข้าถึงตามรหัสแอปของนักพัฒนาแอปที่สร้างขึ้นก่อนวันที่และเวลาที่ระบุ
ใช้องค์ประกอบ <RevokeBeforeTimestamp>
ในนโยบายของคุณ <RevokeBeforeTimestamp>
ระบุเวลา Epoch ของ UTC เป็นมิลลิวินาที ระบบจะเพิกถอนโทเค็นทั้งหมดที่ออกก่อนเวลาดังกล่าว
ตัวอย่างต่อไปนี้เพิกถอนโทเค็นเพื่อการเข้าถึงสำหรับแอปของนักพัฒนาซอฟต์แวร์ที่สร้างขึ้นก่อนวันที่ 1 กรกฎาคม 2019
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
องค์ประกอบ <RevokeBeforeTimestamp>
ใช้จำนวนเต็ม 64 บิต (ยาว) แทน
จำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่เที่ยงคืนของวันที่ 1 มกราคม 1970 (UTC)
การอ้างอิงองค์ประกอบ
การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย CancelOAuthV2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
<cancelOAuthV2> แอตทริบิวต์
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด
แอตทริบิวต์ | คำอธิบาย | ค่าเริ่มต้น | การมีบุคคลอยู่ |
---|---|---|---|
name |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ (ไม่บังคับ) ใช้องค์ประกอบ |
ไม่มี | ต้องระบุ |
continueOnError |
ตั้งค่าเป็น ตั้งค่าเป็น |
เท็จ | ไม่บังคับ |
enabled |
ตั้งค่าเป็น ตั้งค่าเป็น |
จริง | ไม่บังคับ |
async |
แอตทริบิวต์นี้เลิกใช้งานแล้ว |
เท็จ | เลิกใช้ |
<DisplayName> องค์ประกอบ
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายใน
เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน
<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น |
ไม่มี หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ |
---|---|
การมีบุคคลอยู่ | ไม่บังคับ |
ประเภท | สตริง |
<AppId> องค์ประกอบ
ระบุรหัสแอปของนักพัฒนาซอฟต์แวร์ของโทเค็นที่จะเพิกถอน ส่งผ่านตัวแปรที่มีฟิลด์ รหัสแอปหรือรหัสแอปลิเทอรัล
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
ค่าเริ่มต้น |
|
---|---|
การมีบุคคลอยู่ |
ไม่บังคับ |
ประเภท | สตริง |
ค่าที่ถูกต้อง |
ตัวแปรโฟลว์ที่มีสตริงรหัสแอปหรือสตริงตรง |
<Cascade> องค์ประกอบ
ถ้า true
และคุณมีโทเค็นเพื่อการเข้าถึงที่ทึบแสงแบบเดิม ฟังก์ชันทั้งสอง
ระบบจะเพิกถอนโทเค็นการรีเฟรชและโทเค็นเพื่อการเข้าถึงหาก<AppId>
หรือ
ตรงกัน <EndUserId>
หากเป็น false
มีเพียงโทเค็นเพื่อการเข้าถึงเท่านั้นที่ถูกเพิกถอนและโทเค็นการรีเฟรชไม่มีการเปลี่ยนแปลง ใช้ลักษณะการทำงานเดียวกัน
สำหรับโทเค็นเพื่อการเข้าถึงแบบทึบเท่านั้น
<Cascade>false<Cascade>
ค่าเริ่มต้น |
เท็จ |
---|---|
การมีบุคคลอยู่ |
ไม่บังคับ |
ประเภท | บูลีน |
ค่าที่ถูกต้อง | true หรือ false |
<EndUserId> องค์ประกอบ
ระบุรหัสผู้ใช้ปลายทางของแอปของโทเค็นที่จะเพิกถอน ส่งผ่านตัวแปรที่มีฟิลด์ รหัสผู้ใช้หรือสตริงโทเค็นตามตัวอักษร
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
ค่าเริ่มต้น |
|
---|---|
การมีบุคคลอยู่ |
ไม่บังคับ |
ประเภท | สตริง |
ค่าที่ถูกต้อง |
ตัวแปรโฟลว์ที่มีสตริงรหัสผู้ใช้หรือสตริงตรง |
<RevokeBeforeTimestamp> องค์ประกอบ
เพิกถอนโทเค็นที่ออกก่อนการประทับเวลา องค์ประกอบนี้ใช้งานได้กับ <AppId>
และ <EndUserId>
เพื่ออนุญาตให้คุณเพิกถอนโทเค็นได้ก่อนเวลาที่เจาะจง
ค่าเริ่มต้นคือเวลาที่นโยบายทํางาน
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
ค่าเริ่มต้น |
การประทับเวลาที่มีการบังคับใช้นโยบาย |
---|---|
การมีบุคคลอยู่ |
ไม่บังคับ |
ประเภท | จำนวนเต็ม 64 บิต (ยาว) แสดงจำนวนมิลลิวินาทีที่ผ่านไปนับตั้งแต่เที่ยงคืน วันที่ 1 มกราคม 1970 UTC |
ค่าที่ถูกต้อง |
โดยอาจเป็นตัวแปรโฟลว์ที่มีการประทับเวลาหรือการประทับเวลาลิเทอรัล การประทับเวลาต้องไม่เป็นเวลาในอนาคต และต้องไม่อยู่ก่อนวันที่ 1 มกราคม 2014 |
ตัวแปรโฟลว์
นโยบาย CancelOAuthV2 ไม่ได้ตั้งค่าตัวแปรโฟลว์
ข้อมูลอ้างอิงข้อผิดพลาด
ส่วนนี้จะอธิบายรหัสข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงกลับมา และตัวแปรข้อผิดพลาดที่ Edge ตั้งค่าไว้เมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้มีความสำคัญต่อการทราบว่าคุณจะสร้างกฎความผิดพลาดเพื่อ จัดการกับข้อผิดพลาด หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่สิ่งที่คุณจำเป็นต้องทราบ เกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการ ข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน ชื่อข้อผิดพลาดที่แสดงด้านล่างคือสตริง
ที่กำหนดให้กับตัวแปร fault.name
เมื่อเกิดข้อผิดพลาด ดูรอยเลื่อน
ตัวแปรด้านล่างเพื่อดูรายละเอียดเพิ่มเติม
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp |
500 | การประทับเวลาต้องไม่เป็นวันที่ในอนาคต |
steps.oauth.v2.InvalidEarlyTimestamp |
500 | การประทับเวลาต้องไม่อยู่ก่อนวันที่ 1 มกราคม 2014 |
steps.oauth.v2.InvalidTimestamp |
500 | การประทับเวลาไม่ถูกต้อง |
steps.oauth.v2.EmptyAppAndEndUserId |
500 | ต้องระบุทั้ง AppdId และ EndUserId |
ข้อผิดพลาดในการทำให้ใช้งานได้
โปรดดูข้อมูลเกี่ยวกับข้อผิดพลาดในการทำให้ใช้งานได้จากข้อความที่รายงานใน UI
ตัวแปรความผิดพลาด
ระบบจะตั้งค่าตัวแปรเหล่านี้เมื่อนโยบายนี้ทำให้เกิดข้อผิดพลาดขณะรันไทม์
ตัวแปร | สถานที่ | ตัวอย่าง |
---|---|---|
fault.name="fault_name" |
fault_name คือชื่อของข้อผิดพลาดตามที่ระบุไว้ในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของรหัสข้อผิดพลาด | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นสาเหตุของข้อผิดพลาด | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
ตัวอย่างการตอบสนองข้อผิดพลาด
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
ตัวอย่างกฎข้อผิดพลาด
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>