Documento técnico Manual de integración SSO

Anuncio
Documento técnico
Manual de integración SSO
Revisión:
v 1.0
Fecha última versión:
febrero 2006
Índice
1_
Introducción...................................................................................................... 3
1.1_
Descripción de plataforma ASF................................................................... 3
1.2_
Módulo de Autenticación Única (SingleSignOnService o SSO)............. 4
2_
Integración del Módulo Servidor Single SignOn..................................... 5
2.1_
3_
Configuración del servidor de SSO............................................................. 5
Módulo Cliente Single SignOn ..................................................................... 7
3.1_
Configuración del cliente SSO e instalación del Filtro............................ 7
3.2_
Interfaz Filtro - Aplicación ............................................................................. 7
3.3_
Interfaz Servidor SSO - Cliente ................................................................... 8
4_
Anexo I: Fichero de propiedades del servidor SSO............................... 9
5_
Anexo II: Configuración de un filtro ......................................................... 10
6_
Anexo III: Fichero de propiedades del cliente SSO.............................. 11
7_
Anexo IV: Inserciones en la base de datos para configurar el SSO 12
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
2
1_ Introducción
Este documento tiene como finalidad recoger todos los aspectos relacionados
con la integración del módulo Single SignOn perteneciente a la Plataforma de
Firma Electrónica Avanzada ASF. Dicha plataforma es una solución completa
para la integración de la Firma Electrónica Avanzada en la infraestructura
informática de una entidad u organización.
1.1_
Descripción de plataforma ASF
La Plataforma ASF es una solución completa para la integración de la Firma
Electrónica Avanzada en una infraestructura informática de una entidad u
organización.
Una de sus características más diferenciadoras es el hecho de permitir la
convivencia con más de una Autoridad de Certificación (CA), independizando
completamente al resto de los sistemas de la complejidad añadida que supone
la compatibilidad con más de una CA.
Los principales aspectos que permite resolver la utilización de ASF en
cualquier organización incluyen los siguientes:
•
Autenticación. Permite conocer la identidad de los usuarios remotos
utilizando certificados X.509 como método de autenticación.
•
Integridad. La generación de documentos con firma electrónica
avanzada permite la comprobación de que el documento no ha sido
modificado por un tercero desde la generación del mismo.
•
No Repudio. El sistema almacena en una base de datos copias de los
documentos firmados, de forma que puedan ser utilizados en caso de
necesidad como prueba de autoría.
•
Confidencialidad. La generación de documentos cifrados permite
garantizar que sólo los destinatarios de los mismos podrán acceder a su
contenido.
El entorno ASF establece una solución de principio a fin en la seguridad de las
transmisiones con acciones para firmar, cifrar, fechar y transmitir todo tipo de
documentos electrónicos de un modo seguro.
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
3
ASF está compuesto de un conjunto de módulos que permiten abarcar de
manera ágil y sencilla todos los aspectos relacionados con el proceso de
implementación de Firma Electrónica Avanzada dentro de cualquier aplicativo.
Cada módulo está especializado en una tarea específica, interactuando entre
ellos para dar la solución completa. De esta forma las tareas habitualmente
comunes de un entorno PKI están implementadas sólo en uno de los módulos
de utilidad. Por ejemplo, cuando cualquiera de los módulos necesita conocer la
validez de un certificado, interactúa con el módulo X509·Validator, quien le
confirmará o le rechazará la validez del certificado.
ASF contempla el ciclo de vida completo de utilización de certificados
proporcionando herramientas para:
•
Constituir una autoridad de certificación
•
Creación de documentos firmados
•
Validación y control de documentos firmados
•
Validación de la vigencia de los certificados
•
Registro de información de la firma de documento, de cara al no
repudio
•
Cifrado y descifrado de documentos
•
Establecer políticas de firma a nivel de aplicaciones y/o operaciones.
1.2_
Módulo de Autenticación Única
(SingleSignOnService o SSO)
El Módulo de Autenticación Única (en adelante, SingleSignOnService) permite
integrar varias aplicaciones en un sistema único de autenticación, de forma que
una vez que un usuario se autentique en una de ellas, no necesita autenticarse
para acceder al resto.
Las aplicaciones que se integren con un servidor de Single Sign-On (es decir,
que interactúen todas ellas con el módulo SingleSignOnService del mismo
servicio ASF) deben pertenecer a uno de los dominios especificados en las
propiedades del cliente SSO.
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
4
El módulo SingleSignOnService consta de dos partes. Por un lado está la parte
servidora que se encarga de la autenticación del usuario, creación y
regeneración de las sesiones y por otro lado está la parte cliente que comprueba
la validez de las sesiones, se comunica con la parte servidora si hace falta y
mantiene en sesión la información del usuario.
En los siguientes apartados se va a describir como configurar y dar uso a este
módulo. En un primer punto se describirá como configurar el servidor y en el
segundo punto como configurar la parte cliente.
2_ Integración del Módulo Servidor Single
SignOn
La parte servidora del módulo SSO está implementada como un webservice, al
que se puede realizar dos tipos de invocaciones. Por un lado puede recibir
invocaciones para verificar la firma realizada desde el cliente y crear nuevas
sesiones (AUTENTICACIÓN). La segunda parte se corresponde a la
recuperación de una sesión a partir de un token y regeneración del tiempo de
vida parcial de dicha sesión (REGENERACION).
2.1_
Configuración del servidor de SSO
La configuración de la parte servidora de SSO se realiza a través de un fichero
de configuración (ver Anexo I). Además, no hay que olvidar añadir en el
fichero JBean.properties del servidor las propiedades de configuración del
acceso a base de datos del servidor SSO, cuyo pool de conexión se llama
asf.SingleSignOnServicePool, y publicar el servicio, por supuesto (en el fichero
server-config.wsdd). Las librerías necesarias para el funcionamiento del
servidor SSO son: asf_singlesignonservice.jar, asf_data y asf_util.
Las propiedades que hay que definir en el fichero de configuración son los
siguientes:
Título:
Revisión:
Fecha:
com.tbsolutions.asf.singlesignonservice.applicationId: Este parámetro
especifica el nombre del módulo SSO, para poder identificarse al
acceder a otros componentes de ASF. Esta aplicación debe estar dada
de alta en la base de datos, y relacionada con los certificados adecuados
y las operaciones de validación y verificación (definidas en las dos
propiedades siguientes).
com.tbsolutions.asf.singlesignonservice.operationId: Este parámetro es
un parámetro no utilizado, se usuará en futuras versiones.
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
5
Título:
Revisión:
Fecha:
com.tbsolutions.asf.singlesignonservice.operationTypeId:
Propiedad
que identifica la operación que posteriormente será usada por los
módulos de ASF a la hora de verificar la firma de los clientes. Debe
estar dado de alta en la base de datos, y relacionado con la aplicación
SSO y con los certificados adecuados.
com.tbsolutions.asf.singlesignonservice.total_time_token: Define el
tiempo total de validez del token de sesión, debe venir indicado en
milisegundos.
com.tbsolutions.asf.singlesignonservice.inactivity_time: Este parámetro
indica el tiempo parcial de vida de la sesión, viene definido en
milisegundos .
com.tbsolutions.asf.singlesignonservice.textToSign :Texto que firma el
cliente al hacer login desde la página de autenticación. Tiene que ser
igual a su homónimo en las propiedades del cliente SSO (ver anexo III).
com.tbsolutions.asf.singlesignonservice.checkSign: Este flag indica si
se requiere comprobación de que los datos firmados son los que
realmente se querían firmar.
com.tbsolutions.asf.singlesignonservice.register_session: Este flag
indica si se desea que la información de las sesiones quede guardada en
base de datos.
com.tbsolutions.asf.singlesignonservice.checkSessionFrecuence
:
Propiedad que indica la frecuencia con la que se chequean y eliminan
de la base de datos las sesiones expiradas en caso que se haya indicado
con la propiedad anterior que no se desea el registro de sesiones.
com.tbsolutions.asf.singlesignonservice.SignatureServer.access: Indica
si el acceso al módulo de firma es local o remoto.
com.tbsolutions.asf.singlesignonservice.SignatureServer.url: Propiedad
que especifica la URL que es necesario utilizar en caso de que se
acceda al servicio de firma de forma remota.
com.tbsolutions.asf.singlesignonservice.invokingapp: Propiedad que
identifica a la aplicación en las invocaciones remotas a los servicios de
otros módulos.
com.tbsolutions.asf.singlesignonservice.wservices: Propiedades que
indica si se han de firmar las peticiones a servicios de otros módulos.
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
6
3_ Módulo Cliente Single SignOn
Se entiende como cliente toda aplicación que quiera tener acceso al módulo
SSO, estos clientes debe tener un filtro de acceso que se ejecutará antes de
acceder a la aplicación. Este filtro será el responsable de chequear si el cliente
se ha autenticado en el entorno SSO. Si no se ha autenticado, el cliente será
redireccionado al servidor SSO que le proporcionará un token de validación.
Por el contrario si el cliente ya se había validado, el filtro se encargará de
obtener los valores asociados a la sesión iniciada con SSO,y pasarle dichos
datos a la aplicación. Si el cliente ya se había validado y el filtro detecta que la
sesión está a punto de expirar, será redireccionado al servidor SSO para que
regenere el tiempo parcial de validez de la sesión.
3.1_
Configuración del cliente SSO e instalación del
Filtro
La configuración de la parte cliente del SSO se realiza a través de un fichero de
configuración (ver Anexo 4). Además, no hay que olvidar añadir en el fichero
asf_securityagent.properties del cliente la propiedad con la dirección del
servicio
del
servidor
SSO,
llamada
com.tbsolutions.asf.securityagent.singlesignonservice.url.
Las librerías necesarías en el cliente para el funcionamiento del SSO son:
asf_singlesignonclient.jar, asf_securityagent.jar, asf_data.jar, asf_client.jar.
La configuración del filtro se hace a través de los métodos implementados
según se describe en el apartado anterior. La instalación del filtro en el servidor
de aplicaciones es dependiente del servidor de aplicaciones. Por ejemplo, en un
servidor de aplicaciones Oracle10gAS o en un servidor Weblogic esta
instalación se hace en el fichero web.xml mediante la inclusión de un elemento
filter (ver Anexo III) y debe configurarse en el acceso a cualquier operativa
de la aplicación. En este caso, sería aquí también donde se le pasaría el
parámetro indicando la ubicación del fichero de propiedades.
3.2_
Interfaz Filtro - Aplicación
Una vez que se ha procedido a la identificación del usuario mediante el módulo
SSO, la aplicación puede recoger los resultados correspondientes a la
validación del contexto mediante el uso de
la siguiente función
request.getSession().getAttribute(<PARAMETRO>). Los parámetros pasados
son los siguientes:
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
7
Resultado de la autenticación/validación
El nombre del parámetro es SSOFilter.NOMBRE_ATTR_ESTADO y puede tomar
los siguientes valores: SSOFilter.ESTADO_SESION_OK, y SSOFilter.
ESTADO_SESION_ERROR.
Información del usuario
El
valor
de
este
parámetro viene definido por el nombre
y es relevante sólo si el estado especificado
en el parámetro anterior es SSOFilter.ESTADO_SESION_OK. Dicha
información se guarda en un objeto de tipo CertInfo
(com.tbsolutions.asf.policymanager.sa.CertInfo), teniendo que realizar una
conversión a este tipo para extraer la información del usuario.
SSOFilter.NOMBRE_ATTR_USER
Fecha expiración de validez de sesión
El valor de este parámetro viene definido por el nombre SSOFilter.
NOMBRE_ATTR_TSTEMP y es relevante sólo si el estado especificado en el
parámetro de autenticación/validación es SSOFilter.ESTADO_SESION_OK.
Token de sesión
El
valor
de
este
parámetro viene definido por el nombre
y es relevante sólo si el estado especificado
en
el
parámetro
de
autenticación/validación
es
SSOFilter.ESTADO_SESION_OK.
SSOFilter.NOMBRE_ATTR_TOKEN
Tipo autenticación
El valor de este parámetro viene definido por el nombre SSOFilter.
NOMBRE_ATTR_TIPO_AUT. Por ahora sólo hay un método de autenticación
(firma de formulario con un certificado) pudiéndose ampliar con otros
métodos en el futuro. El valor de este parámetro será por lo tanto siempre
SSOFilter.TIPO_AUTENTICACION_CERT.
3.3_
Interfaz Servidor SSO - Cliente
Existe una página; esta página es el formulario que debe firmar el cliente para
autenticarse. Es preciso que se modifique el aspecto de esta página para
adecuarse al aspecto general de las aplicaciones. La URL de esta página se
configura desde las propiedades del cliente SSO.
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
8
4_ Anexo I: Fichero de propiedades del
servidor SSO
El fichero de propiedades del servidor SSO (SingleSignOnService.properties)
puede consultarse en el documento ASF - Manual de explotación.doc.
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
9
5_ Anexo II: Configuración de un filtro
Las siguientes líneas configuran el filtro definido en la clase
com.tbsolutions.asf.singlesignonservice.servlet.SSOFilter
para
todas
aquellas URLs que sigan el patrón *.jsp. El fichero de propiedades está
ubicado en /propertyFiles/SSOClient2.properties.
<!-- Atención!!!!: los filtros deben ir antes que los servlets //-->
<!-- Definición de filtro para el uso desde cliente de SSO //-->
<filter>
<filter-name>SSOFilter</filter-name>
<display-name>SSOFilter</display-name>
<filterclass>com.tbsolutions.asf.singlesignonservice.servlet.SSOFilter</filterclass>
<init-param>
<param-name>propiedades</param-name>
<param-value>/propertyFiles/SSOClient2.properties</paramvalue>
</init-param>
</filter>
<!-- Definicion de filter-mapping para el uso desde cliente de SSO //->
<filter-mapping>
<filter-name>SSOFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
10
6_ Anexo III: Fichero de propiedades del
cliente SSO
El fichero de propiedades del cliente SSO (SSOClient2.properties) tiene el siguiente
aspecto:
# Identificador de dominios válidos para el SSO (puede haber varios)
#com.tbsolutions.asf.SSOClient2.provider.domain.1 = ".tb-solutions.com"
#com.tbsolutions.asf.SSOClient2.provider.domain.2 = ".prueba.es"
#com.tbsolutions.asf.SSOClient2.provider.domain.3 = ".jorge.com"
com.tbsolutions.asf.SSOClient2.provider.domain.1 = "[SSOS_DOMAIN]"
# Indica el periodo de tiempo de regeneración de token antes de la expiración de sesión
#com.tbsolutions.asf.SSOClient2.provider.regeneration_time = "60000"
com.tbsolutions.asf.SSOClient2.provider.regeneration_time =
# Indica "true" si se desea que el SSO este activado
#com.tbsolutions.asf.SSOClient2.provider.sso_activated = "true"
com.tbsolutions.asf.SSOClient2.provider.sso_activated =
# Identificador de la URL completa de la página de acceso a la aplicación
#com.tbsolutions.asf.SSOClient2.url_access =
"https://localhost:8080/asf_demo/acceso.jsp"
com.tbsolutions.asf.SSOClient2.url_access =
# Indica "true" si se desea registar en BD las firmas realizadas desde el formulario de
autenticación, para el no repudio.
#com.tbsolutions.asf.SSOClient2.registerNonRepudiation = "false"
com.tbsolutions.asf.SSOClient2.registerNonRepudiation =
# Texto a firmar en la página de login del SSOS (opcional) debe coincidir con su
homonima en
# el servicio SingleSignOnService com.tbsolutions.asf.singlesignonservice.textToSign
#com.tbsolutions.asf.SSOClient2.textToSign = "Bienvenido al acceso único de ASF."
com.tbsolutions.asf.SSOClient2.textToSign =
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
11
7_ Anexo IV: Inserciones en la base de datos
para configurar el SSO
A continuación se presenta el código SQL necesario para insertar en la base de
datos la aplicación SSO (SSO), la operación de validación verificación
(VERIFICA_FIRMA). Posteriormente será necesario incorporar certificados
mediante la consola de administración para habilitar su uso con el SSO. Para
más información consultar ASF- Base de Datos - Manual de instalación.doc
INSERT INTO APPLICATION (APPLICATION_NAME, APPLICATION_ID,
SESSION_EXPIRATION, SIGNATURE_FORMAT_ID, ENCRYPTION_FORMAT_ID,
DECRYPTION_FORMAT_ID,
SIGNATURE_ALG_ASYMMETRIC_ID,
SIGNATURE_ALG_DIGEST_ID,
ENCRYPTION_ALG_ASYMMETRIC_ID,
ENCRYPTION_ALG_SYMMETRIC_ID,
DECRYPTION_ALG_ASYMMETRIC_ID,
STATUS) VALUES
('Single Sign On', 'SSO', 0, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, '1');
INSERT
INTO
APPLICATION_OPERATION(APPLICATION_ID,
OPERATION_TYPE_ID, SIGNATURE_FORMAT_ID, ENCRYPTION_FORMAT_ID,
DECRYPTION_FORMAT_ID
,SIGNATURE_ALG_ASYMMETRIC_ID,
SIGNATURE_ALG_DIGEST_ID,
ENCRYPTION_ALG_ASYMMETRIC_ID, ENCRYPTION_ALG_SYMMETRIC_ID,
DECRYPTION_ALG_ASYMMETRIC_ID,
OPERATION_TYPE_NAME,
VERIFICATION_OPERATION,
SIGNATURE_OPERATION,
ENCRYPTION_OPERATION, DECRYPTION_OPERATION, STATUS, TSA) VALUES
('SSO', 'VERIFICA_FIRMA', NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, 'VERIFICA_FIRMA', '1', '0', '0', '0',
'1', NULL);
COMMIT;
Título:
Revisión:
Fecha:
Manual de instalación servicio ASF - Integración SSO
V 1.0
febrero 2006
12
Descargar