2013-09-23 1 views
1

J'utilise Thinktecture IdentityModel dans une API Web ASP.NET en utilisant l'authentification de base. Tout fonctionne bien, je peux demander un nouveau jeton au serveur avec l'expiration. J'héberge cette application dans AppHarbor. Le problème est que AppHarbor réinitialise périodiquement le pool car si l'application n'est pas utilisée pendant un certain temps, elle passe à l'état "inactif".Le jeton de session est invalide après la réinitialisation du pool

Ceci fait que mon Token émis par mon application en utilisant IdentityModel n'est plus valide après la réinitialisation du pool.

Je sais qu'il y a des astuces pour garder AppHarbor en vie. Je ne cherche pas ce genre de solution. Y at-il un moyen de créer des jetons en utilisant IdentityModel qui sont valides après la réinitialisation du pool? Est-ce un problème de sécurité?

Ceci est mon code pour définir l'authentification:

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)); 

Répondre

1

Lorsque vous créez le SessionTokenConfiguration, vous devez attribuer une valeur cohérente à la propriété SigningKey. Il s'agit d'une clé de signature, elle devrait donc être unique pour votre application et vous devriez la considérer comme un secret.

Questions connexes