คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
การเพิกถอนโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช
ในบางกรณี แอปจะต้องเพิกถอนหรือทำให้โทเค็นไม่ถูกต้องอย่างชัดแจ้ง เช่น เมื่อ ผู้ใช้ออกจากระบบของแอปที่เปิดใช้ OAuth หากคุณเพิกถอนโทเค็น คุณจะอนุมัติโทเค็นนั้นอีกครั้งได้ทุกเมื่อ ก่อนที่โทเค็นจะหมดอายุ
ขั้นตอนการเพิกถอนโทเค็นกำหนดไว้ในข้อกำหนดการเพิกถอนโทเค็น OAuth 2.0
Apigee Edge มีการดำเนินการ InvalidateToken ที่ช่วยให้คุณกำหนดค่าปลายทางการเพิกถอนโทเค็นโดยเฉพาะ ได้ การเผยแพร่ URI ของปลายทางนี้จะช่วยให้นักพัฒนาแอปทำให้โทเค็นที่ออกโดย Edge ไม่ถูกต้องได้
นี่คือตัวอย่างการกำหนดค่าสำหรับนโยบาย OAuthV2 และการดำเนินการ InvalidateToken ใน กรณีนี้ ระบบจะเพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชที่เชื่อมโยงกัน ในทางเทคนิคแล้ว ระบบจะเพิกถอนโทเค็นทั้ง 2 รายการเนื่องจากมีการตั้งค่าแฟล็ก Cascade เป็น "จริง" ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของ แฟล็ก Cascade ได้ในส่วนแอตทริบิวต์ขององค์ประกอบโทเค็นด้านล่าง
<OAuthV2 name="InvalidateToken"> <Operation>InvalidateToken</Operation> <Tokens> <Token type="accesstoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
องค์ประกอบ <Tokens>/<Token>
ระบุตัวแปรโฟลว์ที่ระบุโทเค็นที่จะเพิกถอน ตัวอย่างเช่น หากนักพัฒนาแอปต้องส่งคำขอเพิกถอนโดยใช้พารามิเตอร์การค้นหาที่ชื่อว่า access_token ตัวแปรโฟลว์ที่ถูกต้องจะเป็น request.queryparam.access_token หากต้องการกำหนดให้โทเค็นอยู่ในส่วนหัว HTTP,
ตัวอย่างเช่น ให้ตั้งค่านี้เป็น request.header.access_token
Attributes
-
type(ต้องระบุ, สตริง): ประเภทโทเค็นที่ระบุโดยตัวแปร ที่ระบุ ค่าที่รองรับ คือaccesstokenและrefreshtoken:- หากต้องการเพิกถอนโทเค็นเพื่อการเข้าถึง ให้ระบุประเภทเป็น accesstoken
- หากต้องการเพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช ให้ระบุประเภทเป็น refreshtoken เมื่อเห็น
ประเภทเป็น refreshtoken Edge จะถือว่าโทเค็นเป็นโทเค็นการรีเฟรช หากพบโทเค็นการรีเฟรชดังกล่าว ระบบจะเพิกถอนโทเค็น หากไม่พบโทเค็นการรีเฟรชดังกล่าว Edge จะตรวจสอบว่าโทเค็นเป็นโทเค็นเพื่อการเข้าถึงหรือไม่ หากมีโทเค็นเพื่อการเข้าถึง ระบบจะเพิกถอนโทเค็น
หมายเหตุ: หากคุณส่งโทเค็นที่ทำให้ไม่ถูกต้องแล้วไปยังนโยบาย InvalidateToken นโยบายจะไม่แสดงข้อผิดพลาด แม้ว่าคุณอาจคาดหวังให้เป็นเช่นนั้น การดำเนินการดังกล่าวจะไม่มีผล
-
cascade(ไม่บังคับ, บูลีน, ค่าเริ่มต้น: จริง) การใช้งานหลักของแอตทริบิวต์นี้คือการเพิกถอนโทเค็นการรีเฟรชโดยไม่เพิกถอนโทเค็นเพื่อการเข้าถึงที่เชื่อมโยง พิจารณากรณีต่อไปนี้- เพิกถอนเฉพาะโทเค็นการรีเฟรชและไม่เพิกถอนโทเค็นเพื่อการเข้าถึงที่เชื่อมโยง หากต้องการทำเช่นนี้
ให้ตั้งค่าประเภท <Token> เป็น
refreshtokenและตั้งค่า Cascade เป็นfalse - เพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช หากต้องการทำเช่นนี้ ให้ตั้งค่าประเภท <Token>
เป็น
accesstokenค่าของ Cascade อาจเป็นtrue(ค่าเริ่มต้น) หรือfalseหากตั้งค่าเป็นtrueระบบจะเพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช หากตั้งค่าเป็นfalseระบบจะเพิกถอนโทเค็นเพื่อการเข้าถึง และโทเค็นการรีเฟรชจะใช้ไม่ได้ ดูคำอธิบายเพิ่มเติมได้ในหมายเหตุด้านล่าง - เพิกถอนโทเค็นเพื่อการเข้าถึงและไม่เพิกถอนโทเค็นการรีเฟรชที่เชื่อมโยง ไม่ รองรับ ดูคำอธิบายเพิ่มเติมได้ในหมายเหตุด้านล่าง
- เพิกถอนเฉพาะโทเค็นการรีเฟรชและไม่เพิกถอนโทเค็นเพื่อการเข้าถึงที่เชื่อมโยง หากต้องการทำเช่นนี้
ให้ตั้งค่าประเภท <Token> เป็น
หมายเหตุ: ด้วยเหตุผลด้านความปลอดภัย หากคุณเพิกถอน
โทเค็นเพื่อการเข้าถึง ระบบจะเพิกถอนโทเค็นการรีเฟรชที่เชื่อมโยงด้วย ดังนั้น คุณจึงใช้
แอตทริบิวต์ Cascade เพื่อเพิกถอนเฉพาะโทเค็นเพื่อการเข้าถึงไม่ได้ ตัวอย่างเช่น หากคุณตั้งค่าประเภท <Token>
เป็น accesstoken และตั้งค่า cascade=false ระบบจะเพิกถอนโทเค็นเพื่อการเข้าถึง
(ตามที่คาดไว้) แต่โทเค็นการรีเฟรชที่เชื่อมโยงจะใช้ไม่ได้ คุณจะใช้โทเค็นการรีเฟรชเพื่อรีเฟรช
โทเค็นเพื่อการเข้าถึงที่เพิกถอนไม่ได้ กรณีการใช้งานหลักสำหรับแอตทริบิวต์ Cascade คือเมื่อคุณต้องการเพิกถอนเฉพาะ
โทเค็นการรีเฟรช ในกรณีดังกล่าว ให้ตั้งค่าประเภท <Token> เป็น refreshtoken,
และตั้งค่า cascade=false ระบบจะเพิกถอนโทเค็นการรีเฟรช แต่โทเค็นเพื่อการเข้าถึงที่เชื่อมโยง
จะยังคงใช้ได้ (จนกว่าจะหมดอายุหรือถูกเพิกถอน) ดูข้อมูลเพิ่มเติมได้ที่การสนทนาในฟอรัมชุมชนนี้
การอนุมัติโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช
ใช้การดำเนินการ ValidateToken เพื่อ "อนุมัติอีกครั้ง" โทเค็นที่เพิกถอน นั่นคือ เมื่อคุณใช้การดำเนินการนี้ สถานะของโทเค็นเพื่อการเข้าถึงหรือโทเค็นการรีเฟรชเป้าหมายจะเปลี่ยนจาก 'เพิกถอน' เป็น 'อนุมัติ' คุณสามารถตรวจสอบโทเค็นที่เพิกถอนแล้วซึ่งยังไม่หมดอายุ
<OAuthV2 name="ValidateToken"> <Operation>ValidateToken</Operation> <Tokens> <Token type="refreshtoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
องค์ประกอบ <Tokens>/<Token>
ระบุตัวแปรโฟลว์ที่ระบุโทเค็นที่จะตรวจสอบ ตัวอย่างเช่น หากนักพัฒนาแอปต้องส่งคำขอตรวจสอบโดยใช้พารามิเตอร์การค้นหา
ที่ชื่อว่า access_token ตัวแปรโฟลว์ที่ถูกต้องจะ
เป็น: request.queryparam.access_token หากต้องการกำหนดให้โทเค็นอยู่ในส่วนหัว HTTP,
ตัวอย่างเช่น ให้ตั้งค่านี้เป็น request.header.access_token
Attributes
type(ต้องระบุ, สตริง) ประเภทโทเค็นที่ระบุโดยตัวแปร ที่ระบุ ค่าที่รองรับ คือaccesstokenและrefreshtokencascade(ไม่บังคับ, บูลีน): โดยค่าเริ่มต้น ตัวเลือกนี้จะตั้งค่าเป็นtrueและทำให้การตรวจสอบขยายไปยังโทเค็นที่เชื่อมโยง ดังนั้น หากใช้กับโทเค็นการรีเฟรช ระบบจะตรวจสอบโทเค็นเพื่อการเข้าถึงที่เชื่อมโยงด้วย หากใช้กับโทเค็นเพื่อการเข้าถึง ระบบจะตรวจสอบโทเค็นการรีเฟรชที่เชื่อมโยงด้วย หากตั้งค่านี้เป็นfalseระบบจะตรวจสอบเฉพาะโทเค็นเพื่อการเข้าถึงหรือโทเค็นการรีเฟรชที่ระบุ