Как единый вход (SSO) работает с PHP + Apache против Active Directory для прозрачной аутентификации? - PullRequest
8 голосов
/ 23 ноября 2010

Мне нужно больше узнать о едином входе в веб-приложение для 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, mod_auth_kerb и Apache2:AuthenNTLM. И тот был Apache2:AuthenNTLM

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

Говоря об Active Directory , я получил ответ , в котором активный каталог описан как реализация ldap + kerberos + "несколько других разнородных кусочков".

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

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

Ответы [ 2 ]

15 голосов
/ 28 октября 2011

Аутентификация - запутанный беспорядок.Вот некоторая предыстория.

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

  • NTLM: NTLM - это единый вход 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.

1 голос
/ 23 ноября 2010

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

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

...