Используйте IdentityServer4, чтобы разрешить вход сотрудника через ADFS с использованием SAML2, а затем выполнить JWT

Моя цель - предоставить интернет-приложение, которое может использоваться как корпоративными сотрудниками, так и внешними пользователями. У меня будет 2 экземпляра ADFS за экземпляром IdentityServer4, один для внешних пользователей и один для корпоративных сотрудников.

В общем, все пользователи (сотрудники или внешние) всегда должны получать токен oAuth2 для вызова API, обращенных к Интернету, но при наличии внутренних вызовов между корпоративными системами, зависящими от SAML, внутренние вызовы должны иметь возможность получить токен SAML2 или выдать себя за корпоративного корпоративного пользователя.,

Нет проблем с внешними пользователями, использующими openid и oAuth2. Основное внимание уделяется входу сотрудников в систему через SAML2.

Установка как показано ниже:

  1. IdentityServer4 находится спереди и поддерживается ADFS.
  2. Клиентские приложения должны соединяться с IdentityServer4, используя спецификации OpenId (/connect/authorize? Конечная точка. Я знаю, как это сделать
  3. IdentityServer4 должен подключаться к ADFS для настройки внешних пользователей через Ws-Fed. Я знаю, как добраться до здесь.
  4. IdentityServer4 должен подключаться к внутренней ADFS для корпоративных сотрудников через SAML2. Было бы неплохо иметь возможность переключаться между двумя экземплярами ADFS в зависимости от адреса электронной почты пользователя. Как и в Azure, вы получаете сообщение: мы переходим на страницу входа вашего работодателя, если пользователь входит в известный корпоративный почтовый домен. Это переключение должно происходить через интерфейс IdentityServer, хотя, вероятно, имитируя функцию обнаружения Home Realm.
  5. IdentityServer4 должен выдавать токены oAuth в любом случае. 6 При подключении к корпоративной ADFS через SAML2 IdentityServer4 должен получить подписанный зашифрованный ответ токена SAML2, а затем выдать обычный токен oAuth для внешних API.
  6. Некоторые внешние API могут вызывать внутренние корпоративные API на основе SAML (* только для корпоративных пользователей). Должен быть способ выдать себя за пользователя, получить его токен SAML и перейти к корпоративным API.

Если все это имеет смысл, - как мне выполнить шаги 5,6 и 7? - Есть ли промежуточное ПО, которое может обмениваться токенами SAML2 с ADFS? - Можно ли просто передать этот токен SAML2 непосредственно во внутренние системы поддержки SAML?

Раньше я никогда не использовал токен SAML2, поэтому я немного растерялся из-за того, как он выглядит, это что-то вроде токена доступа или что-то, что должно быть построено с использованием утверждений в ответе ADFS?

Я знаю, что задавал много вопросов, но все связано. Я изучаю SustainSys, но не смог найти способ подключить его, чтобы делать то, что я хочу.

0 ответов

Другие вопросы по тегам