Merhabalar,
.NET Framework 4.5 / WEB API 2 kullanarak bir web servis geliştirdim ve bu uygulamayı load balancer arkasına aldık. Buraya kadar her şey güzel fakat authentication ve authorization işlemleri için OWIN kullanmıştım. Bildiğiniz üzere OWIN değerleri InMemory
şeklinde tutuyor ve bu birden fazla sunucu devreye girdiğinde token'ın sadece tek bir sunucu üzerinde tanınmasına sebep oluyor. Bu nedenle OWIN'ın Redis kullanmasını istemekteyim. Tam bu iş için oluşturulmuş ve Ziya Sarıkaya tarafından geliştirilmiş bir paket
buldum https://github.com/ziyasal/Owin.Security.RedisTokenProviders fakat sanırım bir noktayı atladığım için bunda başarılı olamadım.
Konfügrasyonu aşağıdaki gibi yapmıştım
OAuthAuthorizationServerOptions oAuthAuthorizationServerOptions = new OAuthAuthorizationServerOptions()
{
TokenEndpointPath = new Microsoft.Owin.PathString("/signin"),
AccessTokenExpireTimeSpan = TimeSpan.FromHours(1),
AllowInsecureHttp = true,
Provider = new SimpleAuthorizationServerProvider(),
RefreshTokenProvider = new RedisRefreshTokenProvider(new ProviderConfiguration
{
ConnectionString = "12.0.0.145:6379",
Db = 0,
ExpiresUtc = DateTime.UtcNow.AddMinutes(5),
AbortOnConnectFail = true
})
};
Ayrıca paket içerisindeki örneklerde cookie authentication kullanımı mevcut bense
appBuilder.UseWebApi(httpConfiguration);
Şeklinde kullanıyorum. Şimdiden teşekkürler.