2008-09-04 1 views
1

Я работаю на сайте, где пользователи могут войти, чтобы получить более личную информацию. У моего клиента есть другой сайт, где используется nt аутентификация для доступа к нему.NT аутентификация логин

Что они хотят сделать, это иметь button на сайте я работаю под частной области, который будет отправлять их в нт с проверкой подлинности сайта, но не требовать их для входа на этот сайт вместо прохождения имя пользователя и пароль что они использовали для входа на мой сайт на другой сайт для них.

Возможно ли это? и как я могу это сделать? Есть лучший способ сделать это?

ответ

1

Вот (непроверенная) теория, детали которой будут в значительной степени зависеть от того, какие типы аутентификации будут использоваться сайтом SharePoint. Я займусь Basic, так как это самый простой.

Вы напишете какой-нибудь JavaScript, который использует XMLHttpRequest для отправки запроса на сайт Sharepoint и добавления их имени пользователя и пароля в заголовки запроса. Их браузер запустит этот JavaScript и войдет в систему на сайте Sharepoint.

Теперь, когда они нажимают на ссылку, браузер клиента должен иметь кэшированные учетные данные для отправки на сайт Sharepoint.

Возможные проблемы:

  • XMLHttpRequest не позволяет междоменной аутентификация
  • Browser и XHR не разделяют AUTH INFO
  • Sharepoint и XHR не может прийти к согласию по методу Идента

Другим вариантом является прокси-соединение с Sharepoint, которое позволяет вам входить в систему на стороне сервера (минуя ограничения XHR и безопасность браузера), но требуя загрузки на ваш сервер и, возможно, некоторых UR L целевых проблем.

0

Как сайт будет проверять ваше имя пользователя и пароль?

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

Что делать, если ваш сайт предоставил токен пользователю, который представляет этот токен новому сайту, который, в свою очередь, просит ваш сайт проверить токен. В основном второй сайт доверяет вам сообщить им, кто является пользователем.

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

0

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

LogonUser требует повышенных привилегий и не управляется кодом, поэтому есть некоторые довольно серьезные икоты для его использования. Но это была единственная работа, которую я смог найти, чтобы получить сайт, прошедший проверку подлинности на основе форм, с помощью Windows Authenticated Service/Site.

Надеюсь, это поможет.

0

Является ли это интрасети? Если это так, им не нужно входить в систему в любом случае. Если sharepoint настроен с использованием функции «Интегрированная аутентификация», и сайт указан как доверенный сайт в IE, браузер будет использовать для этого учетную запись для автоматического входа в систему. Это можно настроить и на firefox.

0

Ваши пользователи не смогут напрямую подключиться к сайту NTLM, не получая вызов NTLM. Я бы написал, что было бы эффективным прокси для сайта NTLM; т. е. ваш серверный код будет иметь учетные данные для подключения к сайту NTLM и будет проходить через запросы от ваших пользователей.

Как вы упомянули SharePoint (spit) помните, что SharePoint имеет множество веб-сервисов, которые вы могли бы использовать для этого (вместо того, чтобы делать скриншоты экрана).

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