Совместное использование ключей в нескольких приложениях в Azure

Мы столкнулись с проблемой, заключающейся в том, что мы хотим установить одно и то же ASP.Net Core WebApp в нескольких местах и ​​маршрутизировать пользователей с помощью диспетчеров трафика, но если мы это сделаем, у нас возникнут проблемы, поскольку токены аутентификации хранятся на одном сервере, и пользователь может получить доступ к другому. Я читал, что мы можем использовать Azure BlobStorage для обмена ключами, может кто-нибудь описать, как это сделать?

Мы используем openiddict для входа через API, но я думаю, что это не повлияет на проблему, если мы сможем использовать Azure BlobStorage для хранения ключей.

Спасибо


person Techy    schedule 22.07.2017    source источник
comment
Ваш токен не прикрепляется к каждому запросу, который идет на сервер? Затем сервер должен попытаться проверить этот токен, если он действителен, он должен прочитать необходимые утверждения для пользователя независимо от того, какой сервер получает запрос через диспетчер трафика.   -  person Siddharth Pandey    schedule 22.07.2017
comment
@Sid Проблема в том, что токен может быть получен с другого сервера (несколько веб-приложений).   -  person Techy    schedule 22.07.2017
comment
Значит, у вас нет центрального Identity Server, верно?   -  person Brad    schedule 22.07.2017
comment
@Брэд Да, нет. Я просто хочу знать, как изменить хранилище ключей с текущего приложения на хранилище больших двоичных объектов.   -  person Techy    schedule 22.07.2017


Ответы (1)


Как указано в документации необходимо сослаться на пакет Microsoft.AspNetCore.DataProtection.AzureStorage и использовать PersistKeysToAzureBlobStorage() для регистрации репозитория ключей хранилища BLOB-объектов Azure:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .PersistKeysToAzureBlobStorage(new Uri("<blob URI including SAS token>"));
}
person Kévin Chalet    schedule 22.07.2017