Ищете рекомендации о том, какие изменения для поддержки.net приложения Webseal Authentication .
Наша организация планирует использовать Webseal в качестве прокси-сервера перед нашими веб-сайтами.net. В настоящее время мы используем аутентификацию форм.net и настраиваемый поставщик членства для пользовательской таблицы SQL-сервера.
В соответствии с этой новой моделью вся аутентификация будет выполняться слоем webseal. Из того, что я понимаю, после аутентификации webseal просто добавит токен в заголовок, указывающий, что пользователь аутентифицирован вместе с идентификатором пользователя.
Мне бы хотелось, чтобы наши приложения работали без изменений, поэтому я хочу создать что-то, что защитит их от деталей webseal, создав некоторый слой, который преобразует токен webseal в обычный токен.net.
Я не уверен, где это должно быть сделано... в каком-то специальном провайдере аутентификации, или новом провайдере членства или? Я не хочу, чтобы какое-либо из наших приложений вносило какие-либо изменения, за исключением, возможно, использования этого нового кода, если это модуль http или другой поставщик.
Кто-нибудь делал такие вещи? Что было бы хорошей стратегией для этого. Я слышал о Windows Identity Framework, но не уверен, что это правильное решение для этого.
Любой совет или направление будет полезно.
2 ответа
Если информация аутентификации предоставлена (в заголовке), то самый простой способ использовать ее в конвейере запросов - написать собственный модуль.
Модуль - это класс, реализующий IHttpModule
интерфейс. В своем Init
метод, который вы присоединяете пользовательский обработчик к AuthenticateRequest
из HttpApplication
, Ваш пользовательский обработчик должен отвечать за воссоздание идентичности, т.е. HttpContext
"s User
к любому объекту, реализующему IPrincipal
(вы можете использовать встроенный GenericPrincipal
).
Затем вы регистрируете свой модуль в соответствующем разделе web.config
и вы сделали.
Для получения более подробной информации, спросите Google о "модуле аутентификации C# custom".
Предполагая, что вы используете MVC, в соответствии с этим примером IBM вы можете добавить настраиваемый фильтр действий для преобразования информации пользователя в заголовке WebSEAL для аутентифицированного пользователя.