Class: PasswordValidator

@nginstack/engine/lib/security/PasswordValidator~ PasswordValidator


new PasswordValidator( [options])

Classe responsável por validar senhas de usuários do sistema e construir senhas seguras a partir de uma regra de segurança definida.

Parameters:
Name Type Argument Description
options Object <optional>

Opções de configuração do validador de senhas.

Properties
Name Type Argument Description
userKey number <optional>

Chave do usuário ao qual a senha pertence. Caso não seja informada, será utilizado o usuário logado na sessão.

passwordPolicyKey number <optional>

Chave da política de senhas a ser utilizada. Caso não seja informada, será utilizada a política associada ao usuário.

minLength number <optional>

Comprimento mínimo da senha. Informar este valor sobrescreve a respectiva configuração da política de senha. Não pode ser maior que 256, nem menor do que 4, nem maior que maxLength.

maxLength number <optional>

Comprimento máximo da senha. Informar este valor sobrescreve a respectiva configuração da política de senha. Não pode ser maior do que 256, nem menor do que 4, nem menor que minLength.

requireNumbers boolean <optional>

Indica se a senha deve conter números. Informar este valor sobrescreve a respectiva configuração da política de senha.

requireSpecialCharacters boolean <optional>

Indica se a senha deve conter caracteres especiais, ou seja, caracteres que não sejam letras (incluindo as acentuadas) nem dígitos. Espaços são considerados caracteres especiais. Informar este valor sobrescreve a respectiva configuração da política de senha.

requireUppercase boolean <optional>

Indica se a senha deve conter letras maiúsculas. Informar este valor sobrescreve a respectiva configuração da política de senha.

requireLowercase boolean <optional>

Indica se a senha deve conter letras minúsculas. Informar este valor sobrescreve a respectiva configuração da política de senha.

allowReuse boolean <optional>

Indica se a reutilização de senhas antigas deve ser permitida. Informar este valor sobrescreve a respectiva configuração da política de senha. Ative quando quiser testar apenas as regras de composição de senha, sem considerar a reutilização de senhas antigas do usuário.

minStrength number <optional>

Valor mínimo de força que a senha deve possuir. O valor deve ser um número entre 0 e 4, onde 0 indica nenhuma exigência de força e 4 indica a força máxima exigida. A força da senha é testada utilizando a biblioteca zxcvbn, e carregando senhas banidas registradas na classe de dados "/Dados/Sistema/Tabelas auxiliares/Auxiliares de segurança/Senhas banidas". Informar este valor sobrescreve a respectiva configuração da política de senha.

breachCheckMode string <optional>

Indica a maneira como a verificação de senhas comprometidas deve ser realizada. Os valores possíveis são "optional", "required" e "disabled". A verificação é feita utilizando o serviço "Have I Been Pwned". O valor "required" indica que a verificação é obrigatória, e qualquer erro de verificação será considerado uma falha. O valor "optional" indica que a verificação é opcional, e erros de verificação (quando o serviço estiver offline, por exemplo) não serão considerados falhas. O valor "disabled" indica que a verificação está desativada. Informar este valor sobrescreve a respectiva configuração da política de senha.

Members


<static, readonly> MAX_PASSWORD_LENGTH :number

Comprimento máximo possível de uma senha do sistema.

Type:
  • number

<static, readonly> MIN_PASSWORD_LENGTH :number

Comprimento mínimo possível de uma senha do sistema.

Type:
  • number

<readonly> allowReuse :boolean

Indica se a reutilização de senhas antigas do usuário é permitida.

Type:
  • boolean

<readonly> breachCheckMode :string

Modo de verificação de violação de senha. Pode ser "required" (obrigatório),"optional" (opcional) ou "disabled" (desativado).

Type:
  • string

<readonly> maxLength :number

Comprimento máximo da senha.

Type:
  • number

<readonly> maxTriesBeforeLock :number

Número máximo de tentativas de entrar no sistema usando a senha antes do bloqueiodo usuário.

Type:
  • number

<readonly> minLength :number

Comprimento mínimo da senha.

Type:
  • number

<readonly> minStrength :number

Valor mínimo de força que a senha deve possuir. O valor é número entre 0 e 4,onde 0 indica nenhuma exigência de força e 4 indica a força máxima exigida.

Type:
  • number

<readonly> passwordPolicyKey :number

Chave da política de segurança de senhas sendo utilizada.

Type:
  • number

<readonly> requireLowercase :boolean

Indica se a senha deve conter letras minúsculas.

Type:
  • boolean

<readonly> requireNumbers :boolean

Indica se a senha deve conter números.

Type:
  • boolean

<readonly> requireSpecialCharacters :boolean

Indica se a senha deve conter caracteres especiais, ou seja, caracteres que nãosejam letras (incluindo as acentuadas) nem dígitos. Espaços são considerados caracteresespeciais.

Type:
  • boolean

<readonly> requireUppercase :boolean

Indica se a senha deve conter letras maiúsculas.

Type:
  • boolean

<readonly> reusePreventionCount :number

Número de senhas antigas do usuário que não podem ser reutilizadas.

Type:
  • number

<readonly> reusePreventionDays :number

Número de dias durante os quais senhas antigas do usuário não podem serreutilizadas.

Type:
  • number

<readonly> userKey :number

Chave do usuário que terá as senhas avaliadas.

Type:
  • number

Methods


generatePassword( [minLength])

Gera uma senha aleatória de acordo com as regras configuradas no validador.

Parameters:
Name Type Argument Description
minLength number <optional>

Comprimento mínimo da senha a ser gerada. O comprimento mínimo da senha será o maior entre o valor informado e o comprimento mínimo definido nas regras do validador. Caso não seja informado, será considerado apenas o comprimento mínimo configurado.

Senhas podem ser geradas com tamanho maior que o comprimento mínimo calculado para atender ao requisito de força mínima durante a geração.

Returns:

A senha gerada.

Type
string

getPasswordStatus()

Este método calcula o status da senha corrente do usuário, indicando se ela está expirada e precisa ser trocada.

Returns:

Um objeto com o status da senha corrente do usuário, com as seguintes propriedades:

  • valid: booleano que indica se a senha ainda está na validade (não expirada).
  • lastChange data da última alteração da senha.
  • daysToExpire: número de dias restantes até a expiração da senha.
  • expiringSoon: booleano que indica se a senha está prestes a expirar, momento em que o sistema passa a notificar o usuário para a troca de senha.
Type
PasswordStatus
Example
const PasswordValidator = require('@nginstack/engine/lib/security/PasswordValidator.js');

const passwordValidator = new PasswordValidator();
const status = passwordValidator.getPasswordStatus();
status; // => { valid: true, lastChange: Date, daysToExpire: 30, expiringSoon: false }

validatePassword(password)

Valida a senha fornecida de acordo com as regras configuradas no validador.

Parameters:
Name Type Description
password string

Senha a ser validada.

Returns:

Um objeto com o resultado da validação, com as seguintes propriedades:

  • valid: booleano que indica se a senha é válida.
  • strength: nível de força da senha, variando de 0 a 4.
  • suggestions: lista de mensagens sugerindo melhorias para a senha, se houver.
  • message: mensagem formatada com o resultado da validação.
Type
PasswordValidationResult
Example
const PasswordValidator = require('@nginstack/engine/lib/security/PasswordValidator.js');

const passwordValidator = new PasswordValidator();
const result = passwordValidator.validatePassword(newPassword);
result; // => { valid: true, strength: 3, suggestions: [], message: 'Senha válida.' }