<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Techbits &#187; openldap</title>
	<atom:link href="http://techbits.edermarques.net/tag/openldap/feed/" rel="self" type="application/rss+xml" />
	<link>http://techbits.edermarques.net</link>
	<description>As aventuras de um geek hackeando o Universo - o lado técnico da coisa</description>
	<lastBuildDate>Thu, 20 Aug 2009 06:14:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Integrando OpenLDAP, Subversion, Webdav e Apache2</title>
		<link>http://techbits.edermarques.net/admin-de-sistemas/integrando-openldap-subversion-webdav-e-apache2/</link>
		<comments>http://techbits.edermarques.net/admin-de-sistemas/integrando-openldap-subversion-webdav-e-apache2/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 19:42:51 +0000</pubDate>
		<dc:creator>Eder  L. Marques</dc:creator>
				<category><![CDATA[Admin. de Sistemas]]></category>
		<category><![CDATA[Aplicativos]]></category>
		<category><![CDATA[Comunidade]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[Admistração de sistemas]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[openldap]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blog.edermarques.net/?p=185</guid>
		<description><![CDATA[Aprenda a configurar o Subversion com apache2+webdav, autenticando via OpenLDAP.]]></description>
			<content:encoded><![CDATA[<p>Essa semana recebi a missão de configurar um novo repositório subversion, então aproveitei para dessa vez utilizar o apache2 com webdav, autenticando via OpenLDAP.</p>
<p>Visita ao site do apache, leitura de documentação, busca no google&#8230;</p>
<blockquote><p><em>&#8220;Ok, já posso por a mão na massa.&#8221;</em></p></blockquote>
<p>Ledo engano. O apache2 não autenticava o usuário nem a pau. O log do openldap mostava a consulta sendo feita, o repositório  estava com as permissões corretas para www-data.</p>
<blockquote><p><em>&#8220;Tá bom, vou ler a documentação novamente.&#8221;</em></p></blockquote>
<p>Após algumas horas de pesquisas na internet, consegui fazer a integração. Vejamos todos os passos.</p>
<p><strong>Ambiente</strong></p>
<ul>
<li>Servidor Subversion e apache2;</li>
<li>Servidor OpenLDAP;</li>
<li>Svn com vários repositórios, permissões de arquivos via OpenLDAP;</li>
<li>Controle via grupos.</li>
</ul>
<p><strong>Configuração do repositório</strong></p>
<p>O usuário www-data precisa ter acesso aos arquivos do repositório. Então supondo que sua base seja /var/svn/repo01, precisamos garantir as permissões com o comando:<br />
<code><br />
cd /var/snv/repo01<br />
chown -R www-data:grupo1<br />
find repo01/ -type f -print -exec chmod 660 {} \;<br />
find repo01/ -type d -print -exec chmod 2770 {} \;<br />
</code></p>
<p>Assim, apenas o www-data e os usuários do grupo terão acesso aos arquivos. Além disso, estamos setando o bit SGID nos diretórios, para que os arquivos criados também sejam do grupo.</p>
<p><strong>Configuração do apache2</strong></p>
<p>No apache 2.2.x, o módulo utilizado para autenticação via ldap é o <a title="mod_authnz_ldap" href="http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html" target="_blank">mod_authnz_ldap</a>. Iremos precisar do módulo dav_svn (pacote libapache2-svn). Habilite-os com o a2enmod.</p>
<p>Crie o arquivo do site em /var/apache2/sites-available/repo01. O conteúdo deve ser mais ou menos assim:<br />
<code><br />
&lt;VirtualHost *:80&gt;<br />
ServerAdmin administrador@seudominio.com.br<br />
ServerName svn.seudominio.com.br<br />
DocumentRoot /var/www/<br />
ErrorLog  /var/log/apache2/repo01/error.log<br />
LogLevel  notice<br />
CustomLog /var/log/apache2/repo01/access.log combined<br />
&lt;Location /svn/repo01&gt;<br />
#habilita o repositorio<br />
DAV svn<br />
# caminho para o repositorio<br />
SVNPath /var/svn/repo01<br />
# tipo de autenticacao<br />
AuthType Basic<br />
# identificação do repositorio<br />
AuthName "Repositorio SVN"<br />
# provedor de autenticacao<br />
AuthBasicProvider ldap<br />
# Está on porque se a autenticação via ldap falhar, não deve pesquisar outras bases<br />
AuthzLDAPAuthoritative on<br />
# URL da base LDAP. O ?uid especifica atributo pesquisar (uid)<br />
AuthLDAPURL "ldap://ldap.seudominio.com.br/ou=Usuarios,dc=seudominio,dc=com,dc=br?uid"<br />
# Informa que atributo usar para verificar se o usuario faz parte do grupo ou não<br />
AuthLDAPGroupAttribute memberUid<br />
# especifica que a busca deve ser feita por usuario, e nao pelo DN<br />
AuthLDAPGroupAttributeIsDN off<br />
#usuario que irá fazer a consulta no ldap<br />
AuthLDAPBindDN "cn=subversion,dc=seudominio,dc=com,dc=br"<br />
#senha do usuario acima<br />
AuthLDAPBindPassword "senha"<br />
# grupos que terão acesso ao repositorio<br />
Require ldap-group cn=repo01,ou=Grupos,dc=seudominio,dc=com,dc=br<br />
&lt;/Location&gt;<br />
&lt;/VirtualHost&gt;<br />
</code><br />
Habilite o site com o a2ensite, recarregue o apache2 e pronto, seu apache2 está acessando o repositório svn e autenticando via openldap. <img src='http://techbits.edermarques.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Agradecimentos ao <a title="pagina pessoal do faw" href="http://faw.sh/" target="_blank">faw</a>, que me ajudou a debugar o problema e a encontrar a solução.</p>
]]></content:encoded>
			<wfw:commentRss>http://techbits.edermarques.net/admin-de-sistemas/integrando-openldap-subversion-webdav-e-apache2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

