Токен сеанса становится недействительным после сброса пула

Я использую Thinktecture IdentityModel в ASP.NET Web API с использованием базовой аутентификации. Все отлично работает, могу запросить новый токен на сервер с истечением срока. Я размещаю это приложение в AppHarbor.

Проблема в том, что AppHarbor периодически сбрасывает пул, потому что, если приложение какое-то время не используется, оно переходит в состояние "ожидания".

Это делает мой токен, выданный моим приложением, использующим IdentityModel, более не действительным после сброса пула.

Я знаю, что есть несколько хитростей, чтобы поддержать AppHarbor. Я не ищу такого решения. Есть ли способ создания токенов с помощью IdentityModel, которые действительны после сброса пула? Это проблема безопасности?

Это мой код для установки аутентификации:

 var authentication = new AuthenticationConfiguration
 {
     EnableSessionToken = true,
     RequireSsl = false,
     SessionToken = new SessionTokenConfiguration()
     {
        DefaultTokenLifetime = System.TimeSpan.FromDays(1),
        EndpointAddress = "/Authenticate"
     }
 };

 authentication.AddBasicAuthentication(authService.Authenticate, authService.GetRoles);
 config.MessageHandlers.Add(new AuthenticationHandler(authentication));

1 ответ

Решение

Когда вы создаете SessionTokenConfiguration, вам необходимо присвоить согласованное значение свойству SigningKey. Это ключ подписи, поэтому он должен быть уникальным для вашего приложения, и вы должны рассматривать его как секрет.

Другие вопросы по тегам