Páginas filhas
  • 5 - Login via provedor de identidade (Protocolo OIDC)

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Comportamento Padrão


       Quando o tipo de login do produto for 5 ou Login via Provedor de Identidade, a autenticação será realizada através do recebimento de um token de autorização enviado por um Provedor de Identidade externo, como por exemplo Microsoft Azure AD, Google, Apple, entre outros, sendo necessário informar login e senha que são validados por este provedor de identidade e ao final de uma autenticação realizada com sucesso, o Logix recebe um token de autorização que quando identificado como um Token válido, passará a permitir acesso ao sistema Logix, considerando ainda as demais premissas de acesso ao produto que envolvem a situação do usuário no produto Logix, envolvendo permissões e situação atual do usuário.

Neste modo de autenticação não oferece a opção para memorizar o login, pela opção Mantenha-me conectado


Opção disponível somente a partir do build HARPIA.


Exemplo de como o produto Logix apresenta a opção de autenticação via Provedor de Identidade, sendo neste caso o provedor Microsoft.


Ao pressionar o botão a tela acima é apresentada.

O layout dessa tela poderá mudar de acordo com o provedor de identidade configurado.


Para que este botão do provedor de identidade seja apresentado na tela de LOGIN do produto Logix é necessário realizar algumas outras configurações adicionais, detalhadas a seguir.



Instalando e configurando um novo AppServer para gerenciar os tokens de autorização de usuários 


       Sugere-se que seja instalado e configurado um novo serviço de AppServer isolado para cada ambiente com base de dados LOGIX distinta, seja ambiente de Teste, Homologação ou Produção que desejar administrar a autenticação de usuários por provedor de identidade, pois o endereço de URI de Redirecionamento a ser configurado numa aplicação registrada no provedor de identidade será para identificar o AppServer de destino do envio de token de autorização de usuário, que ocorre através da requisição de API REST.

       O ideal é que este appserver seja de uso exclusivo para o processo de autenticação de usuários Logix via provedor de identidade, para garantir que outros processos concorrentes não afetem o processo de autenticação de usuários do produto.

       Não esqueça de ativar o serviço REST nesse appserver e também ative a segurança do appserver REST (HTTPS), pois a grande maioria dos provedores de identidade exige que a URI de Redirecionamento seja uma URL com protocolo HTTPS. Neste caso deverá instalar e configurar o certificado SSL no AppServer e ativar a segurança do serviço REST do Appserver.


Informações
titleDICA

No modelo de arquivo de configuração INI acima, será preciso ajustar os dados conforme seu ambiente e neste caso é preciso prestar atenção quanto a:

  • Número de porta dos serviços;
  • Caminho e nome do arquivo de profile;
  • HOST e PORT do License Server;
  • Caminho do RPO;
  • Nome da conexão de banco DBALIAS e tipo de banco DBDATABASE;
  • Caminho das demais pastas de chaves indicadas na seção do ambiente.
Expandir
titleClique aqui para visualizar um exemplo de arquivo de configuração AppServer

Exemplo de arquivo AppServer.ini com serviço HTTP REST ativo e segurança (HTTPS) ativa:

Bloco de código
languageruby
themeConfluence
[logix_auth]
OUTPUTDIR=c:\totvs\logix\totvs_data
SOURCEPATH=c:\totvs\logix\apo64\
ROOTPATH=c:\totvs\logix\
STARTPATH=\totvs_data\
RPOCUSTOM=C:\totvs\logix\apo64\custom.rpo
RPODB=SQL
RegionalLanguage=BRA
RPOVERSION=120
RPOPREFIX=lgx
SCROLLCURSORSIZE=100000000
DBALIAS=logix_prd
DBDATABASE=MSSQL

[logix_auth_debug]
OUTPUTDIR=c:\totvs\logix\totvs_data
SOURCEPATH=c:\totvs\logix\apo64\
ROOTPATH=c:\totvs\logix\
STARTPATH=\totvs_data\
RPOCUSTOM=C:\totvs\logix\apo64\custom.rpo
RPODB=SQL
REGIONALLANGUAGE=BRA
RPOVERSION=120
RPOPREFIX=lgx
SCROLLCURSORSIZE=100000000
DBALIAS=logix_prd
DBDATABASE=MSSQL
FGLSQLREPLAY=1
;para ativar LOGs e TRACE de comunicacoes HTTP e REST
FWLOGMSG_DEBUG=1
FWFRAME_TRACELOG=1
FWTRACELOG=1

[Drivers]
ACTIVE=TCP
MultiProtocolPortSecure=1

[TCP]
TYPE=TCPIP
PORT=6086
SECURECONNECTION=1

[SERVICE]
NAME=TOTVSSERVER_HARPIA_HTTPS_AUTH
DISPLAYNAME=Totvs Server HARPIA_HTTPS_AUTH

[HTTP]
ENABLE=0
PORT=8095
DEFAULTPAGE=wsindex.apw
ENVIRONMENT=logix_auth

[HTTPS]
ENABLE=1
PORT=8096
ENVIRONMENT=logix_auth
INSTANCES=2,4,2,2

[SSLCONFIGURE]
SSL2 = 0
SSL3 = 1
TLS1_0 = 1
TLS1_1 = 1
TLS1_2 = 1
HSM=0
BUGS=1
STATE=1
TIMEOUT=60000
VERBOSE=0
CERTIFICATESERVER=c:\totvs\logix\sslcertificado\totvs_certificate.crt
KEYSERVER=c:\totvs\logix\sslcertificado\totvs_certificate_key.pem

[ONSTART]
REFRESHRATE=30
JOBS=HTTPJOB 

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=logix_auth

[HTTPV11]
ENABLE=1
SOCKETS=HTTPREST
TIMEOUT=60

[HTTPREST]
PORT=8590
URIS=URILOGIN
SECURITY=1
SSL2=0
SSL3=1
TLS1=3
TLS1_0 = 1
TLS1_1 = 1
TLS1_2 = 1
HSM=0
BUGS=1
STATE=1
VERBOSE=1
CERTIFICATE=c:\totvs\logix\sslcertificado\totvs_certificate.crt
KEY=c:\totvs\logix\sslcertificado\totvs_certificate_key.pem

[URILOGIN]
URL=/login
INSTANCES=4,10,2,4
ONSTART=LOGIXRESTSTART
ONCONNECT=LOGIXRESTCONNECT
ONEXIT=LOGIXRESTEXIT 
CORSEnable=1
ALLOWORIGIN=*

[General]
ASYNCCONSOLELOG=0
CONSOLELOGDATE=0
ECHOCONSOLELOGDATE=0
CASESENSITIVE=1
CONSOLEMAXSIZE=100000000
CONSOLE=1
LOGENABLE=1
CONSOLELOG=1
CHANGEENCODINGBEHAVIOR=1
SERVERTYPE=4GL
MAXSTRINGSIZE=300
FGLPROFILE=c:\totvs\logix\logixprofile_auth.pro
POWERSCHEMETIMEINTERVAL=43200
POWERSCHEMESHOWUPGRADESUGGESTTION=0

[LICENSECLIENT]
SERVER=<HOST_LS_SERVER>
PORT=<PORT_LS_SERVER>

[APP_MONITOR]
ENABLE=0





Registrando uma aplicação no provedor de identidade para autenticar usuários para o produto Logix


Painel
borderColorlightgrey
borderStyledashed

       Será preciso cadastrar uma nova aplicação no provedor de identidade utilizando para isso a configuração via OIDC (OpenID Connect) que é o padrão de protocolo utilizado para integração com o produto Logix.

       Acesse a documentação OpenID Connect disponível do seu provedor de identidade para registrar uma nova aplicação para integrar ao prouto Logix que tenha as seguintes características: 


Painel

 RESPONSE TYPE = ID_TOKEN 
 SCOPES = openid + profile + email
 REDIRECT URI = https://<host_appserver_redirect_login>:<port_rest_appserver_redirect_login><URL_BASE_REST_appserver>/api/sec/v1/oidc/authn/callback
 GRANT_TYPES = implicit + authorization_code


  Atente para o criação da aplicação no Provedor de Identidade que deverá dar suporte ao fluxo de concessão implícita do OAuth 2.0, conforme descrito na Especificação do OAuth 2.0. A concessão implícita define que os tokens (tokens de ID ou tokens de acesso) são retornados diretamente do Authorization EndPoint (/authorize).  Além de determinar o fluxo implícito, obrigatoriamente configurar o RESPONSE_TYPE com ID_TOKEN que trata-se de um Token no formato JWT (Json Web Token) que contém informações que o Logix validará a autenticidade e obterá os dados necessários para autenticação de usuário no produto Logix.


Painel
borderColorlightgrey
borderStyledashed

      É através da configuração da REDIRECT URI que o provedor de identidade saberá para qual Appserver Logix ele deverá enviar o token de cada autenticação de usuário solicitada e por isso é importante atentar para o IP e porta REST do Logix, devido a ambiente de teste e produção.
      
      O sufixo /api/sec/v1/oidc/authn/callback da REDIRECT URI é o endpoint fixo no Logix para atender a requisicação de REDIRECT de autenticação que irá recepcionar no LOGIX o token enviado pelo provedor de identidade.

      Os demais dados como:      

Painel
 <host_appserver_redirect_login>
       <port_rest_appserver_redirect_login>
       <URL_BASE_REST_appserver>

Configure conforme a localizacao do appserver (HOST), porta REST do appserver e ambiente URI configurado no REST do AppServer.
           
Após criar a aplicação no provedor de identidade, anote o código do TENANT ID e o CLIENT ID da aplicação pois serão usados para registrar dados desta aplicação do provedor de identidade no produto Logix.

   


Registrando dados da aplicação do provedor de identidade no Logix


       Acesse o Cadastro de Provedores de Identidade no Logix (LOG00250), que pode ser facilmente acessado a partir do botão Cadastro de Provedores de Identidade disponível na tela do Configurador, opção Single Sign On conforme imagem ao lado:

     CONFIGURADOR - Opção Single Sign On - Configuração do Tipo de autenticação e acionar o cadastro de provedores de identidade.


       Acessando o cadastro de provedores de identidade (LOG00250) será preciso registrar um novo provedor de identidade informando os dados obrigatórios sendo que os de maior importância e que exigem os dados referentes ao provedor de identidade e a nova aplicação registrada anteriormente no provedor de identidade, são:

  • URL BASE:  Endereço URL principal de acesso ao provedor de identidade onde foi registrada a aplicação para autenticar usuários Logix;
  • CLIENT_ID:  Código CLIENT ID da aplicação registrada no provedor de identidade;
  • TENANT_ID:  Código do TENANT ID da aplicação registrada no provedor de identidade. Esta informação não é obrigatória, pois é usada apenas caso a versão do provedor de identidade instalado use a versão multi-tenant.

      Registre os dados conforme a base de dados de teste ou produção.





Configurando a ferramenta de validação de Token de autorização no Logix


       Quando o TOKEN de autorização é recebido pelo Logix, ele precisa ser validado para ser considerado válido e permitir então o acesso do usuário ao produto Logix. 
Para realizar este processo de validação do TOKEN, o Logix faz uso de uma biblioteca java chamada JWTValid.jar que é fornecida juntamente com os pacotes de atualização do ERP Logix e que deverá ser armazenada na subpasta TOOLS localizada abaixo da pasta ROOTPATH do ambiente REST do appserver que valida o recebimento do token de autenticação.     


Esta LIB java não será armazenada com as demais Libs java usadas pelo LOGIX. Ela deve ser obrigatoriamente armazenada na pasta onde atualmente existem outras ferramentas paralelas usadas pelo Logix como lpdos.exe, printer.exe, etc.



Configurando o tipo de autenticação de usuário 


       Agora que a aplicação já está devidamente registrada no provedor de identidade e esta também já foi devidamente registrada no cadastro de provedores de identidade do Logix, chegou a hora de configurar o tipo de autenticação de usuário no cadastro de usuário pois os usuários do Logix podem ter um tipo de autenticação pré-definido, podendo ser ou não igual ao tipo de autenticação padrão configurado registrado na tela do CONFIGURADOR, que apenas indica o padrão adotado pelo sistema.

       Para que o usuário do Logix respeite a configuração do tipo de autenticação Login via Provedor de Identidade registrada na tela do CONFIGURADORcomo Login via Provedor de Identidade, na , acesse a Central de Usuários - Cadastro de Usuários (LOG05050 - Opção Usuários), deverá registrar e registre o campo tipo de autenticação do usuário como Padrão do sistema ou então Login via provedor de Identidade.

Painel
borderColor#C0C0C0
borderStyledashed

Image Modified

Sugere

 Sugere-se que ao menos um usuário administrador do sistema tenha sua autenticação configurada com o tipo de autenticação Login interno Logix para caso ocorrer algum problema com a autenticação via provedor de identidade, seja possível acessar o sistema e configurar a autenticação para outro modelo se desejar.


PRONTO! O Logix já está configurado para realizar autenticação via OIDC (Open ID Connect).