Apache+AD+Kerberos = SSO

Приветствую сообщество.
Решил настроить SSO для WEB приложений в нашей компании.
Есть Сервер AD 2008. Gentoo как WEB сервер.
Билеты создал проблем с этим нету так как SSO настраивал на Gentoo для почты и прокси (работает без замечаний).

Вот ещё главное требование для WEB.
Все пользователи есть в AD, но не все введены в домены (удалённые офисы) и ближайшие лет 5 не будут вводиться.
Дык вот нужно что бы при входе на WEB приложение, проверка сначала велась через Kerberos + проверка принадлежности к группе в AD и если пользователь в домене то разрешить доступ если не в домене вывести окно авторизации в которое ввести логин и пароль пользователя в AD + проверка принадлежности к группе.

Конфиг пишу следующий:

<Directory "/var/www/car">
AuthType Kerberos
KrbSaveCredentials On
KrbDelegateBasic On
KrbMethodNegotiate On
KrbMethodK5Passwd On
KrbAuthoritative Off
KrbVerifyKDC Off
KrbServiceName "HTTP/car.cn.energy@CN.ENERGY"
KrbAuthRealms CN.ENERGY
Krb5KeyTab /etc/krb5.keytab

AuthType Basic
AuthBasicProvider ldap
AuthName "CN.ENERGY"
AuthzLDAPAuthoritative On
AuthLDAPURL ldap://srv-ad.cn.energy/DC=cn,DC=energy?sAMAccountName?sub?(objectClass=Person)
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN Off
AuthLDAPBindDN "user@cn.energy"
AuthLDAPBindPassword password
Require ldap-group cn=Transport,dc=cn,dc=energy
Options -Indexes -FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all
</Directory>

Работает только по отдельности. Если я в домене и только часть конфига с Kerberos то меня пускает.
Только пользователей (Require user) надо указывать что не совсем удобно.
Часть только с LDAP работает но только не с Require ldap-group, пользователь проходит , в логах чисто но окно авторизации опять выскакивает. Если пароль не правильный то в логах "authentication failure for "/": Password Mismatch".

В общем прошу Вашей помощи в решении данной задачи.
Всем спасибо.

Все пользователи есть в AD,

Все пользователи есть в AD, но не все введены в домены (удалённые офисы) - как это ?
т.е они есть , но их нету ?

п если не в домене вывести окно авторизации в которое ввести логин и пароль пользователя в AD + проверка принадлежности к группе.

подумай и переформулируй что ли. если их нет в домене, то что можно проверять ?
Ну или поясни, что для тебя домен АД ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

slepnoga написал(а): Все

slepnoga написал(а):
Все пользователи есть в AD, но не все введены в домены (удалённые офисы) - как это ?
т.е они есть , но их нету ?

Это значит что все сотрудники предприятия имеют учётную запись в AD.
Но вот только часть из них непосредственно логинится в домен.

slepnoga написал(а):
подумай и переформулируй что ли. если их нет в домене, то что можно проверять ?
Ну или поясни, что для тебя домен АД ?

Поясняю на примере.
У меня настроен postfix+dovecot с двойной проверкой авторизации.
То есть если пользователь логинится в домен то используется авторизация через GSSAPI и я имею SSO.
Если пользователь логинится как локальный пользователь (но имеет учётку в АД) то его авторизует другой модуль (NTLM) и в настройках почтового клиента я прописываю логин/пароль этого пользователя.

Такая же схема мне нужна и с Apache.

Спасибо.

sssd + pam_sss+ mod_pam+ vim

sssd + pam_sss+ mod_pam+ vim /etc/sssd/sssd.conf; vim mod_pam.conf

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Спасибо. Пока решил таким

Спасибо.
Пока решил таким способом:

        KrbAuthoritative Off
        AuthType Kerberos
        Krb5Keytab "/etc/krb5.keytab"
        KrbServiceName "HTTP/car.cn.energy@CN.ENERGY"
        KrbAuthRealms CN.ENERGY
        KrbMethodK5Passwd On
        KrbSaveCredentials On
        KrbDelegateBasic On
        KrbMethodNegotiate On
        KrbVerifyKDC Off
        KrbServiceName "HTTP/car.cn.energy@CN.ENERGY"
        Require valid-user

Если пользователь залогинен в домен то получает SSO, а если нет то браузер выбрасывает окно авторизации в котором пользователь вводит учётные данные из АД.
Только есть проблема что Require не работает с группами.

Ваш совет посмотрю.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".