У меня есть приложение .net, подключенное к моему локальному серверу ADFS (подключенному к нашему корпоративному серверу AD), и все работает нормально. Мой вопрос: может ли мой ADFS установить доверенное соединение с дополнительными службами единого входа в Интернете, такими как Azure AD, AWS, вход в Google, Facebook, Twitter, OpenID и т. Д., Чтобы мое приложение могло использовать утверждения из нескольких надежных источников, кроме моих Активировать каталог?
Я сделал это. В нашей модели у нас три набора пользователей:
Внутренние пользователи аутентифицируются через Active Directory (Kerberos или NTLM) против локального экземпляра AD FS. В этом наборе сервер AD FS работает как IdP.
Внешние пользователи, аутентифицирующиеся через Active Directory (Kerberos или NTLM) против своего собственного экземпляра AD FS и домена. В этом наборе AD FS сервер имеет траст поставщика претензий (Claims Provider Trust), настроенный на издающий AD FS сервер. Наш AD FS сервер работает как SP-STS, преобразовывая и подтверждая претензии, выпущенные в другом месте, и переиздавая доверенный маркер нашему приложению. IdP является сервером AD FS другого домена, где наш AD FS сервер настроен в качестве доверяющей стороны.
Внешние пользователи без корпоративного входа. Эти пользователи проходят аутентификацию в небольшой STS .Net, которая настроена в качестве траста поставщика претензий на нашем AD FS сервере. (Мы также рассматривали - и это было технически просто - использование Azure Active Directory B2C для этой роли, но другие опасения помешали этому.)
Чтобы сделать это прозрачным для наших клиентов, мы используем IP-диапазоны для обнаружения (через nginx) и перенаправления в соответствующую корпоративную AD FS - и в противном случае полагаемся на стандартную страницу AD FS HRD.
.Похоже, объединение доверяющих сторон в цепочку действительно возможно. Этот парень написал об этом серию сообщений, вот одна. Вы можете использовать ADFS в качестве «концентратора» для авторизации вашего приложения, и он будет связывать запрос с той службой, в которой фактически находится пользователь.
https://cloudidentityblog.com/2013/06/17/why-use-aad-as-idp-via-ad-fs-rp/
Я сам этого не делал, поэтому не уверен, сколько работы это и какие подводные камни могут быть. Я уверен, что у вас могут возникнуть проблемы, если пользователь живет более чем в одном IdP.
Не забывайте, что ничто не мешает вам написать приложение .NET, чтобы иметь возможность использовать преимущества нескольких поставщиков единого входа изначально.
Да, это возможно.
Каждая из этих внешних IDP добавляется как поставщик претензий в ADFS, а на стороне IDP, ADFS добавляется как доверяющая сторона.
Когда вы аутентифицируетесь, ADFS покажет экран Home Realm Discovery, на котором перечислены все IDP.
Затем вы выбираете, какую из них вы хотите использовать.
.