Tôi đang sử dụng dòng Authorization Mã cho một Identity Server 3 khách hàng của tôi và nó được cấu hình như sau:nhận dạng Server 3 refresh thẻ hết hạn trước khi thời gian hết hạn của nó đặt trong cấu hình client
ClientId = "tripgalleryauthcode",
ClientName = "Trip Gallery",
Flow = Flows.AuthorizationCode,
AllowAccessToAllScopes = true,
RequireConsent = false,
// redirect = URI of our callback controller in the IOS application
RedirectUris = new List<string>
{
"somecallbackuri"
},
ClientSecrets = new List<Secret>()
{
"somesecret"
},
// refresh token options
AccessTokenType = AccessTokenType.Jwt,
AccessTokenLifetime = 120,
RefreshTokenUsage = TokenUsage.OneTimeOnly,
RefreshTokenExpiration = TokenExpiration.Absolute,
AbsoluteRefreshTokenLifetime = 360,
Như bạn có thể nhìn thấy , Nó được định cấu hình để hết hạn mã thông báo truy cập trong 2 phút và mã thông báo làm mới sau 6 phút. Tôi đã làm điều này bởi vì tôi muốn cố gắng gỡ lỗi vấn đề trong một khung thời gian nhỏ hơn thay vì cái mà tôi sử dụng trong sản xuất: 15 ngày cho mã thông báo làm mới, 1 giờ cho mã thông báo truy cập. Chúng tôi nhận thấy rằng vì một số lý do, mã thông báo làm mới được phát hành hôm nay không hoạt động vào ngày mai. Đó là lý do tại sao tôi quyết định giảm thời gian và đây là những gì đã xảy ra:
- Tại 13:05 tôi đã làm mới yêu cầu token và nhận refres mới và thẻ truy cập
- Bây giờ tôi mong đợi dấu hiệu làm mới của tôi hết hạn lúc 1:11 PM
- Tại 1:10 PM Tôi gọi tới điểm cuối mã thông báo bằng cách sử dụng loại cấp phép refresh_token cố gắng truy cập mới và mã thông báo làm mới. Điều xảy ra là tôi nhận được lỗi HTTP 400 nói rằng đây là invalid_grant.
Tôi đã nhận thấy nhiều hơn một chút. Điều gì xảy ra là 2 phút sau khi hết hạn mã thông báo truy cập tôi nhận được lỗi 400. Nó nói mã thông báo làm mới không hợp lệ.
Đây là nhật ký từ Máy chủ nhận dạng.
w3wp.exe Information: 0 : 2016-11-23 10:56:15.802 +00:00 [Information] Start token request
w3wp.exe Information: 0 : 2016-11-23 10:56:15.802 +00:00 [Information] Client secret id found: "tripgalleryauthcode"
w3wp.exe Information: 0 : 2016-11-23 10:56:15.802 +00:00 [Information] Client validation success
w3wp.exe Information: 0 : 2016-11-23 10:56:15.802 +00:00 [Information] Start token request validation
w3wp.exe Information: 0 : 2016-11-23 10:56:15.802 +00:00 [Information] Start validation of refresh token request
w3wp.exe Warning: 0 : 2016-11-23 10:56:15.802 +00:00 [Warning] "Refresh token has expired"
"{
\"ClientId\": \"tripgalleryauthcode\",
\"ClientName\": \"Trip Gallery\",
\"GrantType\": \"refresh_token\",
\"RefreshToken\": \"d12f50289e5cded13082de989a64ac01\",
\"Raw\": {
\"grant_type\": \"refresh_token\",
\"refresh_token\": \"d12f50289e5cded13082de989a64ac01\"
}
}"
w3wp.exe Information: 0 : 2016-11-23 10:56:15.818 +00:00 [Information] End token request
w3wp.exe Information: 0 : 2016-11-23 10:56:15.818 +00:00 [Information] Returning error: invalid_grant
Tôi thực sự muốn biết nguyên nhân gây ra hành vi đó và điều gì khiến mã thông báo hết hạn của tôi hết hạn trước hạn chót.
Vui lòng xem chủ đề này http://stackoverflow.com/questions/43249912/identity-server-by-leastprivilege-doesnt-work-properly-on-azure – user2128702