Задать вопрос
SwoDs
@SwoDs
PHP YII2

Как сделать single sign-on (SSO) AD на PHP?

Проблема:
Внутри сети есть разные корпоративные сайты написанные на PHP, сервера на Linux.
Все пользователи сидят на Windows машинах и заходят под учетками доменными, заходя на внутренний сайт приходится вводить логин пароль от винды (происходит авторизация по LDAP), пользователям не удобно на каждом сайте вводить логин и пароль

Задача:
Нужно реализовать вход без пароля логина, но делать аунтификацию по виндовой учетке, под которой открывается бразуер или что то в этом роде =)

Коммент:
Ранее такие задачи решали с помощью ActiveX но данная технология устарела и работа только в IE а нужно что бы во всех браузерах

------
Реально ли сделать задачу и как?
  • Вопрос задан
  • 2545 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
SwoDs
@SwoDs Автор вопроса
PHP YII2
Давно задал вопрос, но раз уж ответа не было...

Сделал я просто отдельное приложение которое делало авторизацию через себя, с другими приложениями обменивалось токенами, - это в общих чертах
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@brestows
Да делается это довольно просто, но чистым PHP не обойдется, разово придется настроить браузер на компе пользователя, у меня это делается через групповые политики. Сайт должен быть добавлен в доверительную зону, после чего при заходе на такой сайт, севрер говорит браузеру что надо авторизоваться черед kerberos, браузер авторизируется и отсылает серверу спецальный токен, сервер на основании этого токена идет в AD и проверяет его валидность, если он валидный то в ответ получает имя пользователя, а дальше уже чисты LDAP, так же при правильно настроеном браузере в параметрах передаваемых браузеру может быть переменная REMOTE_USER в которой будет имя пользователя авторизованого через прозрачную авторизацию. Описал я это очень грубо и поверхностно, сам реализовывал я это на perl, но думаю что на php мало чем отличается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы