CAS, Alfresco y Web Services

cancel
Showing results for 
Search instead for 
Did you mean: 
lourdes
Member II

CAS, Alfresco y Web Services

Buenas,
Tengo Alfresco integrado con CAS.
Desde un servicio Web quiero autenticarme en Alfresco a través de cas.
Es decir, hasta ahora hacía lo siguiente:
AuthenticationUtils.startSession("admin", "admin");
Y ahora, en lugar de admin/admin me tome el usuario que esté logado en el cas.

¿Cómo puedo hacer esto?
¿Cómo saco el usuario y la clave del cas?
7 Replies
cesarista
Customer

Re: CAS, Alfresco y Web Services

Hola Lourdes:

De manera sencilla, un CAS (Central Authentication Service) te permite disponer de un sistema de SSO para todas las aplicaciones web de tu intranet, de modo que una vez logeado en una de ellas, el ticket de CAS te validará en cualquiera de las aplicaciones que tiren del CAS. El CAS utiliza unos authenticationHandlers que te permiten autenticar contra diferentes sistemas de autenticación como un LDAP o AD, un Kerberos o una base de datos entre. Un ejemplo típico puede ser un sistema CAS + Alfresco + LDAP donde tanto Alfresco como el CAS tiran de un LDAP.

Si te has instalado un CAS por defecto, el unico authenticationHandler es uno de prueba que valida cualquier usuario y password que sean iguales, pero este no te vale para ningún entorno real. Los usuarios en cualquier caso son los del sistema de autenticación del que tira el CAS, en el ejemplo que te he puesto los usuarios del LDAP. Si tu pregunta va en relación a cómo haces que ese usuario sea administrador, dependerá del tipo de autenticación, pero la manera más sencilla es añadirlo al grupo de ALFRESCO_ADMINISTRATORS o directamente por configuración.  

Un saludo.

–C.
lourdes
Member II

Re: CAS, Alfresco y Web Services

Buenas,

Gracias por contestar, pero no te entiendo.
No veo la forma de autenticarme a través de servicios Web de Alfresco con Cas. ¿Cómo puedo extraer del cas el usuario y la clave?
Aunque pueda coger el ticket del cas, no sé cómo decirle a mi servicio web que el usuario que se está conectando es tal.
Es que yo tengo una aplicación que a través de servicios web se van dando de alta ficheros dentro de alfresco, hasta ahora usaba admin, admin, pero el autor de los contenidos aparecía como admin.
Ahora quiero colocar mi aplicación de webservices dentro del servidor de alfresco con autenticación cas y que tome al usuario logado, así dependendiendo de quién sea, pues me aparecerán los ficheros creados con él. Pero es que no veo en ningún sitio como poder autenticar el web-service con el usuario del cas….

Muchas gracias,
Lourdes
cesarista
Customer

Re: CAS, Alfresco y Web Services

OK, ahora entiendo algo más tu pregunta.

Buenas,
Gracias por contestar, pero no te entiendo.
No veo la forma de autenticarme a través de servicios Web de Alfresco con Cas. ¿Cómo puedo extraer del cas el usuario y la clave?
Aunque pueda coger el ticket del cas, no sé cómo decirle a mi servicio web que el usuario que se está conectando es tal.
Es que yo tengo una aplicación que a través de servicios web se van dando de alta ficheros dentro de alfresco, hasta ahora usaba admin, admin, pero el autor de los contenidos aparecía como admin.
Ahora quiero colocar mi aplicación de webservices dentro del servidor de alfresco con autenticación cas y que tome al usuario logado, así dependendiendo de quién sea, pues me aparecerán los ficheros creados con él. Pero es que no veo en ningún sitio como poder autenticar el web-service con el usuario del cas….

Muchas gracias,
Lourdes

No tienes que extraer el usuario y la clave. Tu aplicación, que usa servicios web de Alfresco, es la encargada de autenticarse contra el servidor de Alfresco, tenga un CAS delante o no. Y a ese cliente le tendrás que pasar las credenciales (usuario y contraseña), y no directamente escritas en tu código.
lourdes
Member II

Re: CAS, Alfresco y Web Services

Vale, pero ¿cómo me autentico a través de servicios Web sin tener el usuario y la clave?
Si elimino el startsession me da error de que no he inicializado sesión. Y no sé cómo hacer el start session sin disponer de usuario y clave.
¿Alguna idea?
putodemonio
Member II

Re: CAS, Alfresco y Web Services

Lourdes, estoy en el mismo caso que tú. ¿has encontrado alguna solución?
sapodoble_3589
Member II

Re: CAS, Alfresco y Web Services

Hola, para hacer esto te debes crear un filtro para autenticar via web, que sea capaz de averiguar si estás validado contra tu CAS previamente o reenviar la petición de login al CAS en caso de no estarlo.

Para hacerlo, en su dia, nos centramos la documentación que encontramos de la implementación de alfresco con el CAS de Yale, para hacerlo usamos el esqueleto de NovellIChainsHTTPRequestAuthenticationFilter y lo adaptamos a nuestro CAS/SSO

Héchale un vistazo a los siguientes enlaces, de todas formas intentaré buscar el documento con los pasos que realizamos en su momento y lo pego.

Enlaces
http://forums.alfresco.com/fr/viewtopic.php?f=6&t=1819
http://wiki.alfresco.com/wiki/Central_Authentication_Service_Configuration
pablo_zapico
Member II

Re: CAS, Alfresco y Web Services

Cas server te proporciana una serie de objetos de los cuales puedes obtener el usuario autenticado:

// either of these will work:
session.getAttribute(CASFilter.CAS_FILTER_USER);
session.getAttribute("edu.yale.its.tp.cas.client.filter.user");

// either of these will work:
session.getAttribute(CASFilter.CAS_FILTER_RECEIPT);
session.getAttribute("edu.yale.its.tp.cas.client.filter.receipt");


A partir de que tienes el usuario el cual ya esta validado puedes solicitar sus credenciales… el problema lo encontraras en el password ya que deberia estar encriptado.

Nosotros estamos integrando Liferay con Alfresco mediante WebScripts

No se si puedo ayudarme en algo mas?