2008-10-28 1 views
1

Мне нужно реализовать SSO между сайтом SharePoint и настраиваемым PHP-сайтом, который находится в другом домене. Мне нужно использовать учетные записи пользователей SharePoint для входа на сайт PHP. (У меня будет полный контроль над источником PHP)SharePoint SSO с приложением PHP на другом сервере?

Возможно ли это? Какие-нибудь советы и трюки?

ответ

4

Мое предположение: у вас есть полный контроль над вашим приложением/доменом php, но другая команда управляет сервером sharepoint. Также предположим, что вы можете попросить команду sharepoint создать простой веб-сайт для ваших функций единого входа.

Если это так, вы можете попросить команду sharepoint создать веб-страницу, на которой есть ссылка на ваш сайт. Когда пользователь нажимает на ссылку, запрос возвращается серверу sharepoint, сервер sharepoint принимает имя пользователя для входа в систему, шифрует его с помощью открытого ключа и добавляет его к URL-адресу на вашем php-сайте, а затем отправляет его как перенаправление обратно в браузер. Таким образом, место выглядит следующим образом:

https://your.php.domain/sso.php?logon=encrypted_users_logon_name&api_key=some_token

Вашего sso.php скрипт проверит api_key является действительной лексемой от вашего Sharepoint партнера, а затем расшифровать имя входа пользователя пытается войти в Вы можете. получить больше фантазий и иметь обратный вызов на сайте sharepoint, чтобы подтвердить, что запрос на вход в систему является законным в течение некоторого временного окна, или испечь это в зашифрованном имени входа, но это - простой способ сделать это, предполагая, что вы доверяете запросам, исходящим из партнер sharepoint.

Разработчики sharepoint .net, вероятно, смогут выполнить любое шифрование, поэтому выберете алгоритм, который вы можете использовать на обеих сторонах php и .net, и дайте им ключ для использования для шифрования и формат информации для шифрования. что-то вроде n = logon_name; expire = timestamp; тогда, когда вы расшифровываете, если это после истечения срока, вы отказываетесь от входа в систему.

+0

Звучит неплохо. В следующие несколько дней я отдам это. Спасибо! – ciscocert 2008-10-28 20:17:53

1

Я мало знаю об этой области, но, надеюсь, это может помочь вам в правильном направлении.

Исследовать LDAP ...

Вы можете настроить PHP использовать учетные данные LDAP. Если ваш сайт SharePoint использует Active Directory, вы можете открыть этот каталог в качестве источника LDAP и использовать его в приложении PHP.

Автоматический вход в ...

Имея знак в происходит автоматически переключаться между сайтами, это совсем другой вопрос. например Я уже зарегистрирован в MOSS, нажмите ссылку, которая идет в приложение PHP, и обнаружите, что я уже зарегистрирован там. Для этого вам нужно будет исследовать, используя что-то вроде ключей Kerberos/аутентификации. Это грязная и трудная область.

+0

Не могли бы вы подробно объяснить подход LDAP?Мне удалось подключиться к LDAP с PHP, но с этого момента я потерял – bloomingsmilez 2015-05-06 09:04:36

0

ну, мы были в такой же ситуации, но мы используем asp.net в сочетании с php для SSO. код asp.net выполняет проверку подлинности Windows и создает запись в базе данных mysql, которая содержит имя пользователя и уникальный ключ, и присваивает эти значения cookie. затем перенаправляет пользователя в приложение PHP.

Приложение php считывает эти значения cookie и сравнивает их с значениями базы данных, чтобы гарантировать подлинность запроса. хорошо, что обходной путь для одного сингла в PHP и совместного использования совместно с PHP. но я по-прежнему рекомендую использовать Kerb_auth_mod для SSO в php. которые мы в конце концов сделали.

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