2009-09-02 2 views
5

Клиент требует крупных приложений для предоставления пользователям функции аутентификации «единого входа» на основе корпоративного решения (Active Directory). Это означает, что бизнес-приложение доверяет учетным данным, предоставленным браузером, и не просит пользователя предоставить стандартную пару паролей/паролей. Доверие сервера/браузера построено на механизме интегрированной проверки подлинности Windows.Одиночный вход с веб-приложением ASP.Net

Мы являемся веб-приложением ASP.Net на сетевой платформе dot net, размещенной на IIS 5. Нам нужно реализовать функцию единого входа. Как мы это делаем?

ответ

4

Я уверен, что это те же требования, что и все приложения интрасети.

Если вы только что включили Windows Integrated Logins в IIS, вы будете настроены для элемента # 1.

Я не знаю, возможно ли № 2, потому что это противоречит вашему другому требованию. Браузер передает только локально зарегистрированные учетные данные пользователя (в соответствии с требованиями №1). Если вы создали веб-форму для аутентификации через AD, вы нарушите требования, перечисленные в вашем описании/параграфе.

Что думают ваши клиенты # 2 на самом деле означает? Что они хотят здесь? Способ входа в систему как другой пользователь? Они могут просто выйти из компьютера и войти в систему как другой пользователь.

1

В целом, требования SSO лучше всего решать с помощью протоколов, основанных на требованиях, таких как WS-Federation или SAML 2.0. В принципе, вы можете реализовать эти протоколы самостоятельно, так как они являются открытыми стандартами, но для этого требуется много специальных знаний.

Новый Windows Identity Foundation (ранее известный как Geneva framework) содержит реализации протокола, которые могут включать сценарии единого входа, хотя для этого потребуется обновить платформу.

1

Используйте Custom Forms Auth вместо этого, который не попросит пользователя ввести идентификатор и пароль.

Предпосылка: 1> Таблица базы данных, имеющие пользовательские данные, такие как электронная почта, роли и т.д. -> Предприятие активного каталога, в котором профили пользователей хранятся -> Написать VBCOM или ActiveX или другие компоненты, которые могут прочитать имя домена и пользователя от окна машины через браузер.

Шаги: На всех сайтах вызывается компонент < 3> для подключения к Active Directory < 2>. Этот метод должен читать текущее имя пользователя, домен из системы Windows. Поиск AD с этими деталями. Если существует, то запрашивать и извлекать адрес электронной почты или в зависимости от того, что является уникальным ключом в профиле пользователя AD. Использование этого ключевого запроса в базе данных < 1> где вы сохраняли конкретные данные пользователя, такие как электронная почта, роли. Если пользовательский адрес электронной почты из AD совпадает с адресом электронной почты в таблице, предоставите пользователю соответствующие права, иначе запретите доступ, если пользователь не существует или роль равна null/ограничена. Если действительный пользователь затем создает cookie, который зашифрован и может быть прочитан другими приложениями, чтобы реально реализовать любой тип единого входа.

Смежные вопросы