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.
Informações
iconfalse

Índice
maxLevel2



Comportamento Padrão 

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

autorizados 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

também 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.

(Ativo ou Bloqueado) e se possui as devidas permissões de acesso ao produto.

       Neste

Neste modo de autenticação não oferece existe a opção para memorizar o login, pela atravé da opção Mantenha-me conectado apresentada na tela do menu do produto

Opção disponível somente


Funcionalidade prevista a partir do pacote Logix 12.1.2309 ou Framework Fix 12.1.2305.fix01.

Painel
borderColorred
borderStyledashed

Este tipo de autenticação está disponível no produto apenas 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.






Passo a passo para disponibilizar a autenticação via provedor de identidade 


       Para que o botão de autenticação via

Para que este botão do

provedor de identidade seja apresentado na tela de LOGIN do produto Logix, será preciso realizar alguns passos não apenas de configuração em telas do sistema, mas preste atenção que existe uma biblioteca LIB Java que é importante para o processo de validação do token de autorização do usuário.

       Para que um provedor de identidade seja válido para esta initegração com o Login do produto Logix

é necessário realizar algumas outras configurações adicionais, detalhadas a seguir

, é preciso que ele permita criar uma aplicação que faça uso do protocolo OIDC (OPenID Connect). Acesse a documentação do respectivo provedor de identidade para se certificar desta funcionalidade antes de realizar o passo a passo a seguir para ativar a integração com o LOGIN do Logix.


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.
Painel
borderColor#C0C0C0
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\
20230105s

ROOTPATH=c:\totvs\logix\
STARTPATH=\totvs_data\
RPOCUSTOM=C:\totvs\logix\apo64\custom.rpo
RPODB=SQL
RegionalLanguage
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
SECURECONNECTION=1

[SERVICE]
NAME=TOTVSSERVER_HARPIA_HTTPS_AUTH
DISPLAYNAME=Totvs Server HARPIA_HTTPS_AUTH

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

[HTTPS]
ENABLE=1
PORT=8096
ENVIRONMENT=logix_auth
instances
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
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
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
ENABLE=0

[WEBMONITOR]
ENABLE=0







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

Logix

Logix 
Âncora
registro_aplicacao_provedor
registro_aplicacao_provedor


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

 RESPONSE TYPE = ID_TOKEN 
 

     SCOPES

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


(aviso) Esta URI de Redirect irá invocar o método POST, que é o único método hoje implementado para envio de dados referentes ao resultado de autenticaçao do provedor de identidade.

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

O sufixo /api/sec/v1/oidc/authn/callback da REDIRECT URI é o endpoint fixo no Logix

para atender a requisicação

que irá atender a requisição de método POST para a execução da ação deREDIRECT 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>
Painel
borderColor#C0C0C0
borderStyledashed

Image Added

Losango - ícones de formas grátisImage Added 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.

Losango - ícones de formas grátisImage Added Configure conforme a localizacao do appserver (HOST), porta REST do appserver e ambiente URI configurado no REST do AppServer.

           

Losango - ícones de formas grátisImage Added 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 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 CONFIGURADOR - Opção Single Sign On - Configurando 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.

              ATENÇÃO para registrar Image Added 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.     ATENÇÃO!

Painel
borderColorred
borderStyledashed

Image Added 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 

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.DICA: Sugere


Painel
borderColor#C0C0C0
borderStyledashed

Image Added  Sugere-se que ao menos um usuário administrador do sistema tenha sua autenticação configurada com o tipo de autenticação

registrado como

Login interno Logix para

que em

caso

de

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).



Problemas X Soluções



Quando ocorrer algum problema na autenticação via OIDC, veja abaixo algumas dicas do que verificar e como resolver.


Falha na validação do token de autorização.


PROBLEMA: Mensagem [STATUS 404 (Not found) - Recurso não encontrado [Método GET] no processamento 'HTTP Accept' - HTTPHEADER [GET] no LOG do AppServer de validação de autenticação do usuário no momento da chamada da API de REDIRECT do Logix pelo pelo provedor de identidade.

SOLUÇÃO:  Conferir se a requisição da API OIDC do Logix está configurada com a URL válida no provedor de identidade onde é configurada a URI de REDIRECT com o resultado da autenticação do usuário Logix, validando todas informações para composição da URL conforme está descrito no tópico Registrando uma aplicação no provedor de identidade para autenticar usuários para o produto Logix.

              

PROBLEMA: Ocorreu uma falha interna na tentativa de validar o seu acesso. Entre em contato com o Administrador. (INVALID PARAMETERS).


SOLUÇÃO:  Na geração de DEBUG FRAMEWORK avaliar no arquivo CONSOLE.LOG do AppServer o ponto onde houve a recepção e validação do Token de autorização, procurando pelos TAG [OIDC]  ou [OIDCWEBENGINE] como por exemplo:

    [OIDCWEGENGINE][Login] Received Token = <código do token> [source: OIDCWEBENGINE.PRW line: 56 function: OIDCWEBENGINE_LOGIN()]

Copie esse código de TOKEN, acesso o site https://jwt.io/ e cole o conteúdo do TOKEN no campo reservado para informar o valor de um TOKEN na área com título ENCODED, para avaliar o seu conteúdo.
Assim que o conteúdo do TOKEN é colado na área ENCODED, no lado direito é possível visualizar algumas informações na seção DECODED envolvendo dados de HEADER e PAYLOAD, onde é preciso verificar se existe informação para os campos EMAIL, NONCE, ISS, AUD, EXP.  Estes campos SÃO OBRIGATÓRIOS. Caso um deles não exista é preciso revisar todas orientações de cadastro e configuração da aplicação no provedor de identidade pois alguma configuração não foi respeitada conforme os requisitos para integrar ao Logix.


Image Added

Quando a seguinte mensagem for apresentada no CONSOLE.LOG do appServer indica que existe alguma configuração incorreta na aplicação registrada no provedor de identidade.

      [OIDC][getIDTokenStatus] Informações do token não correspondem ao solicitante de origem (ISSUER, CLIENTID, NONCE)


PROBLEMA: Ocorreu uma falha na validação do seu acesso. Entre em contato com o Administrador (INVALID TOKEN)

SOLUÇÃO: Não conseguiu identificar/receber o código de token de autorização de usuário do provedor de identidade.


PROBLEMA: Sua tentativa de acesso expirou. Tente realizar novo acesso (EXPIRED TOKEN).

SOLUÇÃO: O token de autorização recebido está com o prazo de validade expirado. Neste caso será necessário realizar nova tentativa de autenticação de usuário.


PROBLEMA: Biblioteca JWTValid.jar não encontrada na pasta TOOLS do servidor. Entre em contato com o Administrador (LIB NOTFOUND).

SOLUÇÃO: Rever a instalação e configuração da biblioteca java JWTValid.jar conforme orienta no item acima"Configurando a ferramenta de validação de Token de autorização no Logix"


PROBLEMA: Tipo de acesso não autorizado para o usuário. Entre em contato com o Administrador (INVALID_USER_SIGNON_TYPE).

SOLUÇÃO: Todo usuário do Logix só pode acessar o sistema usando o modo de autenticação definido no seu cadastro. Neste caso veja no cadastro de usuário se o campo de Tipo de Autenticação está registrado como "Login via provedor de identidade" ou "Padrão do sistema", sendo este último válido somente quando no CONFIGURADOR na seção "Single Sign On" estiver registrado como "Login via provedor de Identidade". Somente com esta configuração o usuário acessará o sistema via Provedor de Identidade.