Navegação

    Fórum Técnico Insoft4

    • Login
    • Pesquisar

    Insoft-Auth: API de autenticação nas aplicações

    Desenvolvimento
    insoft-auth
    1
    1
    94
    Carregando Mais Posts
    • Mais Antigo para Mais Recente
    • Mais Recente para Mais Antigo
    • Mais Votados
    Responder
    • Responder como tópico
    Entre para responder
    Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.
    • Eliéser Prichua
      Eliéser Prichua Banido última edição por Eliéser Prichua

      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=true
      
      Necessá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:run
      

      Orientaçõ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 json definido nas configurações do autenticador, através da chave auth.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-auth para 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"
          }
      }
      
      1 Resposta Última resposta Responder Citar 2
      • Primeiro post
        Último post
      Powered by NodeBB | Contributors