SSO (единый вход) в ASP.NET и Php с использованием веб-сервисов? - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь внедрить SSO на своем сайте asp.net и php. Я установил webservice ~ / Webservice.asmx на своем сайте asp.net, предоставив метод IsUserOnline (строка userName) а затем я закодировал страницу php как

require_once("nusoap/nusoap.php");
$client = new nusoap_client("http://www.myaspnetsite.com/Webservice.asmx?WSDL", "wsdl","", "", "", "");
$err = $client->getError();
if ($err) {
echo "error ..." . $err . ;
}
$param = "username";
$result = $client->call("IsUserOnline", $param, "", "", false, true);

И тогда я могу использовать результат, чтобы проверить, находится ли пользователь в сети или нет. Я всегда могу использовать код для проверки на каждой странице php или просто проверить его один раз и создать статус входа на сайт php. Как вы думаете, это хорошее решение? В чем проблема безопасности? Скорость вопроса?

1 Ответ

1 голос
/ 24 февраля 2012

Самый простой способ сделать единый вход между сайтами - это общий cookie-файл - единственное требование - один и тот же домен (так как cookie-файлы используются только в одном домене).

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

Существует несколько существующих платформ, основанных на этой идее, проверьте JOSSO, например.Если вы хотите внедрить корпоративное решение, проверьте протокол WS-Federation.Его реализация возможна с платформой Windows Identity Foundation.Просто прочитайте книгу Витторио Берточчи «Программирование Windows Identity Foundation», и вы получите все подробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...