암호 유효성 검사 규칙 강화

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기3분
  • 암호 유효성 검증과 연관된 설치 종료를 대체하여 암호 변경 화면에 대한 암호 강도 유효성 확인 규칙을 사용자 정의할 수 있습니다.

    시작하기 전에

    필요한 역할: admin

    프로시저

    1. 다음으로 이동 모두 > 시스템 정의 > 설치 종료레이블이 표시됩니다.
    2. ValidatePassword(기본적으로 비활성) 및 ValidatePasswordStronger(릴리스부터 기본적으로 활성화됨)를 Helsinki 찾습니다.
    3. ValidatePasswordStronger 스크립트(아래)는 정규식을 사용하여 ValidatePassword 스크립트를 재정의하여 암호가 최소 8자 이상이어야 하고, 숫자를 포함하고, 대/소문자가 혼합된 문자를 포함하도록 요구하는 샘플 스크립트입니다.
      gs.include("PrototypeServer");
        var ValidatePasswordStronger = Class.create();
        ValidatePasswordStronger.prototype = {
             process : function() {
                var user_password = request.getParameter("user_password");
                var min_len = 8;
                var rules = "Password must be at least " + min_len + 
                   " characters long and contain a digit, an uppercase letter, and a lowercase letter.";
                if (user_password.length() < min_len) {
                   gs.addErrorMessage("TOO SHORT: " + rules);
                   return false;
                }
                var digit_pattern = new RegExp("[0-9]", "g");
                if (!digit_pattern.test(user_password)) {
                   gs.addErrorMessage("DIGIT MISSING: " + rules);
                   return false;
                }
                var upper_pattern = new RegExp("[A-Z]", "g");
                if (!upper_pattern.test(user_password)) {
                   gs.addErrorMessage("UPPERCASE MISSING: " + rules);
                   return false;
                }
                var lower_pattern = new RegExp("[a-z]", "g");
                if (!lower_pattern.test(user_password)) {
                   gs.addErrorMessage("LOWERCASE MISSING: " + rules);
                   return false;
                }
                return true; // password is OK
             }
        }

      Class.create()에 의해 생성된 스크립트 변수는 설치 종료 자체와 동일한 이름(이 예제에서는 &quot;ValidatePasswordStronger&quot;)을 가져야 합니다. 이 스크립트는 암호를 사용할 수 있는 경우 true를 반환하고 암호를 수정해야 하는 경우 false를 반환하는 process() 함수를 구현합니다. gs.addErrorMessage 함수를 사용하여 비밀번호 변경 화면에서 오류 메시지를 반환할 수 있습니다. 활성 플래그를 확인하고 기록을 업데이트하여 인스턴스에서 이 설치 종료를 시도할 수 있습니다. 이 작업을 수행한 후에는 변경 사항을 인식할 수 있도록 캐시를 지우십시오.

      또한 이러한 스크립트를 수정해도 기본 ServiceNow 동작은 변경되지 않습니다. 빈 암호는 기본적으로 여전히 금지되며 암호 및 암호 확인 필드가 일치해야 합니다.

    결과

    테스트하려면 사용자 기록에서 암호 재설정 필요 확인란을 선택한 다음 해당 사용자로 로그인하십시오. 유효성 검사는 사용자가 암호를 설정하려고 시도하는 지점에서 발생합니다. 관리자가 사용자 기록의 암호를 직접 업데이트하는 경우에는 확인이 적용되지 않습니다(관리자는 암호 필드에 무엇이든 입력할 수 있음).

    주:
    암호 변경 화면은 SSO(Single Sign-On)를 사용하지 않고 로컬 LDAP와 통합되지 않은 고객에게만 적용됩니다.