Author Topic: Joomla авторизация по LDAP  (Read 9180 times)

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Joomla авторизация по LDAP
« on: December 22, 2011, 08:21:32 am »
Доброго вам. У кого есть опыт подключения Joomla к LDAP. Копаю у же который раз .. делал на автономный сервер и на связку Master Slave? как с локального web сервера так и с сайта расположенного на хосте. Прописывал установки по образцу http://forum.zentyal.org/index.php/topic,99.0.html ... и ни чего на выходе при попытке авторизоваться на сайте пользователем из LDAP выходит чистый лист.  порт LDAP соответственно открыт. 

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #1 on: January 23, 2012, 01:41:03 pm »
ни у кого не было опыта ?

DokToR

  • Zen Apprentice
  • *
  • Posts: 7
  • Karma: +1/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #2 on: January 23, 2012, 01:56:45 pm »
Исходя из здравого смысла, расказал бы как и что делал более подробно! Заводил ли юзверей, настраивал ли фаервол на разрешение 389 порта для опенлдап, который по умолчанию блокирован! и так далее... для проверки, есть ли данные в лдап, выполни команду sudo slapcat. Вообщем разберись как работает лдап и всё с ним связаное.

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #3 on: February 21, 2012, 02:59:35 pm »
Спасибо за проявленное внимание. Немного здравого смысла:
Есть аля сайт на joomle 1.5 на хостинге nic.ru со своей локально базой пользователей. Захотелось сделать авторизацию по ldap от Zentyal.
Вариант первый - взят автономный сервер с пользователями открыты все подходы для LDAP по порту 389,
joomla сконфигурирована по примеру из форума:
    Host - server.myhost.ru
    Port - 389
    LDAP V3 - yes
    Negotiate TLS - no
    Follow Referrals - no
    Authorisation Method - Bind Directly as User
    Base DN - dc=server,dc=office,dc=local
    Search String - uid=[search]
    User's DN - uid=[username],ou=users,dc=server,dc=office,dc=local
    Connect Username   пустое поле
    Connect Password   пустое поле
    Map: Full Name  - sn
    Map: email - mail
    Map: User ID - uid

на выходе при попытке авторизоваться выходит чистый лист.

вариант второй - связка master -slave порты повторюсь открыты (master локальный slave он же и почтовик внешний и внутренний)

аналогичная настройка аналогичный результат:
настраивал  host на slave
ставил joomla на slave направлял на локальный ip master или на slave
результат тот же - чистый лист

подключение к ldap  с помощью Apache Directory Studio проходит на ура.




« Last Edit: February 24, 2012, 03:57:40 pm by Sergo »

DokToR

  • Zen Apprentice
  • *
  • Posts: 7
  • Karma: +1/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #4 on: February 22, 2012, 01:34:37 pm »
В зентиале настроен модуль лдап? правильно ли взят базовый и юзерский DN?(судя по вашим - так быть не должно)
Заведены ли пользователи в лдап? Проведите сверку настроек в джомле с настройками, которые выдает зентиал.

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #5 on: February 24, 2012, 04:04:39 pm »
Что скрывает сакральный смысл "настроен модуль лдап" ? Настроено средствами Zentyal в расширенном режиме Master -Slave синхронизация между master и серверами slave (3 сервера) проходит. Настройки базового и пользовательского в моем описании (опечатку я исправил) одинаковые с настройками  сервера master. Пользователи заведены серверы рабочие и активно используются.

вопрос: в качестве хост должен бы указан мастер или сервер на котором установлен mail и web server?

yura.syrov

  • Zen Warrior
  • ***
  • Posts: 138
  • Karma: +5/-12
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #6 on: April 02, 2012, 04:34:42 pm »
ну так чем дело кончилось?

stuartiannaylor

  • Guest
Re: Joomla авторизация по LDAP
« Reply #7 on: April 02, 2012, 05:02:25 pm »
http://forum.zentyal.org/index.php/topic,99.msg333.html#msg333

Sorry but it would need a google translate.

I still haven't got to grips how roadmap 3.0 and ldap will actually work. Also with Joomla LDAP only the authentication is stored in the LDAP and everything else is in the database so it has often made me wonder why bother. Kerberos & SSO AKA roadmap 3.0 should be the way to go but as of yet the exact details are a little sparse.

yura.syrov

  • Zen Warrior
  • ***
  • Posts: 138
  • Karma: +5/-12
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #8 on: April 03, 2012, 06:21:20 am »
я сделал себе тестовый сервер с joomla 1.5
установил JDiagnostic

"ldapsettings>Connection and Bind test" выдаёт "Successfully bound to LDAP server"
а "ldapsettings>Authentication Test" и ввод действующего логина и пароля выдаёт "User authentication failed Error Message: Failed binding to LDAP server"

как это понимать? :) проблема всё-же в конфигурации zentyal? люди как-то же подключают свою joomla к ldap.

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #9 on: October 16, 2012, 03:23:59 pm »
Разобрался с белым экраном после попытки авторизоваться по LDAP (вопрос начала топа)
Все оказалась банально :( не был установлен PHP5-ldap и скорее всего на Ru-центре он как обычно выключен
Так как подключение к Zentyal 2.2 постепенно теряет смысл, пробую сделать это на Zentyal 3.
Подключался как к AD в итоге пользователь определен, но не найдена запись про mail, что не дает создать нового пользователя в joomle  ... копаю дальше.

PS Спасибо всем тем кто откликнулся.

Sergo

  • Zen Apprentice
  • *
  • Posts: 44
  • Karma: +0/-0
    • View Profile
Re: Joomla авторизация по LDAP
« Reply #10 on: October 16, 2012, 04:45:29 pm »
В общем заработало в таком виде:
Zentyal 3
joomla 1.5-3

Хост:   pdc.domain.ru
Порт:   389
LDAP V3:   Да
Выполнять TLS:   Нет
Следовать перенаправлениям:   Нет
Метод авторизации:   Привязать непосредственно как пользователя.
Базовый DN:   dc=domain,dc=ru
Строка поиска:   sAMAccountName=[search]@domain.ru
Пользовательский DN:   [username]@domain.ru
     
Имя пользователя подключения:   ПУСТО
Пароль подключения:   ПУСТО
     

Map: Полное имя:   displayName
Map: E-mail:   userPrincipalName 
Map: User ID:   sAMAccountName

Но капля дегтя -  Map: E-mail:   userPrincipalName  у меня домен локальный в виде local.domain.ru и почта в joomle при регистрации записывается как user@local.domain.ru вместо того как положено  user@domain.ru.

ps если указывать в Map: E-mail: mail  то выдает что email не определен и новый пользователь не может быть заведен.


решено так
нашел тут http://forum.joomla.org/viewtopic.php?p=1351507

найти для Joomla 1.5 $/libraries/joomla/database/table/user.php и для Joomla 3 $/libraries/joomla/table/user.php  блок (линия 157-160 ):


Quote
if ((trim($this->email) == "") || ! JMailHelper::isEmailAddress($this->email) ) {
   $this->setError( JText::_( 'WARNREG_MAIL' ) );
   return false;
}

и заменить его на:

Quote
if ((trim($this->email) == "") || ! JMailHelper::isEmailAddress($this->email) ) {
   $this->email = $this->username . "@domain.ru";
   // Find the explanation below
}

в Map: E-mail: mail   

что конечно не правильно но теперь он жестко привязывает нужный мне почтовый домен к пользователю, если конечно логин в AD совпадает с почтовым.

PS Может кто знает более изящное решение с нетерпением жду ваш вариант.


« Last Edit: October 16, 2012, 06:08:47 pm by Sergo »