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.
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
eOAuth2Client
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
eDatabase.prototype.loginByAuthToken
passam a aceitar tokens de identificação gerados por provedores de identidade externos, cadastrados em “Admin > 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
eHex.decodeString
com o objetivo de codificar e decodificar valores binários em hexadecimal. O uso das funçõesHex.encode
eHex.decode
para esse fim deixa de ser recomendado. - As classes
MD5
,SHA1
,SHA256
eSHA512
passam a suportar valores do tipoUint8Array
eArrayBuffer
. 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
eCrypto.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âmetroresultType
, possibilitando que a função retorne umUint8Array
em vez do tipoArrayBuffer
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çãoshowResetToDefaultsButton
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 comtrue
. 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 > Tela 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âmetrokeys
da funçãoQueryUtilities.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âmetrosmax
emin
da funçãovalidateString
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.