Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Граждане, есть у кого-нибудь опыт в создании сквозной авторизации в Ларавел? Не могу сообразить, с чего начинать.
Необходимо убрать авторизацию пользователя путем ввода учетных данных, используя авторизацию AD, т.к. пользователь уже авторизован.
Использовать mod_auth_ в Апаче или есть библиотеки под Ларавел 5.4.36?
Отправные данные: Ларавел 5.4.36, OpenServer, PHP 5.6 x64, Апач 2.4 x64
Может кто поделиться решением?
Не в сети
Там всё просто.
Авторизация проходит не на локальной ларе а на стороннем ССО сайте, который кидает по кругу сайтов, хитропопые роуты которых ставят куку и возвращают на сайт ССО.
Там ы понимаешь что прошёл по кругу и возвращаешься на начальный сайт, где пытался авторизоваться.
Всё. тапки чистые.
Не в сети
Здесь немного другой вопрос - сквозная авторизация из AD. Библиотека Adldap2-Laravel дает возможность по ldap тянуть базу пользователей, но зачем заставлять пользователя вводить логин/пароль доменной записи, если он уже залогинился в AD при включении/разблокировки компьютера. В этой же библиотеке есть упоминание о необходимости включения Windows Authentication в Apache.
Вобщем направление действий предполагаю такое: включение Windows Authentication с помощью mod_authnz_ldap и изменения конфигурации Apache, далее подключение библиотеки Adldap2-Laravel как промежуточного средства... далее по обстановке))
Прошу поправить, если я не прав.
Не в сети
Не было времени этим заниматься, наконец добрался. Все оказалось намного проще и прозаичнее, чем я думал.
Надо всего лишь включить поддержку LDAP в php.ini:
раскомментировать строку ;extension=php_ldap.dll
После этого доступны стандартные функции LDAP PHP.
Но я подключил библиотеку Adldap2-Laravel и теперь в раздумьях - куда идти дальше.
Библиотека предлагает изменить таблицу users, чтобы периодически синхронизировать ее с каталогом домена. Но я думаю, что нет смысла в аутентификации пользователя с использованием локальной БД. Пользователи и так авторизуются в домене (неавторизованные пользователи в домен не пускаются), идентифицировать их можно с помощью getenv('USERNAME') и запросить данные о группах и другую информацию с помощью фасада Adldap. Для определения принадлежности пользователя к определенным группам могу создать посредника, но не понимаю как его использовать не в роутах и контроллерах, а в представлениях. Или для этого необходимо создавать свой фасад или контракт? Посоветуйте если не слишком запутал в описании.
Не в сети
Оказалось, что USERNAME берется с данных сервервера, под чьей учеткой он зашел в Домен, но никак не юзера, обратившегося к ресурсу. Для этого нужен REMOTE_USER, но его пока нет, т.к. нет внешней авторизации. Буду копать дальше.
Не в сети
Страницы 1