You are on page 1of 2

Autenticando usurios SVN no OpenLDAP (autenticao baseada em grupos) Pedro...

Page 1 of 2

Executado em um Debian GNU/Linux 6 amd64. Pr-requisitos: subversion previamente instalado e um repositrio j criado, caso precise de um guia para a instalao e criao dos repositrios no SVN recomendo este tutorial: http://longspine.com/how-to/install-apachesubversion-on-debian-lenny-and-migrate-therepositories/ Pacotes necessrios:
1 aptget install db4.7util sasl2bin ldaputils

Os passos a seguir so realizados levando em considerao um repositrio previamente criado em /home/svn/myproject. Vamos editar o arquivo svnserve.conf do nosso repositrio (/home/svn/myproject/conf/svnserve.conf) como o mostrado a seguir:
1 2 3 4 5 6 7 8 [general] anonaccess = none authaccess = write realm = myproject [sasl] usesasl = true

Ateno no parmetro realm, que deve ser o nome do repositrio. Criaremos o seguinte arquivo de definies do svn para o saslauthd em /usr/lib/sasl2/svn.conf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #/usr/lib/sasl2/svn.conf might be /usr/lib/sasl2/subversion.conf not sure, make both ## Password check method, default to the SASL AUTH daemon pwcheck_method: saslauthd ## Auxiliary (propery) plugin, use ldap auxprop_plugin: ldap ## Mechanism list, MS AD requires you to send credentials in plain text mech_list: PLAIN LOGIN ## Not sure if this is required... but I kept it in ldapdb_mech: PLAIN LOGIN

Agora vem a configurao do servio saslauthd, edite o arquivo /etc/default/saslauthd e altere os seguintes parmetros:
1 2 START=yes MECHANISMS="ldap"

A mgica do negcio vai no prximo arquivo, que define como o SASL vai pesquisar o diretrio em busca dos usurios. Antes vamos mostrar uma DIT de exemplo, e mostar como ser feita a pesquisa. dc=exemplo,dc=com |-cn=admin | |-ou=people | |-uid=user1 | |-uid=user2 | |-ou=group | |-cn=myproject | |-cn=someAnotherProject Os usurios pertencem classe posixAccount e os grupos classe posixGroup e como podemos ver, criamos um grupo para cada repositrio do svn e atribumos a eles os devidos usurios usando o atribudo memberUid como mostrado abaixo:
1 2 3 4 5 6 7 dn: cn=myproject,ou=group,dc=exemplo,dc=com gidNumber: 2031 cn: myproject objectClass: top objectClass: posixGroup memberUid: user1 memberUid: user2

Agora editaremos o principal arquivo de configurao do SASL, o /etc/saslauthd.conf, como mostrado a seguir:
1 ## URL for the Active Directory

http://www.proger.eti.br/2012/02/autenticando-svn-no-openldap-baseada-em-grupos/

03/02/2013

Autenticando usurios SVN no OpenLDAP (autenticao baseada em grupos) Pedro... Page 2 of 2

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

ldap_servers: ldap://"openldap server ip address":389 ## Not sure why exactly, but yes doesnt work... so no. ldap_use_sasl: no ## Bind DN (Distinguishing Name) of the user you want to bind to the AD ldap_bind_dn: cn=admin,dc=exemplo,dc=com ## Password to the above user ldap_password: openldap_password_goes_here ## Sends passwords as plain text to AD to authenticate ldap_mech: PLAIN ## Auth Method = Bind as specified user, and search for users in the AD ldap_auth_method: bind ## Filter for users. (user@example.com) sAMAccountName = user ldap_filter: uid=%U ldap_scope: sub ldap_password_attr: userPassword ldap_search_base: ou=people,dc=exemplo,dc=com ## Group Filter ldap_group_match_method: filter ldap_group_search_base: ou=group,dc=exemplo,dc=com ldap_group_filter: (&(objectClass=posixGroup)(cn=%r)(memberUid=%u))

O SASL ira fazer a query definida na diretiva ldap_group_filter substituindo a varivel %r pelo nome do realm, isto , o nome do repositrio definido no arquivo svnserve.conf e a varivel %u pelo nome de usurio passado no login. Assim para realizar a autenticao um usurio deve passar seu login e senha corretos, e pertencer ao grupo ldap do repositrio. Apos isso iniciamos o saslauthd e reiniciamos o subversion:
1 2 service saslauthd start service svn restart

Podemos acompanhar as consultas com um tail no arquivo /var/log/auth.log. Outra dica por o saslauthd em modo debug com o comando:
1 saslauthd a ldap d

Referncias: http://notesfromchechu.com/blog/subversionopenldap/

http://www.proger.eti.br/2012/02/autenticando-svn-no-openldap-baseada-em-grupos/

03/02/2013

You might also like