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


Мне нужно получить больше информации о едином входе в веб-приложение в сравнении с Active Directory.

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

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

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

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

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

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

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

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

Author: Community, 2010-11-23

2 answers

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

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

  • 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: аутентификация: Это модуль Perl, который обрабатывает NTLM. Я не знаю, поддерживает ли он NTLM и NTLMv2.

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

 14
Author: kswan, 2015-07-16 05:46:18

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

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

 1
Author: troelskn, 2010-11-23 20:08:46