2009-06-03 3 views
2

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

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

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

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

Положить более технически: как ограничить возможности выбора сертификатов клиента пользователя MOSS теми, у которых есть UPN в поле «Тема альтернативного имени»?

ответ

1

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

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

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

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

На странице «попробуйте еще раз» потребуется повторить запрос, открыв другое окно, чтобы получить другое приглашение сертификата.

+0

Насколько это точно? Я понимаю, что IIS будет запрашивать у пользователя только один сертификат. Как только пользователь выбирает сертификат, единственный способ дать пользователю еще один шанс - заставить пользователя закрыть браузер и вернуться на сайт? – lance

+0

Нажмите ссылку «Нажмите здесь, чтобы попробовать», чтобы открыть сайт в новом окне. Вы правы в том, что нужно закрыть окно, чтобы выбрать новый сертификат. –

+0

Я понимаю, что закрытие/window/недостаточно, а скорее, что весь/браузер/должен быть закрыт (выбрать другой сертификат)? – lance

1

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

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

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

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

Удачи!

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

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