Назад | Перейти на главную страницу

Использование почтового сервера Apache James с LDAP

На моем сервере LDAP (ApacheDS)

У меня есть пользователи под ou=users,ou=system.

Я написал приведенную ниже конфигурацию в Джеймса, и оба сервера могут запускаться (DS и James).

<repository name="LocalUsers" 
class="org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository" 
ldapHost="ldap://localhost:10389" 
        principal="uid=admin,ou=system" credentials="secret" userBase="ou=users,ou=system" 
userIdAttribute="uid"/>

Я понимаю, что моя конфигурация в порядке, потому что я получаю предупреждение «репозиторий пользователей доступен только для чтения», когда пытаюсь добавить пользователя с помощью james-cli.sh

Я добавил пользователя прямо в сервер LDAP, у них DNs,CNи uidс

Я хочу спросить, как я могу войти через Джеймса (почтовый сервер) в свою учетную запись на сервере LDAP? Что писать для бла @ бла. я думаю, что могу использовать uid для первого бла, но я не могу определить домен через Джеймса, потому что его шлюз LDAP доступен только для чтения.

ШАГИ ПО АУТЕНТИФИКАЦИИ ДЖЕЙМСА С LDAP (ApacheDS для этого случая)

Удалить запись о JPA в файле Джеймса conf / usersrepository.xml

и добавьте строки ниже, последний ivew должен быть таким:

<xml>
 <repository name="LocalUsers" 
class="org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository" 
ldapHost="ldap://localhost:10389" 
        principal="uid=admin,ou=system" credentials="secret" userObjectClass="inetOrgPerson"  userBase="ou=users,ou=system" 
userIdAttribute="uid">
    <UsersDomain>example.com</UsersDomain>  
       <LDAPRoot>dc=example,dc=com</LDAPRoot> 
       <MailAddressAttribute>mail</MailAddressAttribute> 
       <IdentityAttribute>uid</IdentityAttribute> 
       <AuthenticationType>simple</AuthenticationType>
       <ManagePasswordAttribute>TRUE</ManagePasswordAttribute> 
       <PasswordAttribute>userPassword</PasswordAttribute> 
</repository>
</xml>

Немного пояснить;

В конструкции ApacheDS по умолчанию есть корень, имеющий "dc = example, dc = com"

Из-за этого следует добавить строки:

<UsersDomain>example.com</UsersDomain>  
<LDAPRoot>dc=example,dc=com</LDAPRoot> 

И домен под названием "example.com" должен быть добавлен к Джеймсу, он сохраняет информацию о доменах все еще в JPA.

${james_root}/container-spring/target/appassembler/bin/james-cli.sh -h localhost adddomain example.com

Администратор ApacheDS является администратором в записи «ou = system», а его пароль по умолчанию - «секретный», поэтому нам нужны следующие атрибуты:

principal="uid=admin,ou=system" credentials="secret"

В ApacheDS, когда вы хотите добавить запись, для нее требуются классы объектов, она должна быть выбрана, «inetOrgPerson», и она автоматически добавит еще несколько, таким образом атрибут должен быть добавлен в конфигурацию:

userObjectClass="inetOrgPerson"  

Пользователи находятся под записью «ou = users, ou = system», поэтому следует добавить атрибут:

userBase="ou=users,ou=system" 

Для ApacheDS атрибут userIdAttribute равен «uid», поэтому он указывается:

userIdAttribute="uid"

В ApacheDS новых пользователей следует добавлять в "ou=users,ou=system", с "uid" и "userPassword" атрибуты. Также при добавлении нового пользователя DN должно содержать "uid".

При запросе Джеймса, например, POP3,

USER yourUsersUID@example.com
PASS yourUsersPassword

должен быть использован.