Autenticare ejabberd con mysql

Nel post precedente abbiamo visto come installare e configurare il server XMPP ejabberd. Adesso vediamo come utilizzare ejabberd con mysql per effettuare lautenticazione degli utenti.
Di default ejabberd utilizza un database interno di tipo mnesia, anchesso scritto in erlang. Se volete utilizzare un vostro database mysql è necessario utilizzare uno script di autenticazione esterna.
1. Scaricare e installare il modulo mysql

Come prima cosa bisogna scaricare il modulo mysql con il comando:

svn co https://svn.process-one.net/ejabberd-modules

Poi spostiamoci nella cartella appena scaricata e compiliamo il modulo:

cd ejabberd-modules/mysql/trunk/
./build.sh

Copiamo, infine, i file appena generati nella cartella di ejabberd, con il comando:

sudo cp ebin/* /usr/lib/ejabberd/ebin/

2. Cambiare metodo di autenticazione

Cercate nel file di configurazione (che dovrebbe essere in /etc/ejabberd/ejabberd.cfg) la voce auth_method. Commentate quella

{auth_method, internal}

e decommentate la voce:

{auth_method, external}

3. Impostare lo script di autenticazione

Subito sotto la voce auth_method ci dovrebbe essere la voce extauth_program. Se cè modificatela, se non cè aggiungetela in questo modo:

{extauth_program, /etc/ejabberd/MIOSCRIPT.php}

Dove al posto di MIOSCRIPT.php va indicato il vostro script di autenticazione.
Lo script può essere scritto in qualsiasi linguaggio di programmazione. Ce ne sono alcuni disponibili sul sito ufficiale già scritti in diversi linguaggi e per diversi framework.