Я пытаюсь создать сайт intr anet, где, если это возможно, все его части должны быть единым входом, чтобы пользователь, который вошел в свою учетную запись Active Directory в Windows, сразу же вошел в систему. с той же учетной записью на всех страницах моего сайта через LDAP. Теперь основной компонент этого сайта построен с использованием CMS, и оттуда пользователь должен иметь возможность щелкать ссылки на этом сайте, чтобы перейти к другим инструментам, которые мы используем, например, к системе тикетов. Как CMS, так и программное обеспечение системы билетов могут самостоятельно подключаться через LDAP, но я хочу для этого единого решения.
Поэтому я искал и нашел это для сервера apache: mod_authnz_sspi
Это, очевидно, позволяет вы используете $_SERVER['REMOTE_USER']
в PHP, чтобы прямо сейчас зарегистрировать пользователя windows. Теперь я застрял, так как я не совсем уверен, как использовать это для автоматического входа пользователя на сайты. Что мне с этим делать, чтобы получить желаемое SSO-решение?
Я думал о создании простой формы HTML с теми же полями, что и в форме билета, которую я пробую. войти. Затем я бы попытался отправить POST-данные в форму системы заявок и автоматически войти в систему. Для имени пользователя я бы отправил $_SERVER['PHP_AUTH_USER']
, а для пароля $_SERVER['PHP_AUTH_PW']
. Однако система тикетов защищена CSRF-токеном, который я должен был бы включить в отправленные POST-данные, но не могу знать заранее, поскольку он генерируется в момент доступа к странице.
Итак было бы очень полезно, если бы кто-то мог сказать мне, как заставить SSO работать с инструментом mod_authnz_sspi
(или другим). Если нет другого способа, кроме как с помощью HTML -формы, которая отправляет данные POST, как я пытался, было бы полезно, если бы кто-то знал обходной путь для проблемы CSRF-Token!