miércoles, 2 de noviembre de 2016

SSO en Athento ECM usando SAML2.0 de LastPass.com

Athento ECM es un sistema de Gestión Documental colaborativo, y cómo tal, posee una gestión de seguridad y acceso muy ágil. Entre los métodos ofrecidos para que podamos acceder de forma segura tenemos:
  • Autenticación básica.
  • Acceso seguro por token.
  • OAuth.
  • SAML 2.0.
  • Autenticación en 2 pasos.
  • OpenID.
  • Kerberos.
  • CAS.
  • NTLM.
  • ...
Varios de estos métodos de autenticación tienen la capacidad de mantener el estado de autenticación permanente (Single Sign On -SSO-) haciendo uso de herramientas externas, como es el caso de LastPass.com que ofrece, entre otros métodos, la capacidad de usar SSO con SAML2. De SAML, sin llegar a profundizar técnicamente sobre él, podemos decir que se trata de un mecanismo de gestión de autenticación y autorización mediante un proveedor de identidad. Veremos a continuación cómo configurar nuestra instancia de Athento ECM contra LastPass.com, siendo este último nuestro IdP (Proveedor de Identidad).

Para ello, como requisito obligatorio tenemos que tener instalado el addon de SAML2 en nuestro sistema Athento ECM.

Para iniciar nuestra configuración con SAML2, tenemos que acceder con nuestra cuenta a LastPass.com e ir a la Consola de Administración. 

Una vez dentro de la consola, nos colocamos en la zona de SAML localizada en la zona de paneles superiores. Vemos cómo LastPass.com ofrece la posibilidad de configurar directamente la integración SSO de SAML con muchos sistemas de la nube. Nosotros, vamos a configurarlo de manera customizada y, para ello, hacemos click en el primer botón Custom Service.




Dentro de la configuración de nuestros dominios de autenticación, añadiremos uno nuevo que será el encargado de realizar el acceso seguro a nuestro sistema Athento ECM.



En la configuración de nuestro dominio tenemos que introducir varios datos necesarios:

  1. Entity ID: que será el identificador de la entidad sobre la que aplicaremos la autenticación y autorización. Incluiremos la url de nuestra instancia de Athento ECM.
  2. Assertion Consumer Service: que será la URL destino que usaremos para hacer las comprobaciones de seguridad y estar continuamente conectado y autenticado.
  3. Launch URL: la URL que lanzará LastPass.com tras la autenticación inicial.
Vemos un enlace Import SAML SP Metadata que abre una ventana emergente y donde podemos incluir un código XML que nos ofrece Athento ECM para añadir automáticamente los tres valores anteriores. Para ello, copiamos y pegamos el código ofrecido por la ruta http://<athento-ecm-host>/nuxeo/saml/metadata al cuadro de texto de la ventana emergente.

Cuando ya tenemos introducidos estos valores de identificación y control de la seguridad, procedemos a exportar la configuración que necesitaremos introducir en nuestra instancia de Athento ECM. Para ello, hacemos click en el enlace Export SAML IdP Metadata, que nos ofrecerá copiar el código, o bien, descargar la información en un archivo mediante en el enlace de la parte inferior  de la página en el enlace dentro de un párrafo "[...] download your company's SAML endpoint metadata [...]".

Una vez que ya tenemos dicha información, hemos de centrarnos en la configuración de un nuevo autenticador para Athento ECM. Para ello, entramos en el directorio de nuestra instancia: /var/lib/nuxeo/server/nxserver/config, y creamos un archivo denominado saml2-config.xml. En él introducimos el siguiente código:

 <component name="org.athento.nuxeo.login.saml.auth"> 
   <require>org.nuxeo.ecm.platform.ui.web.auth.WebEngineConfig</require>  
   <require>org.nuxeo.ecm.platform.ui.web.auth.defaultConfig</require>  
   <extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"  
         point="authenticators">  
     <authenticationPlugin name="SAML_AUTH" enabled="true"  
                class="org.nuxeo.ecm.platform.auth.saml.SAMLAuthenticationProvider">  
       <loginModulePlugin>Trusting_LM</loginModulePlugin>  
       <needStartingURLSaving>true</needStartingURLSaving>  
       <parameters>  
         <parameter name="name">https://lastpass.com/saml/idp</parameter>  
         <parameter name="metadata">nxserver/config/lastpass-athento-saml-metadata.xml</parameter>  
         <!-- Timeout in seconds -->  
         <parameter name="timeout">5</parameter>  
       </parameters>  
     </authenticationPlugin>  
   </extension>  
   <extension  
      target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"  
      point="chain">  
    <authenticationChain>  
      <plugins>  
        <plugin>BASIC_AUTH</plugin>  
        <plugin>SAML_AUTH</plugin>  
        <plugin>FORM_AUTH</plugin>  
      </plugins>  
    </authenticationChain>  
  </extension>  
 </component>  

Es importante, reseñar el valor del archivo que también tenemos que crear con el contenido exportado en la configuración del dominio en LastPass.com que hablamos hace un momento (Export SAML IdP Metadata). Como decimos, lo crearemos en nxserver/config/lastpass-athento-saml-metadata.xml.


Con esta configuración ya tendremos la capacidad de autenticar directamente contra LastPass.com y mantener nuestra sesión activa.

Si queremos establecer la comunicación encriptada contra LastPass.com (algunos IdPs lo requieren aunque no en nuestro caso), podemos seguir los siguientes pasos:

1. Creamos un archivo para contribuir un nuevo keystore en el directorio donde hemos creado los dos archivos anteriores. Lo denominaremos saml-keystore-config.xml, y en él, introduciremos el siguiente código:

 <component name="org.athento.nuxeo.login.saml.keystore">  
   <extension target="org.nuxeo.ecm.platform.auth.saml.key.KeyManager"  
         point="configuration">  
     <configuration>  
       <keystoreFilePath>nxserver/data/saml-keystore.jks</keystoreFilePath>  
       <keystorePassword>password</keystorePassword>  
       <passwords>  
         <password key="saml">changeit</password>  
       </passwords>  
       <signingKey>saml</signingKey>  
       <encryptionKey>saml</encryptionKey>  
     </configuration>  
   </extension>  
 </component>  

2. Luego procedemos a crear el keystore en la ruta indicada en el tag <keystoreFilePath>: nxserver/data/saml-keystore.jks.
 keytool -genkeypair -keystore saml-keystore.jks -alias saml -keypass changeit -dname 'CN=Athento O=Athento' -storepass password  


3. Importa tu certificado (certfile.cer) al keystore generado:

 keytool -import -alias "AthentoSAML2" -file certfile.cer -keystore saml-keystore.jks password  

Con esto tendremos configurado nuestro IdP de SAML2 contra Athento ECM de manera cifrada.

Esperamos que os sea de utilidad esta nueva integración de Athento ECM a todos aquellos que ya usáis el servicio de Lastpass para recordar y tener centralizadas todas las contraseñas de usuario.


Prueba 30 días gratis Athento

No hay comentarios:

Publicar un comentario en la entrada

AddThis