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

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

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