Еще прикол про аутентфификационные куки в ASP.NET Core 2.1
От: VladCore  
Дата: 23.09.18 15:53
Оценка:
Эта кука шифруется с помощью DataPropction's master key.

вижу что мастер кей лежит в $HOME/.aspnet/DataProtection-Keys/key-рандомныйгуид.xml

проблема в том что приложение крутится на эфемерном диске в облаке и при каждом обновлении мастер кей ресетится на рендомный
А надо как то шарить этот мастер-кей

для простоты, каждый браузер помечается своим уникальным айдишником вот так:
async Task<string> GetBrowserAssignedId()
{
    var user = User?.Identity?.Name;
    if (!string.IsNullOrEmpty(user))
        return user;

    var newId = "Browser-" + Guid.NewGuid().ToString("N");
    var claims = new List<Claim>
    {
        new Claim(ClaimTypes.Name, newId),
    };

    var claimsIdentity = new ClaimsIdentity(
        claims,
        CookieAuthenticationDefaults.AuthenticationScheme
    );

    await HttpContext.SignInAsync(
        CookieAuthenticationDefaults.AuthenticationScheme,
        new ClaimsPrincipal(claimsIdentity),
        new AuthenticationProperties
        {
            IsPersistent = true,
        });

    return newId;
}


В старпапе обычная аутентификация куками
        public void ConfigureServices(IServiceCollection services)
        {
            services
                .AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
                .AddCookie(options =>
                {
                    options.ExpireTimeSpan = TimeSpan.FromDays(10 * 365);
                });
.....


Не пойму что гуглить.
После каждого "переноса" приложения на другой "диск" кука разумеется ресетится на новую.

Update:
В общем вспомнил я ответ — надо сконфигурировать shared data protection key storage:
https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/implementation/key-storage-providers?view=aspnetcore-2.1
https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-2.1&amp;tabs=aspnetcore2x

Единственное что непонятно как подсунуть ему свой готовый ключ?
Предположим облако гугловское а не ажур и windows-шаред диски держать только что бы ключи шарить не планируется
Отредактировано 23.09.2018 16:14 VladCore . Предыдущая версия . Еще …
Отредактировано 23.09.2018 15:56 VladCore . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.