Требуются клиентские сертификаты, подходящие для сопоставления службы каталогов (Active Directory)? - PullRequest
2 голосов
/ 04 июня 2009

Мой экземпляр MOSS 2007 (IIS 6) использует проверку подлинности Windows и сопоставление службы каталогов IIS (против Active Directory), позволяя пользователю проходить проверку подлинности, используя только свой сертификат клиента смарт-карты, без имени пользователя / пароля и независимо от того, что (если любой) домен, к которому подключена рабочая станция клиента. Экземпляр IIS настроен на требование клиентских сертификатов.

Насколько я понимаю, для того, чтобы IIS мог найти (в Active Directory) учетную запись, связанную с клиентским сертификатом, он должен иметь возможность прочитать из нее «Имя принципа пользователя» (иногда называемое «Имя входа пользователя»).

Смарт-карта моего пользователя имеет два клиентских сертификата, выданных одним и тем же корневым центром сертификации. Один указывает UPN. Другой нет. Она может выбрать любой сертификат при доступе к сайту. Если она выберет сертификат без имени участника-пользователя, проверка подлинности завершится ошибкой.

Что можно сделать, чтобы диалоговое окно выбора сертификатов в браузере показывало только сертификатов, по крайней мере, IIS имеет шанс совпадения с учетной записью (снова: DSM & AD)?

Если говорить более технически: как я могу ограничить параметры выбора клиентского сертификата пользователя MOSS теми, которые имеют UPN в поле «Subject Alternate Name»?

Ответы [ 2 ]

1 голос
/ 10 августа 2010

Просто подумайте, если вы готовы к чуть-чуть менее раздражающему решению для повторной аутентификации. будьте осторожны: несколько IFs!

  • ЕСЛИ вы можете положиться на браузер пользователя Internet Explorer 6 SP1 или новее
  • и ЕСЛИ вы можете предположить, что их браузер будет запускать скрипты
  • и ЕСЛИ вы в порядке с очисткой ВСЕХ информация аутентификации (то есть все сайты, которые требуют аутентификации потребуется повторная аутентификация)

  • ТОГДА вы можете использовать javascript-код document.execCommand('ClearAuthenticationCache'). Браузер должен выполнить этот код, очистив кеш аутентификации - все кэшированные имена пользователей и пароли, все кэшированные клиентские сертификаты и т. Д.

Если пользователь не запускает сценарии или выполняет что-то кроме IE, это не будет (насколько я знаю) запускаться. Помните, что все другие вкладки (и окна в том же процессе) совместно используются в кэше аутентификации. Если страница / сайт требует аутентификации, то эта команда потребует от пользователя повторной аутентификации, но, по крайней мере, ему не придется снова переходить туда после закрытия всех окон браузера ...

Веселись!

P.S. - это не должно влиять на сохраненные сочетания имени пользователя и пароля и не должно влиять на любой PIN-код, который может быть кэширован для смарт-карты, но, скорее всего, потребует от пользователя нажатия OK, чтобы ввести имя пользователя / пароль или выбрать определенный сертификат еще раз.

1 голос
/ 13 января 2010

Я не думаю, что вы можете изменить это. Я считаю, что экран выбора сертификата является частью Internet Explorer.

Если пользователь выбирает сертификат, с которым не связано имя участника-пользователя, вы можете предложить пользователю выбрать другой сертификат и повторить попытку.

Редактировать: поскольку подключение к инфраструктуре безопасности MOSS может быть затруднено, вы можете реализовать это как HTTPHandler и добавить его в корневой каталог MOSS web.config.

Когда поступает запрос пользователя, обработчик получает первые метки и может перенаправить на страницу «повторить попытку», если в сертификате отсутствует UPN.

Страница "попробуйте еще раз" должна будет повторить запрос, открыв другое окно, чтобы получить еще один запрос сертификата.

...