การอนุมัติและเพิกถอนโทเค็นเพื่อการเข้าถึง

คุณกำลังดูเอกสารประกอบของ 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 ระบบจะเพิกถอนโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชจะใช้ไม่ได้ ดูคำอธิบายเพิ่มเติมได้จากหมายเหตุด้านล่าง
    • เพิกถอนโทเค็นเพื่อการเข้าถึงและอย่าเพิกถอนโทเค็นการรีเฟรชที่เชื่อมโยง ไม่รองรับ ดูหมายเหตุด้านล่างสำหรับคำอธิบายเพิ่มเติม

หมายเหตุ: เพื่อความปลอดภัย หากคุณเพิกถอนโทเค็นเพื่อการเข้าถึง ระบบจะเพิกถอนโทเค็นการรีเฟรชที่เกี่ยวข้องด้วย ดังนั้นคุณจะใช้แอตทริบิวต์ 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 ระบบจะตรวจสอบเฉพาะโทเค็นเพื่อการเข้าถึงหรือการรีเฟรชที่ระบุเท่านั้น