คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
การเพิกถอนการเข้าถึงและโทเค็นการรีเฟรช
ในบางกรณี แอปจำเป็นต้องเพิกถอนหรือทำให้โทเค็นใช้งานไม่ได้อย่างชัดเจน เช่น เมื่อผู้ใช้ออกจากระบบแอปที่เปิดใช้ OAuth หากคุณเพิกถอนโทเค็น คุณจะอนุมัติโทเค็นอีกครั้งได้ทุกเมื่อก่อนที่จะหมดอายุ
ขั้นตอนการเพิกถอนโทเค็นจะกำหนดตามข้อกำหนดการเพิกถอนโทเค็น OAuth 2.0
Apigee Edge มีการดำเนินการ invalidateToken ที่ให้คุณกําหนดค่าปลายทางการเพิกถอนโทเค็นโดยเฉพาะ การเผยแพร่ URI ของปลายทางนี้จะอนุญาตให้นักพัฒนาแอปทำให้โทเค็นที่ออกโดย Edge ไม่ถูกต้อง
ต่อไปนี้คือตัวอย่างการกำหนดค่าสำหรับนโยบาย OAuthV2 และการทำงาน invalidateToken ในกรณีนี้ ทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชที่เกี่ยวข้องจะถูกเพิกถอน ในทางเทคนิค ทั้ง 2 อย่างนี้จะถูกเพิกถอนเพราะมีการตั้งค่าสถานะ 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 เมื่อเห็นประเภทรีเฟรช Edge จะถือว่าโทเค็นนั้นเป็นโทเค็นการรีเฟรช หากพบโทเค็นการรีเฟรช ระบบจะเพิกถอนโทเค็นดังกล่าว หากไม่พบโทเค็นการรีเฟรช Edge จะตรวจสอบว่าโทเค็นนี้เป็นโทเค็นเพื่อการเข้าถึงหรือไม่ หากมีโทเค็นเพื่อการเข้าถึงอยู่ โทเค็นดังกล่าวจะถูกเพิกถอน
หมายเหตุ: หากคุณส่งโทเค็นที่ใช้งานไม่ได้แล้วไปยังนโยบาย invalidateToken นโยบายจะไม่แสดงผลข้อผิดพลาด แม้ว่าคุณอาจจะคาดหวังไว้ก็ตาม การดำเนินการดังกล่าวจะไม่มีผลใดๆ
-
cascade
(ไม่บังคับ, บูลีน, ค่าเริ่มต้น: true) การใช้งานหลักของแอตทริบิวต์นี้คือการเพิกถอนโทเค็นการรีเฟรชโดยไม่เพิกถอนโทเค็นเพื่อการเข้าถึงที่เกี่ยวข้อง พิจารณา กรณีเหล่านี้- เพิกถอนโทเค็นการรีเฟรชเท่านั้น และอย่าเพิกถอนโทเค็นเพื่อการเข้าถึงที่เกี่ยวข้อง ในการดำเนินการนี้
ให้ตั้งค่าประเภท <Token> เป็น
refreshtoken
และตั้งค่าแบบ Cascade เป็นfalse
- เพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช ในการดำเนินการนี้ ให้ตั้งค่าประเภท <Token> เป็น
accesstoken
ค่าของการเรียงซ้อนอาจเป็นtrue
(ค่าเริ่มต้น) หรือfalse
ก็ได้ หากตั้งค่าเป็นtrue
ระบบจะเพิกถอนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช หากตั้งค่าเป็นfalse
ระบบจะเพิกถอนโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชจะใช้ไม่ได้ ดูคำอธิบายเพิ่มเติมได้จากหมายเหตุด้านล่าง - เพิกถอนโทเค็นเพื่อการเข้าถึงและอย่าเพิกถอนโทเค็นการรีเฟรชที่เชื่อมโยง ไม่รองรับ ดูหมายเหตุด้านล่างสำหรับคำอธิบายเพิ่มเติม
- เพิกถอนโทเค็นการรีเฟรชเท่านั้น และอย่าเพิกถอนโทเค็นเพื่อการเข้าถึงที่เกี่ยวข้อง ในการดำเนินการนี้
ให้ตั้งค่าประเภท <Token> เป็น
หมายเหตุ: เพื่อความปลอดภัย หากคุณเพิกถอนโทเค็นเพื่อการเข้าถึง ระบบจะเพิกถอนโทเค็นการรีเฟรชที่เกี่ยวข้องด้วย ดังนั้นคุณจะใช้แอตทริบิวต์ Cascade เพื่อเพิกถอนเฉพาะโทเค็นเพื่อการเข้าถึงไม่ได้ ตัวอย่างเช่น หากคุณตั้งค่าประเภท <Token> เป็น accesstoken
และตั้งค่า cascade=false
โทเค็นเพื่อการเข้าถึงจะถูกเพิกถอน (ตามที่คาดไว้) แต่โทเค็นการรีเฟรชที่เกี่ยวข้องจะใช้ไม่ได้ ซึ่งจะใช้เพื่อรีเฟรชโทเค็นเพื่อการเข้าถึงที่ถูกเพิกถอนไม่ได้ Use Case หลักสำหรับแอตทริบิวต์ Cascade คือเมื่อคุณต้องการเพิกถอนโทเค็นการรีเฟรชเท่านั้น ในกรณีดังกล่าว ให้ตั้งค่าประเภท <Token> เป็น refreshtoken
และตั้งค่า cascade=false
ระบบจะเพิกถอนโทเค็นการรีเฟรช แต่โทเค็นเพื่อการเข้าถึงที่เกี่ยวข้องจะยังคงใช้งานได้ (จนกว่าจะหมดอายุหรือถูกเพิกถอน) ดูข้อมูลเพิ่มเติมได้ที่
การสนทนาในฟอรัมชุมชนนี้
การอนุมัติโทเค็นเพื่อการเข้าถึงและรีเฟรช
ใช้การดำเนินการ verifyToken เพื่อ "อนุมัติ" โทเค็นที่เพิกถอนอีกครั้ง กล่าวคือ เมื่อคุณใช้การดำเนินการนี้ สถานะของโทเค็นเพื่อการเข้าถึงหรือโทเค็นการรีเฟรชจะเปลี่ยนจาก "เพิกถอน" เป็น "อนุมัติแล้ว" คุณตรวจสอบโทเค็นที่เพิกถอนแล้วซึ่งยังไม่หมดอายุได้
<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
และrefreshtoken
cascade
(ไม่บังคับ, บูลีน): โดยค่าเริ่มต้น ตัวเลือกนี้จะตั้งค่าเป็นtrue
และทำให้การตรวจสอบเผยแพร่ไปยังโทเค็นที่เกี่ยวข้อง ดังนั้น หากใช้โทเค็นการรีเฟรช โทเค็นเพื่อการเข้าถึงที่เกี่ยวข้องก็จะได้รับการตรวจสอบด้วย หากใช้กับโทเค็นเพื่อการเข้าถึง โทเค็นการรีเฟรชที่เชื่อมโยงจะได้รับการตรวจสอบด้วยเช่นกัน หากตั้งค่าเป็นfalse
ระบบจะตรวจสอบเฉพาะโทเค็นเพื่อการเข้าถึงหรือการรีเฟรชที่ระบุเท่านั้น