Soporte
EN PT ES
Wiki
Contenido
Discusión
Historial
Backlinks

¿Cómo configurar la autenticación contra un sistema externo?


Es posible que el cliente ya tenga un sistema funcionando y quiera integrarle GXportal, en este caso el cliente ya cuenta con su base de datos de usuarios. En este se requiere que al autenticarse en el portal se controle que el usuario y contraseña sean válidos sobre la base de datos de usuarios de una aplicación externa. Esto requiere de configuración del lado de GXportal y desarrollar un web service del lado del cliente.

Dentro de este esquema es necesario que la aplicación externa provea un web service cuya interfaz está definida por GXportal. Este web service realizará la validación de la autenticación del usuario, como por ejemplo realizando la validación sobre:
 
  • Una base de datos de usuarios de una aplicación externa 
  • LDAP 
  • Active Directory
  • Etc. 

Para configurar en el portal la utilización del web service para realizar SSO se debe ir a la opción del menú “Configuración” y dentro de este “Panel de Control”. Al acceder a dicha opción se desplegará la siguiente pantalla:
 

En dicha ventana se debe hacer clic en el botón “Seguridad”, permitiendo esto acceder a la Administración de seguridad. Ésta permitirá configurar el Tipo de autenticación que se desea implementar, para este caso se debe seleccionar “Web service externo” como lo muestra la figura siguiente.
 

Luego de configurar el tipo de autenticación se deben Grabar los datos y dar clic en la opción ”Web service externo”.

Vea un EJEMPLO aquí.
 

Como funciona 
 

Cuando se configura seguridad externa y el usuario se identifica en GXportal, el mismo es validado por el web service, si el usuario es correcto el mismo retornará los datos del usuario que se dará de alta en la base de datos de GXportal para llevar la información estadística sobre la navegación del mismo en el portal. Si el mismo ya existe en GXportal, se actualiza la información en dicha base de datos. Si el rol del usuario identificado no está definido en GXportal, el mismo tomará el rol configurado en la sección “Web service externo”, en la propiedad Rol a tomar cuando el rol externo es desconocido para GXportal.
 

Como se implementa 
 

La aplicación externa deberá proveer un web service que se invocará a través del protocolo SOAP. El mismo es para validar la autenticación del usuario (valida usuario y contraseña). Este web service puede ser desarrollado en cualquier plataforma y no importa el nombre del mismo. Si en el portal se desea configurar que el mismo fue desarrollado con GeneXus se debe proveer el web service en la misma plataforma que se instaló GXportal (.Net o Java). Para este caso el web service se deberá denominar gamwslogin.


El web service debe tener 2 parámetros, uno de entrada de tipo GAMWSLoginInSDT y otro de salida de tipo GAMWSLoginOutSDT. 
 
Tipo: GAMWSLoginInSDT

Nombre Descripción  Tipo 
GAMUsrLogin  Identificador de usuario (login)  String
GAMUsrPwd Contraseña del usuario String 
GAMUsrAddPar  Colección de parámetros adicionales que indican desde donde se está intentado autenticar el usuario  GAMWSLoginInAddParSDT


 Tipo: GAMWSLoginInAddParSDT

Nombre  Descripción   Tipo  
GAMAddParId  Identificador del parámetro adicional  String 
GAMAddParValue  Valor del parámetro adicional  String 


 En este tipo de datos GXportal envía:

GAMAddParId  GAMAddParValue
NWLngId  Idioma en cual el usuario está viendo el portal 
Websiteid  Identificador de portal 
Channelid  Identificador de canal 
Pageid  Identificador de página 
Sectorid  Identificador de sector 

 Tipo: GAMWSLoginOutSDT


Nombre  Descripción  Tipo 
WSVersion  Indica la versión del web service implementado (debe ser “1.0”)  String 
WSStatus 

Indica el estado de la respuesta, donde:

1 = Usuario y contraseña correctos

2 = Usuario desconocido

3 = Contraseña incorrecta

4 = Acceso denegado 

Short 
WSMessage  Mensaje personalizado a desplegar cuado el usuario se intenta autenticar.  String 
User  Información del usuario autenticado  GAMWSLoginOutUserSDT

Para mostrar mensajes personalizados en el campo WSStatus se debe asignar el valor 99999 y en el campo WSMessage el mensaje que corresponda.

Tipo: GAMWSLoginOutUserSDT 

Nombre  Descripción  Tipo
Code  Identificador de usuario  String 
FirstName Primer Nombre del usuario  String 
LastName Apellido del usuario  String 
Email Correo electrónico del usuario  String 
Roles Lista de roles del usuario  GAMWSLoginOutUserSDTRoleItem



 Tipo: GAMWSLoginOutUserSDTRoleItem 

 
Nombre  Descripción  Tipo 
RoleCode  Identificador externo del rol  String 

 Ejemplo del código XML que debe retornar el web service: 

<GAMWSLoginOutSDT xmlns="GAM">
  <WSVersion>1.0</WSVersion>
  <WSStatus>1</WSStatus>
  <WSMessage />
  <User>
              <Code>500</Code>
              <FirstName>Juan</FirstName>
              <LastName>Perez</LastName>
              <EMail>jperez@gxportal.com</EMail>
              <Roles>
                          <GAMWSLoginOutUserSDT.RoleItem>
                                      <RoleCode>4</RoleCode>
                          </GAMWSLoginOutUserSDT.RoleItem>
                          <GAMWSLoginOutUserSDT.RoleItem>
                                      <RoleCode>10</RoleCode>
                          </GAMWSLoginOutUserSDT.RoleItem>
                          <GAMWSLoginOutUserSDT.RoleItem>
                                      <RoleCode>15</RoleCode>
                          </GAMWSLoginOutUserSDT.RoleItem>
              </Roles>
  </User>
</GAMWSLoginOutSDT>



 

Wiki inicio
Categorías
Cambios recientes
TOUR
Tutoriales
Documentación
EMPRESA
Soporte
© Todos los derechos reservados. GeneXus y sus productos son marcas registradas por GeneXus S.A. | Política de privacidad | Información de contacto