Итак, у меня есть Zend Server, и я ищу способ включить автоматическую c аутентификацию с Windows учетными данными.
Я хочу получить тот же результат, что и при включении Windows аутентификация / NTLM на IIS-сервере или если вы установите модуль Apache "mod_authnz_sspi" на Apache -сервер. После включения / установки этого параметра оба эти метода передают учетные данные пользователя Windows, который в данный момент вошел в систему, в переменные PHP. Эти переменные: $ _SERVER ["REMOTE_USER"] или $ _SERVER ["PHP_AUTH_USER"], которые будут содержать имя пользователя. Используя getenv («USERDOMAIN»), можно также получить доменное имя.
С этими установленными переменными мне удалось получить решение единого входа для приложений на моем сайте.
Одним из таких приложений является «osTicket». Я использовал следующие плагины: https://github.com/osTicket/osTicket-plugins/tree/develop/auth-ldap и https://github.com/osTicket/osTicket-plugins/tree/develop/auth-passthru. Таким образом, AuthPassthru передаст вышеупомянутые переменные PHP плагину LDAP. Затем плагин LDAP подключится к моему серверу Active-Directory с пользователем службы и выполнит поиск, если пользователь Windows из переданных переменных PHP является частью домена. Если да, то пользователь автоматически войдет в систему.
Другой - CMS Joomla. Здесь я смог сделать то же самое с плагинами pkg_shplatform, pkg_ldap_sso_core и plg_sso_http. Опять же, я бы создал сервисного пользователя для подключения к Active-Directory и поиска пользователя по переменным, передаваемым плагином «plg_sso_http», чтобы затем автоматически входить в него.
Я сделал это на Apache -сервере с использованием mod_authnz_sspi. Но теперь я должен использовать Zend-сервер и делать там то же самое. Цель состоит в том, чтобы предоставить решение с единым входом, в котором пользователи будут входить только в свою учетную запись Windows, а затем автоматически войдут в каждое приложение на моем сайте с сервером Active Directory, аутентифицирующим их.
Если никто знает решение сделать SSO таким способом на Zend-Server, если у вас есть идеи о том, как сделать это способом Kerberos (или любым другим), который тоже помог бы!