Trong OpenID Connect, mã thông báo truy cập có thời hạn sử dụng. Đối với luồng mã ủy quyền, thời gian này thường ngắn (ví dụ: 20 phút), sau đó bạn sử dụng mã làm mới để yêu cầu mã thông báo truy cập mới.
Các ID Mã thông báo cũng có một thời gian hết hạn. Câu hỏi của tôi là mục đích của việc này là gì?
Bất kỳ thời gian hết hạn nào của mã thông báo ID nhỏ hơn thời gian hết hạn của mã thông báo làm mới sẽ có nghĩa là cuối cùng bạn sẽ có mã thông báo ID đã hết hạn, nhưng là mã thông báo truy cập hợp lệ.
Vì vậy, bạn có ý định:
- cung cấp cho mã thông báo ID của bạn hết hạn lâu hơn thời hạn sử dụng mã thông báo làm mới hoặc
- đặt nó thành thời hạn sử dụng giống như mã thông báo truy cập và thực hiện một số hành động (cái gì?) khi nó hết hạn, hoặc
- chỉ sử dụng mã thông báo ID trong khách hàng của bạn khi nhận, sau đó bỏ qua thời gian hết hạn sau đó?
Thông số kỹ thuật của OpenID Connect chỉ nói rằng khi xác thực mã thông báo ID,
"The current time MUST be before the time represented by the exp Claim."
mà (có thể) hỗ trợ tùy chọn thứ ba ở trên.
BIÊN TẬP
Khi OpenID Connect xây dựng trên OAuth2, bạn có thể tìm thấy câu trả lời cho câu hỏi bổ sung bên dưới trong thông số kỹ thuật OAuth2 cho biết,
expires_in
RECOMMENDED. The lifetime in seconds of the access token.
Một câu hỏi liên quan là khi bạn trao đổi mã ủy quyền cho các mã thông báo, thông số kỹ thuật tương tự cho biết bạn có thể nhận được phản hồi như:
{
"access_token": "SlAV32hkKG",
"token_type": "Bearer",
"refresh_token": "8xLOxBtZp8",
"expires_in": 3600,
"id_token": "eyJhbG[...]"
}
Nhưng "expires_in" liên quan gì trong trường hợp này? Mã thông báo truy cập, mã làm mới hoặc mã thông báo ID?
(Để biết thông tin, IdentityServer3 đặt điều này thành thời gian hết hạn mã thông báo truy cập).