domingo, 20 de febrero de 2011

SSO + OPENFIRE + Linux + Windows

Single Sign On.

La verdad despues de tanto llorar, luchar y maldecir he podido lograr este proceso con linux empezemos por lo basico:

La forma en que lo hice:

Linux Ubuntu Server 8.0.4 + Openfire 3.6.4 + Likewise open.

Primero instalaremos nuestro servidor de ubuntu, como sabemos que kerberos es extremadamente sensible con el tiempo antes de unir el equipo es necesario sicronizar nuestro servidor linux con el servidor de dominio - directorio activo "MICROSOFT" es necesario que deleguemos nuestro servidor ubuntu como Kerberos.

tenemos que crear 2 cuentas en el directorio activo una de administración para openfire y otra que es la que vamos a usar para crear nuestro principal en kerberos en mi caso fue xmpp-openfire

ntpdate 0.0.0.0
sudo apt-get install likewise-open
sudo domainjoin-cli midominio.local administrator
Cuando insertemos este comando nos va a preguntar nuestro servidor en el reino de kerberos.
sudo apt-get install sun-java6-bin
sudo apt-get install links instalaremos links para bajar openfire

sudo links www.igniterealtime.org
sudo tar -xvzf openfire-3.6.4.tar.gz
"ideal que hagamos toda esta operación en/opt"

sudo ln -s /opt/openfire/bin/openfire /etc/init.d/openfire
sudo chmod +x /etc/init.d/openfire
sudo update-rc openfire defaults

Ahora SSO.

vamos a generar el principal name con setspn y tambien a configurar nuestro servicio con la herramienta ktpass el sistema operativo en el que esta montado el dominio es Windows 2003 Server Enterprise R2. Debemos bajar el support tools de microsoft.

setspn -A xmpp/jabber.midominio.local@MIDOMINIO.LOCAL xmpp-openfire

ktpass-princ xmpp/jabber.midominio.local@MIDOMINIO.LOCAL -mapuser xmpp-openfire@midominio.local -pass * -ptype KRB5_NT_PRINCIPAL-out xmpp.keytab

Valores a reemplazar
* midominio.local

Cuando genermos nuestro keytab debemos subirlo a nuestro servidor ruta
/opt/openfire/resources lo podemos a hacer de winscp

ahora debemos crear el achivo gss.conf

com.sun.security.jgss.accept {
com.sun.security.auth.module.Krb5LoginModule
required
storeKey = true
keyTab = "/opt/openfire/resources/xmpp.keytab"
doNotPrompt = true
useKeyTab = true
realm = "MIDOMINIO.LOCAL"
principal = "xmpp/mensajeria.midominio.local@MIDOMINIO.LOCAL"
debug = true
isInitiator = false;
};

recordemos que debemos previamente haber creado una cuente xmpp-openfire en el directorio activo esta cuenta debe tener atributos especiales como tal que la contraseña nunca expire y que no use preautenticacio de kerberos.

ahora debemos editar nuestro archivo openfire.xml agregando estas lineas en entre el tag "" y "" dejo el link con lo que hay que agregar.

https://docs.google.com/document/d/1_yM4G8mQnfQ3oe7E_cGbfi2i-W7jVgP7IcwLbpp5FT4/edit?hl=en

agregado esto proseguimos:

lo salvamos y reiniciamos el servicio de openfire /etc/init.d/openfire stop y despues /etc/init.d/openfire start

ahora iniciamos nuestro cliente kerberos con la cuenta que se delego para principal este procedimiento lo realizamos en nuestro servidor linux.

kinit xmpp-openfire aca nos preguntara la contraseña seguido de esto hacemos un klist para ver que nuestro ticket de kerberos ha sido generado.

lo siguiente nuestros clientes que se vayan a conectar a traves de este servicio SSO deben tener un arreglo en o fix en el registro lo dejo en el link a continuación:

https://docs.google.com/leaf?id=0B5jRgEFt9xrSOGExMzEwMmQtMjM5ZC00NjJhLWFkYjQtYzE3MzljMTRlNmZm&hl=en

Ahora gocemos de nuestro SSO para realizar autodiscovery del servidor hay que generar apuntador txt en nuestro servidor microsoft pero eso para otra ocasion.

Suerte.

No hay comentarios:

Publicar un comentario