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.