Как единый вход (SSO) работает с PHP + Apache в Active Directory для прозрачной проверки подлинности?

Мне нужно больше узнать об SSO в веб-приложении в Active Directory.

Просто попросите пользователя зарегистрироваться для аутентификации в AD, я знаю, что я могу использовать некоторые библиотеки, такие как Zend_Ldap , adLdap и т. Д. Но в этом случае пользователю по-прежнему необходимо ввести логин дважды. Например: аутентифицировать Active Directory / ISA с php

Afaik, чтобы использовать SSO для transparent login , мне нужно реализовать дополнительный модуль apache. Например: Как я могу реализовать единый вход (SSO) с помощью Microsoft AD для внутреннего PHP-приложения?

Аутентификация против ldap с использованием PHP, активного каталога при использовании IE / Firefox

Сначала мне нужно знать, какой модуль apache мне нужно использовать и почему. В этой статье, например, есть три: mod_ntlm , Apache2:AuthenNTLM и Apache2:AuthenNTLM . И тем, кто был Apache2:AuthenNTLM был Apache2:AuthenNTLM

В вопросе, описанном выше, принятый ответ был для mod_auth_sspi .

Когда я говорю об Active Directory, у меня есть этот ответ , в котором описывается активный каталог как реализация ldap + kerberos + «несколько других разных бит и кусков».

Я очень смущен обо всех этих именах, так как я с ним работал. Может ли кто-нибудь прояснить это мне? ( ldap , kerberos , ntlm , sspi т. д.)

Наконец, может кто-то указать мне, как приложение распознает аутентифицированного пользователя (от AD). Это просто имя пользователя, переданное с чем-то вроде $_SERVER['REMOTE_USER'] ? Любой пароль отправлен? Как браузер отправляет дополнительные заголовки? Есть ли какая-либо локальная конфигурация, которая должна выполняться на каждой рабочей станции?

Аутентификация – путаница. Вот какой-то фон.

  • LDAP: LDAP – это протокол для передачи информации каталога пользователя. Он также может обрабатывать аутентификацию, но он не является бесшовным (SSO).

  • NTLM: NTLM – это SSO от Microsoft, встроенный в IE, ActiveDirectory и IIS. Исходная версия NTLM очень небезопасна, поэтому NTLMv2 был реализован для устранения проблем безопасности в NTLM. Исходный NTLM отключен по умолчанию в Windows Vista и более поздних версиях.

  • Kerberos: Kerberos – это открытый стандарт, который очень безопасен и предназначен для обеспечения бесшовной аутентификации (SSO). ActiveDirectory поддерживает версию Kerberos.

Что касается модулей Apache, которые могут использоваться для реализации этих протоколов, вы включили в них довольно хороший список.

  • mod_ntlm: Это модуль Apache, который работает на Linux и поддерживает оригинальный NTLM (а не NTLMv2).

  • mod_auth_kerb: Это модуль Apache, который реализует Kerberos.

  • mod_auth_sspi: Это модуль Apache для Windows, который поддерживает оригинальный NTLM (а не NTLMv2).

  • Apache2: AuthenNTLM: это модуль Perl, который обрабатывает NTLM. Я не знаю, поддерживает ли он NTLM и NTLMv2.

  • mod_auth_ntlm_winbind: Это модуль Apache, который взаимодействует с аутентификацией Samba.

Единый вход и совместная аутентификация связаны, но разные, понятия . Я думаю, вы можете смутить их. Если вы хотите, чтобы подлинный SSO, загляните в CAS .

LDAP и AD – это протоколы для хранения пользователей и данных организации. Они не полезны для фактической аутентификации через Интернет, но вы можете использовать их за SSO (например, CAS), как «база данных».