У нас есть требование создания подключаемого модуля / компонента на основе .NET для включения аутентификации для нескольких поставщиков IDP, таких как ADFS, Azure AD и Shibboleth, на основе конфигурации БД. то есть, в зависимости от настраиваемого параметра, анонимный пользователь будет аутентифицирован с помощью любого из IDP, например ADFS, Azure AD или Shibboleth IDP.

URL-адрес нашего приложения ("https://www.contoso.com/ProcessToken.aspx") будет быть зарегистрированным как идентификатор RP у всех 3 провайдеров.

Мы не будем вносить никаких изменений в web.config ни для одного из провайдеров.

Во время выполнения пользователь получит доступ к общей странице (Proesstoken.aspx), которую необходимо перенаправить на любой из URL-адресов страницы входа в провайдере (ADFS, Shibboleth, Azure) для аутентификации на основе организации пользователя. (Например: от пользователя A до ADFS, от пользователя B до Shibboleth и т. Д.)

После успешной аутентификации на IDP пользователь должен быть перенаправлен поставщиком (ADFS / Shibboleth / Azure AD) на зарегистрированный URL-адрес RP.

На перенаправленной странице (ProcessToken.aspx) мы планируем получить токен безопасности и расшифровать требуемые утверждения.

Основная цель состоит в том, чтобы отделить аутентификацию от логики приложения, и в будущем ее следует распространить на других поставщиков.

PS: Рассмотрены такие варианты, как OWIN Authentication Middle Tier, .NET Component и т. Д.

Требуется руководство о том, как и с чего начать.

-1
Saravanan 18 Фев 2016 в 01:11

2 ответа

Лучший ответ

Взгляните на IdentityServer 3, который реализует этот сценарий с несколькими аутентификациями, или OWIN: приложение ASP.NET MVC с несколькими вариантами аутентификации.

Главное, что вы используете NuGet для загрузки всех требуемых протоколов, а затем используете OWIN для их загрузки через app.use.

0
rbrayb 18 Фев 2016 в 17:30

Вы можете настроить ADFS так, чтобы поставщик утверждений был доверенным, и Owin другого IDP подтвердит аутентификацию. Сложной частью будет считывание атрибутов токенов. ADFS под обложками в сочетании с фреймворком Owin использует ws-federation, я так и не понял, как читать SAML.

Что сбивает с толку, так это то, что одно время ответом был WIF, но теперь, когда была выпущена версия 4.51, WIF был перемещен в Owin. Документация для мультитенантного приложения в лучшем случае отрывочна.

0
user3263437 17 Фев 2016 в 22:20