Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleNOTA

La funcionalidad descrita en este documento está disponible a partir de la versión 57.41.0-22

Introducción

Si bien una forma de integrarse con el Single Sign On de O3 es la adaptación de la aplicación existente para que utilice el CAS de O3, en muchas oportunidades esto es demasiado complejo y se requiere una alternativa más simple.

Excerpt

Este documento presenta una forma de integración con aplicaciones existentes (que realizan una validación previa del usuario) para que éstas redirijan a O3 incluyendo información de autenticación, que permita que el usuario no deba ingresar nuevamente las credenciales al acceder a los diferentes módulos web de O3.

Single Sign On de aplicaciones externas con los módulos web de O3

...

La URL generada por la aplicación para redirigir a O3 debe llevar el parámetro "_externalTicket" con el valor del ticket generado por la aplicación y almacenado en la base de datos.
Por ejemplo:

http://localhost:8080/o3portalo3web?_externalTicket=12345678

http://localhost:80808380/eportal/group/default?_externalTicket=12345678

...

  • Ejemplo de DataSource para una base Postgres MySql (jboss\server\default\deploy\gserver\ticket<o3bi>/jboss/standalone/deployments/Ticket-ds.xml).
Code Block
xml
xml

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>  <datasource jndi-name="java:jboss/datasources/TicketDS"
        pool-name="TicketDS" enabled="true" jta="true" use-java-context="true"
        <jndi-name>TicketDS</jndi-name>use-ccm="true">
        <connection-url>jdbc:postgresqlurl>
            jdbc:mysql://localhost:5432/ticket<5858/sso_tickets
        </connection-url>
        <driver>
       <driver-class>org.postgresql.Driver</driver-class>
     mysql
   <user-name>postgres</user-name>     <password>postgres</password></driver>
        <security>
 <metadata>           <type-mapping>PostgreSQL 7.2</type-mapping><user-name>root</user-name>
			<password>root</password>
        </metadata>security>
    </local-tx-datasource>
</datasources>

En caso de que se trate de otra Base de Datos se debe de copiar el jar del driver en O3/jboss/server/default/lib y configurar el datasource con la url, driverClass, usuario y password adecuados.Poner el driver en jboss. Para esto leer el wiki: Cómo configurar RBAC de O3BI con Diferentes Bases de Datos que explica como poner un driver en jboss7

  • Script de creación de la tabla para PostgresMySQL
Code Block

CREATE TABLE ssoSSO_ticketsTICKETS
(
  ticketTicket character varying(100) NOT NULL,
  ticketTicket_tsTS timestamp without time zone NOT NULL,
  usernameUserName character varying(50) NOT NULL,
  CONSTRAINT pk_sso_tickets PRIMARY KEY (ticketTicket)
)

Configuración de SSO en

...

O3Web

Se debe de configurar el filtro de CAS para habilitar la recepción y validación de tickets desde aplicaciones externas.

Para esto se deben descomentar las siguientes líneas en el archivo jboss/server/default/deploy/gserver/0o3.ear/o3portalhay que agregar los siguientes init-param en 2 filtros ("CASAuthenticationFilter" y "CAS Validation Filter") de CAS del archivo <o3bi>/jboss/standalone/deployments/o3-server.ear/o3web.war/o3web.war/WEB-INF/web.xml

Code Block
xml
xml

<init-param>
	<param-name>ticket.validator</param-name>
	<param-value>com.ideasoft.cs.ejb.ticket.DbTicketValidator</param-value>
</init-param>
<init-param>
	<param-name>dbticket.datasource</param-name>
	<param-value>java:jboss/datasources/TicketDS</param-value>
</init-param>

Nombre de atributo

Descripción

Valor por Defecto

ticket.validator

El nombre de la clase Java utilizada para validar el ticket, para la validación contra base de datos presentada aquí debe utilizarse el valor presentado en el ejemplo

 

dbticket.datasource

Nombre JNDI del DataSource donde se declara el acceso a la base de datos que tiene la tabla con los tickets

 

dbticket.expiration

Tiempo para la expiración de los tickets expresada en segundos

86400 (un día)

Configuración de SSO para EPortal

Descomentar las siguientes propiedades del archivo jboss/server/default/deploy<o3bi>/liferay.war/WEB-INF/classes/portal-ext.properties:

Code Block

o3.autologin.validator=com.ideasoft.cs.ejb.ticket.DbTicketValidator
dbticket.datasource=java:/TicketDS/comp/env/jdbc/TicketDB

Se puede especificar también la propiedad dbticket.expiration de la misma manera que para la configuración de O3PortalO3Web

Agregar la configuración de la Base de datos en liferay:

Agregar el "Resource" en el archivo <o3bi>liferay/tomcat/conf/context.xml

Code Block
<Resource name="jdbc/TicketDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="root"
            password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:5858/sso_tickets"
            maxActive="8"
            maxIdle="4"/>