Versão 49

Novidades

Login utilizando provedores de identidade externos

A tela de login padrão do sistema passa a permitir que os usuários se autentiquem utilizando provedores de identidade externos por meio do protocolo OpenID Connect.

A autenticação via provedores de identidade pode ser configurada de forma complementar à política de autenticação padrão do sistema, permitindo que os usuários continuem a logar utilizando a sua senha no sistema, conceito similar ao do Login Social. Também é possível configurar uma política de autenticação substituta à padrão, inibindo o controle de senhas do sistema e implementando o conceito de Single sign-on via provedor de identidade. Essa última opção, no entanto, cria restrições de uso do sistema que devem ser consideradas pelo administrador e que são detalhadas no manual Provedores de identidade.

login

Melhorias

Admin

  • Foi criado o processo “Admin > Servidores > Endereços de acesso ao sistema” com o objetivo de configurar a URL principal e as URLs alternativas que podem ser utilizadas pelos usuários para acessar o sistema. Mais detalhes no manual Endereços de acesso ao sistema.
  • Foi criado o manual Instalação do sistema com o objetivo de elencar os procedimentos necessários para a instalação de uma nova base de dados.

Engine

  • Foram criadas as classes OpenIdClient, OpenIdProvider e OAuth2Client com o objetivo de realizar a autenticação e autorização de usuários utilizando os protocolos OpenID Connect e OAuth2.
  • Os métodos Session.prototype.loginByAuthToken, ScriptRunner.prototype.loginByAuthToken e Database.prototype.loginByAuthToken passam a aceitar tokens de identificação gerados por provedores de identidade externos, cadastrados em “Admin > Segurança > Políticas de segurança > Provedores de identidade”.
  • Foi criado o método Security.prototype.getAuthPolicy com o objetivo de obter a política de autenticação associada a um usuário.
  • A classe GeneralSettings passa a ignorar chaves removidas ou inválidas na leitura das configurações do tipo “dbkey”.
  • Foram criados os métodos Hex.encodeToString e Hex.decodeString com o objetivo de codificar e decodificar valores binários em hexadecimal. O uso das funções Hex.encode e Hex.decode para esse fim deixa de ser recomendado.
  • As classes MD5, SHA1, SHA256 e SHA512 passam a suportar valores do tipo Uint8Array e ArrayBuffer. O uso de strings no cálculo do hash de conteúdos binários deixa de ser recomendado, pois não é compatível com o runtime JavaScript V8.
  • Foi criada a função Crypto.scrypt com o objetivo de derivar chaves criptográficas a partir de senhas utilizando o algoritmo Scrypt.
  • Foram criadas as funções Crypto.encryptBytes e Crypto.decryptBytes com o objetivo de realizar operações de criptografia simétrica em dados binários.
  • A função Crypto.randomBytes passa a permitir indicar o tipo retornado por meio do parâmetro resultType, possibilitando que a função retorne um Uint8Array em vez do tipo ArrayBuffer retornado por padrão.
  • Foi criada a classe TextDecoder, disponibilizando uma API padrão para conversão de uma sequência de bytes codificados em utf-8 ou windows-1252 em uma string.

Web Framework

  • A função newSettingsGrid passa a contar com a opção showResetToDefaultsButton para determinar se o botão “Restaurar os valores padrões” deve ser exibido na grade de configurações. O botão não será mais exibido caso essa nova opção não seja informada com true. Essa função também passa a ignorar os grupos das configurações caso todas elas façam parte do mesmo grupo, tornando mais simples a apresentação da grade gerada.

Defeitos corrigidos

Admin

  • Ao informar uma imagem de fundo inválida no processo “Admin > Aparência e personalização > Telas de login” ocorria o erro “O valor '’ não pode ser convertido em uma chave” na tela de login.
  • Ao informar o filtro “Grupo ou Papel” no processo “Admin > Segurança > Grupos, Papéis e Usuários > Usuários” ocorria a exibição indevida dos usuários que não tinham nenhum grupo associado.

Engine

  • Ao informar o valor 0 para o parâmetro keys da função QueryUtilities.prototype.clauseWhereOfKeys ocorria a supressão do filtro em vez de ser retornado um comparando a coluna ao valor zero. Essa alteração de comportamento foi introduzida acidentalmente na versão 47.
  • Ao informar o valor '' para os parâmetros max e min da função validateString ocorria a validação desses parâmetros em vez deles serem ignorados. Essa alteração de comportamento foi introduzida acidentalmente na versão 47.

Extensão VS Code

  • A busca textual em um diretório não encontrava ocorrências em arquivos dentro de subdiretórios.
  • Os comandos “Show/Hide UFS Tree” e “Enable/Disable Product Changes” no menu de contexto da da base de dados não estavam sendo atualizados corretamente quando a conexão à base era desligada e ligada novamente enquanto estas opções estivessem habilitadas. As opções passam a ser sempre desabilitadas automaticamente quando o usuário desconecta da base.

Outras alterações

Admin

  • O caminho “Admin > Redes e computadores” no menu foi renomeado para “Admin > Servidores”.
  • As classes de dados “/Dados/Sistema/Computadores” e “/Dados/Sistema/Políticas de segurança/Políticas de computadores” foram renomeadas para “Servidores” e “Políticas de servidores” respectivamente.

Extensão VS Code

  • Foi removido o botão de excluir conexão na view das bases de dados. O usuário agora deve utilizar a opção “Remove Database” no menu de contexto da base. Esta alteração visa evitar que o usuário remova conexões por acidente.