Мне нужно больше узнать об 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), как «база данных».