Disponibilizar um modelo de autorização de acesso a recursos, que permita abstração e flexibilidade com a utilização de um serviço de login independente (conforme modelo de arquitetura especificado na RFC000010).
OAuth2 é um protocolo que permite aos usuários ter acesso limitado a recursos sem precisar expor suas credenciais.
Por isso, serão usados os fluxos de autenticação e autorização baseados no OAuth2.
Expedir as libs de forma centralizada | |
A configuração dos dois tipos de Grant será na tela de Propriedades OAuth2 no produto TOTVS.
Para a implementação dos dois tipos de GRANT será utilizado o Spring Security. Com o uso do Spring Security para esse controle, ocorrerá a modificação do uso de libs dentro do produto Datasul. Atualmente as libs estão duplicadas por arquivos .war, o que gera dificuldade em expedições e manutenções. Essa modificação consiste em criar uma pasta de libs específica para o Datasul, contendo tudo que é necessário para o produto funcionar com o Tomcat. Para isso será alterado o arquivo catalina.properties, que buscará a nova pasta e modificará o console para gerar as libs conforme o POM Archive. Esse POM Archive contém a definição de todas as libs utilizadas pelo sistema e ficará armazenado no controle de libs do Maven. O serviço de login permitirá as autenticações que já existem atualmente no sistema: LDAP, IDENTITY, PRODUCT. Para o RFI não será utilizado este formato. |
Como utilizar o Spring Security para atender OAuth2 Client Credentials |
|
ClientCredentials - Authorization Server - Engine autenticação | Implementar a Engine de autenticação do client_id e client_secret e retorno do Token JWT devidamente configurado conforme RFC6749 com a utilização do Spring Security:
|
ClientCredentials - Resource Server - Engine autorização acesso | Implementar a Engine de autorização de acesso conforme Token JWT gerado anteriormente na autenticação:
|
RO Password Credentials - Engine de Autenticação e autorização | Implementar a Engine de autenticação e autorização de acesso para o modelo Resource Owner Password Credentials:
|