Suporte
EN PT ES
Wiki
Conteúdo
Discussão
Histórico
Backlinks

Como configurar a autenticação contra um sistema externo (GXportal 5.0)?


É possível que o cliente já tenha um sistema funcionando e queira integrá-lo a GXportal; neste caso, o cliente já conta com seu banco de dados de usuários. Exige-se então que ao autenticar-se no portal, haja um controle de que o usuário e a senha sejam válidos no banco de dados de um aplicativo externo.  Isso requer uma configuração no GXportal e desenvolver um web service do lado do cliente.
 
Dentro desse esquema, é necessário que o aplicativo disponibilize um web service cuja interface é definida por GXportal. Este web service realizará a validação da autenticação do usuário, realizando, por exemplo, a validação sobre:
 
  • Um banco de dados de usuários de um aplicativo externo 
  • LDAP 
  • Active Directory
  • Etc. 

Para configurar no portal a utilização do web service para realizar SSO, deve-se ir à opção do menu “Configuração” e, dentro deste, “Painel de Controle”. Ao acessar tal opção, abrirá a seguinte tela: 
 

Nessa janela, deve-se clicar sobre o item “Segurança”, o que permite acessar à Administração de segurança. Ali será possível configurar o Tipo de autenticação que se deseja implementar. Para este caso, deve-se selecionar “Web service externo”, como mostra a figura abaixo.
 

Depois de configurar o tipo de autenticação, devem-se gravar os dados e clicar na opção “Web service externo”.
Veja um EXEMPLO aquí.

Como funciona 
 

Quando se configura segurança externa e o usuário se identifica no GXportal, este é validado pelo web service. Se o usuário estiver correto o web service retornará os dados do usuário, que será registrado no banco de dados de GXportal para levar informação estatística sobre a navegação deste usuário no portal. Se o usuário já existe no GXportal, a informação é atualizada no banco de dados.  Se o papel do usuário identificado não está definido no GXportal, o mesmo tomará o papel configurado na seção “Web service externo” na propriedade Papel, que será utilizado quando o papel externo é desconhecido para o GXportal.
 

Como se implementa 
 

O aplicativo externo deverá prover um web service que será invocado através do protocolo SOAP. O mesmo servirá para validar a autenticação do usuário (valida usuário e senha). Este web service pode ser desenvolvido em qualquer plataforma e não importa seu nome. Se no portal deseja-se configurar que ele foi desenvolvido com GeneXus, deve-se prover o web service na mesma plataforma que se instalou GXportal (.Net ou Java). Para este caso, o web service deverá denominar-se gamwslogin.  
O web service deve ter 2 parâmetros: um de entrada, do tipo GAMWSLoginInSDT , e o outro de saída, do tipo GAMWSLoginOutSDT.


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

Nome Descriç ão Tipo 
GAMUsrLogin  Identificador de usuário (login)  String
GAMUsrPwd Senha do usuário String 
GAMUsrAddPar  Conjunto de parâmetros adicionais que indicam de onde se está tentando autenticar o usuário  GAMWSLoginInAddParSDT


 Tipo: GAMWSLoginInAddParSDT

Nome  Descrição Tipo  
GAMAddParId  Identificador do parâmetro adicional  String 
GAMAddParValue  Valor do parâmetro adicional  String 


 Neste tipo de dados, GXportal envia:

GAMAddParId  GAMAddParValue
NWLngId  Idioma no qual o usuário está vendo o portal 
Websiteid  Identificador do portal 
Channelid  Identificador do canal 
Pageid  Identificador da página 
Sectorid  Identificador do setor 

 Tipo: GAMWSLoginOutSDT


Nome  Descrição  Tipo 
WSVersion  Indica a versão do web service implementado (deve ser “1.0”)  String 
WSStatus 

Indica o estado da resposta, onde:

1 = Usuário e senha corretos

2 = Usuário desconhecido

3 = Senha incorreta

4 = Acesso negado 

Short 
WSMessage  Mensagem personalizada que se abrirá quando se o usuário tenta autenticar-se.  String 
User  Informação do usuário autenticado  GAMWSLoginOutUserSDT



Tipo: GAMWSLoginOutUserSDT 

Nome  Descrição  Tipo
Code  Identificador de usuário  String 
FirstName Primeiro Nome do usuário  String 
LastName Sobrenome do usuário  String 
Email E-mail do usuário  String 
Roles Lista de papéis do usuário  GAMWSLoginOutUserSDTRoleItem



 Tipo: GAMWSLoginOutUserSDTRoleItem 

 
Nome  Descrição Tipo 
RoleCode  Identificador externo do papel  String 

 Exemplo do código XML que deve retornar ao 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>



 

Categorias:

    Wiki inicio
    Categorias
    Mudanças recentes
    TOUR
    Tutoriais
    Documentação
    EMPRESA
    Suporte
    © Todos os direitos reservados. GeneXus e seus produtos são marcas registradas de GeneXus S.A. | Política de privacidade | Informação para contato