Identityserver4 два разных клиента в одном браузере - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть два веб-приложения, размещенные на разных URL:

Для аутентификации они используют общий сервер идентификации, но используют angular-oauth2-oidc с другим clientId идентификатора сервера: -client1, clinet2.

Если я войду в веб-приложение1, я попытаюсь войти в веб-приложение2 - сервер идентификации автоматически авторизуется в веб-приложении2 как тот же пользователь, что и в приложении1.Это относится только к одному браузеру.В разных браузерах я могу войти в веб-приложение1 с одним пользователем и веб-приложение2 с другим пользователем.Как сделать такое поведение в одном браузере?

Как я понял - в одном браузере веб-приложения ссылаются на одни и те же куки.Возможное решение на сервере идентификации для создания файлов cookie с именами содержит clientId - например: idsrv.session.client1, .AspNetCore.Identity.Application.client1 и т. Д. Как это сделать на сервере идентификации или есть другое решение? enter image description here

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Для принудительного входа в систему при каждом посещении конечной точки авторизации вы можете использовать строку запроса 'prompt' со значением, установленным в 'login'.Таким образом, вам не нужно связываться с аутентификацией cookie и увеличивать сложность кода.

Более подробную информацию можно найти в моем другом ответе здесь: https://stackoverflow.com/a/54672252/7407434

0 голосов
/ 13 февраля 2019

Вы можете переопределить схему проверки подлинности cookie Identity Server 4.Вы можете переопределить его с помощью схемы, которая устанавливает срок действия cookie почти сразу после его выдачи.Это эффективно удалит поведение единого входа из центральной части входа в систему.

services.AddIdentityServer()...

//Call it after AddIdentityServer
services.AddAuthentication("MyCookie")
    .AddCookie("MyCookie", options =>
    {
        options.ExpireTimeSpan = 1;
    });

Подробнее о поведении входа в систему на Документы Identity Server .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...