ใน OpenID Connect โทเค็นการเข้าถึงมีเวลาหมดอายุ สำหรับโฟลว์รหัสการอนุญาตโดยทั่วไปจะสั้น (เช่น 20 นาที) หลังจากนั้นคุณใช้โทเค็นการรีเฟรชเพื่อขอโทเค็นการเข้าถึงใหม่
ID tokenนอกจากนี้ยังมีเวลาหมดอายุ คำถามของฉันคือเจตนาของสิ่งนี้คืออะไร?
เวลาหมดอายุของโทเค็น ID ใด ๆ น้อยกว่าเวลาหมดอายุของโทเค็นการรีเฟรชจะหมายความว่าในที่สุดคุณจะมีโทเค็น ID ที่หมดอายุ แต่โทเค็นการเข้าถึงที่ถูกต้อง
คุณตั้งใจที่จะ:
- กำหนดให้โทเค็นรหัสของคุณหมดอายุนานกว่าการหมดอายุโทเค็นการรีเฟรชหรือ
- ตั้งค่าให้หมดอายุเช่นเดียวกับโทเค็นการเข้าถึงและดำเนินการบางอย่าง (อะไรนะ?) เมื่อหมดอายุหรือ
- เพียงแค่ใช้โทเค็น ID ในไคลเอนต์ของคุณในใบเสร็จรับเงินจากนั้นละเว้นเวลาหมดอายุหลังจากนั้น?
ข้อกำหนดOpenID Connectบอกว่าเมื่อตรวจสอบความถูกต้องของโทเค็น ID
"The current time MUST be before the time represented by the exp Claim."
ซึ่ง (อาจ) รองรับตัวเลือกที่สามด้านบน
แก้ไข
เนื่องจาก OpenID Connect สร้างบน OAuth2 คำตอบสำหรับคำถามเสริมด้านล่างสามารถพบได้ในข้อกำหนด OAuth2ซึ่งกล่าวว่า
expires_in
RECOMMENDED. The lifetime in seconds of the access token.
คำถามที่เกี่ยวข้องคือเมื่อคุณแลกเปลี่ยนรหัสการอนุญาตสำหรับโทเค็นข้อกำหนดเดียวกันระบุว่าคุณอาจได้รับคำตอบเช่น:
{
"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": 3600,
"id_token": "eyJhbG[...]"
}
แต่ "expires_in" เกี่ยวข้องกับอะไรในกรณีนี้ โทเค็นการเข้าถึงโทเค็นการรีเฟรชหรือโทเค็น ID?
(สำหรับข้อมูลIdentityServer3ตั้งค่านี้เป็นเวลาหมดอายุโทเค็นการเข้าถึง)