Insoft-Auth: API de autenticação nas aplicações
-
insoft-auth
Api utilizada para autenticação no banco de dados ou LDAP, permitindo a autenticação das aplicações da Insoft 4 por meio desta.
Documentação de utilização da API disponível no apiary.io
Orientação ao desenvolvedor
Instrução para build
mvn clean package -Dmaven.test.skip=trueNecessário variáveis de ambiente do Maven
Necessário variáveis de ambiente do Java 8
Só funciona subir a aplicação em Tomcat 8
Instrução para executar
mvn spring-boot:runOrientações de implantação
Configurações
O arquivo de configurações externalizadas, contendo as propriedades abaixo, deve estar localizado nas opções abaixo:
- Na raiz do diretório "home" do usuário, com o nome:
insoft-auth.properties - Em arquivo definido nas variáveis de ambiente:
INSOFT_AUTH_CONFIG - No classpath da aplicação, com o nome:
application.properties - Requer deploy em Tomcat 8 e Java JDK 8 instalado no servidor
É importante ressaltar que o arquivo de configuração a ser utilizado será o último encontrado na ordem do contexto acima. Ou seja, se o arquivo estiver configurado como variável de ambiente mas também estiver presente na classpath do projeto, será considerado as configurações do arquivo presente na classpath.
# URL de conexão com o banco de dados spring.datasource.url=jdbc:oracle:thin:@server:port:sid # Usuário de conexão com o banco de dados spring.datasource.username=USERNAME # Senha da conexão com o banco de dados spring.datasource.password=PASSWORD # Nome da classe de driver de conexão ao banco spring.datasource.driver-class-name=oracle.jdbc.OracleDriver # Indica se realiza ddl no banco com base nas classes de domínio do sistema. Sempre utilizar none! spring.jpa.hibernate.ddl-auto=none # Dialeto de conexão ao banco spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect # Chave a ser utilizada na geração do token. Caso não informado, uma chave aleatória é gerada. jwt.secret=jwt-secret # Tempo de vida, em milissegundos, do token gerado durante o processo de autenticação. jwt.timeToLive=345600 # Modo de gerenciamento do token durante a utilização a validação do token, enquanto válido. # As opções disponíveis são: # - CLASSICO: o tempo de vida do token não é acrescido. # - GERENCIADO: o tempo de vida do token é acrescido a cada requisição, de acordo com a propriedade `jwt.timeToLive`. jwt.modo=GERENCIADO # Valor do cabeçalho (apiKey) da requisição de healthcheck. healthcheck.apiKey=apikey # Indica o nome do sistema em que o autenticador está sendo utilizado. De acordo com o sistema, # o autenticador pode apresentar comportamentos distintos em determinadas funcionalidades. # As opções disponíveis são: # - PSEXPRESS # - GTSOFT # - PONTOSOFT # - AKITASOFT plugin.insoftFw.sistema=PSEXPRESS # Habilita a autenticação através de cabeçalho recebido na requisição. token.auth=true # Nome do cabeçalho a ser utilizado durante a autenticação através do seu valor. # O valor obtido neste cabeçalho será utilizado para obtenção do usuário, através da coluna IN4FW_USUARIOS.TOKEN. token.header=insoft4token # Habilita a autenticação com LDAP no autenticador. auth.ldap=false # Arquivo de definição das configurações do ambiente LDAP. Ver configurações na seção seguinte. auth.ldap.file=C:\\insoft4\\ldap-insoft4.json # Habilita a autenticação no modo híbrido. Avalia a configuração no cadastro do usuário (IN4FW_USUARIOS.METODO_AUTENTICACAO) # para validar o ambiente de autenticação. auth.hibrido.ativo=false # Habilita a autenticação de multi fator para a realização da autenticação do usuário. auth.2fa.enabled=false # Nome do serviço de autenticação multi fator, utilizado para auth.2fa.qr.serviceName=Insoft4 Informática Ltda # Dimensões do QR Code gerado para associar o dispositivo móvel do usuário. auth.2fa.qr.width=300 # Chave de acesso da configuração do serviço de envio de SMS da AWS. auth.aws.sns.accessKey=access-key # Chave secreta da configuração do serviço de envio de SMS da AWS. auth.aws.sns.secretKey=secret-key # Região da configuração do serviço de envio de SMS da AWS. auth.aws.sns.region=region # Prefixo do texto enviado por SMS, contendo o código do processo de autenticação multi fator. auth.sns.prefixo=Sua chave de acesso:Configurações LDAP
Arquivo
jsondefinido nas configurações do autenticador, através da chaveauth.ldap.file, com o objetivo de definir as configurações do ambiente LDAP, conforme exemplo:{ // Lista de servidores LDAP ldap: [ { // Endereço do servidor de autenticação LDAP "host": "ligeirinho.insoft.local", // Porta de execução do servidor de autenticação LDAP "port": 389, // Domínio do servidor de autenticação LDAP. "domain": "INSOFT.LOCAL", // Define o servidor, dentre a lista de servidores, como default. Deve haver somente 1 configurado com o valor `true`. // Caso o usuário não tenha informado a identificação do servidor no momento do login, // serão utilizados os dados do servidor padrão para autenticar o usuário. "standard": true } ], // Habilita a autenticação no modo híbrido, autenticando o usuário no LDAP e, em caso de falha, // tenta a autenticação utilizando as informações contidas na base de dados. global: false }Configuração nas aplicações
PSEXPRESS
GTSOFT
PONTOSOFT
AKITASOFT
Para que as aplicações passem a utilizar o
insoft-authpara autenticação é necessário prever as seguintes configurações abaixo no arquivo "Config.groovy" da aplicação correspondente:insoftFw { sistema = "GTSOFT" //Nome do sistema usuario { utilizaInsoftAuthenticator = true //determina se será utilizado o autenticador insoft-auth insoftAuthUrl = "http://<endereco>:<porta>/insoft-auth/" authPath = "auth" validatePath = "validate" } } - Na raiz do diretório "home" do usuário, com o nome: