Соедините два экземпляра сервера идентификации с openId - PullRequest
0 голосов
/ 17 декабря 2018

Можно ли войти в один экземпляр Identity Server, используя другой?
В частности: один общедоступный, а другой - за брандмауэром компании.

Пример: пользователь из этой компании хочет войти в общедоступный, используя свои собственные учетные данные компании (например, AD), используя своего рода безопасный обратный канал между этими двумя IDS.

Я знаю, что это возможно с помощью «Вход в систему с внешними поставщиками удостоверений», но я хочу, чтобы это было динамически настраиваемым - так как число компаний будет расти со временем.
Какие варианты для достиженияэто?

1 Ответ

0 голосов
/ 17 декабря 2018

Для этого я реализовал собственное промежуточное ПО OIDC, которое могло принимать дополнительные параметры времени выполнения, а не использовать статические параметры, определенные при запуске приложения.

Он по-прежнему использует обычный OIDC и, таким образом, это операция по переднему каналу, поэтому стороннему провайдеру придется иметь доступ к Интернету, а вашему провайдеру также потребуется прямая видимость.

Комусделать это я унаследовал от OpenIdConnectHandler из пакета Microsoft.AspNetCore.Authentication.OpenIdConnect и переопределил следующие виртуальные методы, заменив ссылки на статическую конфигурацию на мои, предоставленные при необходимости, где это необходимо:

  • HandleUnauthorizedAsync
  • HandleRemoteAuthenticateAsync
  • HandleSignOutAsync
  • HandleSignOutCallbackAsync
...