2.6. 시간 기반 계정 잠금 정책 구성


계정 정책 플러그인을 사용하여 다음과 같은 다양한 시간 기반 잠금 정책을 구성할 수 있습니다.

2.6.1. 마지막으로 로그인에 성공한 일정 시간 자동 비활성화

다음 절차에 따라 21일 이상 로그인하지 않는 dc=example,dc=com 항목에서 사용자를 비활성화하는 시간 기반 잠금 정책을 구성합니다.

예를 들어 직원이 퇴사하고 관리자가 계정을 삭제하는 것을 잊어버린 경우와 같이 계정 비활성 기능을 사용하여 계정을 비활성화한 경우 일정 시간 후에 계정을 비활성화합니다.

절차

  1. 계정 정책 플러그인을 활성화합니다.

    # dsconf <instance_name> plugin account-policy enable
    Copy to Clipboard Toggle word wrap
  2. 플러그인 구성 항목을 구성합니다.

    # dsconf <instance_name> plugin account-policy config-entry set "cn=config,cn=Account Policy Plugin,cn=plugins,cn=config" --always-record-login yes --state-attr lastLoginTime --alt-state-attr 1.1 --spec-attr acctPolicySubentry --limit-attr accountInactivityLimit
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 옵션을 사용합니다.

    • --always-record-login yes: 로그인 시간 로깅을 활성화합니다. 이는 acctPolicySubentry 특성이 설정되어 있지 않은 경우에도 COS(Class of Service) 또는 역할을 계정 정책과 함께 사용해야 합니다.
    • --state-attr lastLoginTime: 계정 정책 플러그인이 사용자의 lastLoginTime 속성에 마지막 로그인 시간을 저장하도록 구성합니다.
    • --Alt-state-attr 1.1: 대체 특성을 사용하여 기본 속성이 없는지 확인합니다. 기본적으로 Directory Server는 createTimestamp 특성을 대안으로 사용합니다. 그러나 이 경우 계정에 lastLoginTime 특성이 설정되어 있지 않고 createTimestamp 가 구성된 비활성 기간보다 오래된 경우 Directory Server에서 기존 사용자를 자동으로 로그아웃합니다. 대체 특성을 비활성화하면 Directory Server가 다음에 로그인할 때 사용자 항목에 lastLoginTime 특성이 자동으로 추가됩니다.
    • --spec-attr acctPolicySubentry: acctPolicySubentry 특성이 설정된 항목에 정책을 적용하도록 Directory Server를 구성합니다. CoS 항목에서 이 속성을 구성합니다.
    • --limit-attr accountInactivityLimit: 계정 비활성화 정책 항목의 accountInactivityLimit 속성이 비활성 시간을 저장하도록 구성합니다.
  3. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
  4. 계정 비활성화 정책 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=Account Inactivation Policy,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: accountpolicy
    accountInactivityLimit: 1814400
    cn: Account Inactivation Policy
    Copy to Clipboard Toggle word wrap

    accountInactivityLimit 속성 값은 마지막 로그인 후 Directory Server가 계정 1814400 초(21일)를 비활성화하도록 구성합니다.

  5. CoS 템플릿 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=TemplateCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: cosTemplate
    acctPolicySubentry: cn=Account Inactivation Policy,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

    이 템플릿 항목은 계정 비활성화 정책을 참조합니다.

  6. CoS 정의 항목을 만듭니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=DefinitionCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectclass: cosSuperDefinition
    objectclass: cosPointerDefinition
    cosTemplateDn: cn=TemplateCoS,dc=example,dc=com
    cosAttribute: acctPolicySubentry default operational-default
    Copy to Clipboard Toggle word wrap

    이 정의 항목은 CoS 템플릿 항목을 참조하고 cn=Account Inactivation Policy,dc=example,dc=com 로 설정된 각 사용자 항목에 acctPolicySubentry 속성이 표시됩니다.

검증

  1. 사용자의 lastLoginTime 특성을 구성한 비활성 시간보다 오래된 값으로 설정합니다.

    # ldapmodify -H ldap://server.example.com -x -D "cn=Directory Manager" -W
    
    dn: uid=example,ou=People,dc=example,dc=com
    changetype: modify
    replace: lastLoginTime
    lastLoginTime: 20210101000000Z
    Copy to Clipboard Toggle word wrap
  2. 이 사용자로 디렉터리에 연결을 시도합니다.

    # ldapsearch -H ldap://server.example.com -x -D "uid=example,ou=People,dc=example,dc=com" -W -b "dc=example,dc=com"
    ldap_bind: Constraint violation (19)
    	additional info: Account inactivity limit exceeded. Contact system administrator to reset.
    Copy to Clipboard Toggle word wrap

    Directory Server가 액세스를 거부하고 이 오류를 반환하면 계정 비활성화가 작동합니다.

2.6.2. 계정을 생성한 후 일정 시간 자동 비활성화

dc=example,dc=com 항목의 계정이 관리자가 생성한 후 60일 후에 만료되도록 구성하려면 다음 절차를 따르십시오.

예를 들어 계정 만료 기능을 사용하여 계정이 생성된 후 특정 시간 동안 외부 작업자의 계정이 잠겼는지 확인합니다.

절차

  1. 계정 정책 플러그인을 활성화합니다.

    # dsconf <instance_name> plugin account-policy enable
    Copy to Clipboard Toggle word wrap
  2. 플러그인 구성 항목을 구성합니다.

    # dsconf <instance_name> plugin account-policy config-entry set "cn=config,cn=Account Policy Plugin,cn=plugins,cn=config" --always-record-login yes --state-attr createTimestamp --alt-state-attr 1.1 --spec-attr acctPolicySubentry --limit-attr accountInactivityLimit
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 옵션을 사용합니다.

    • --always-record-login yes: 로그인 시간 로깅을 활성화합니다. 이는 acctPolicySubentry 특성이 설정되어 있지 않은 경우에도 COS(Class of Service) 또는 역할을 계정 정책과 함께 사용해야 합니다.
    • --state-attr createTimestamp: 계정 정책 플러그인이 createTimestamp 속성 값을 사용하여 계정이 만료되었는지 여부를 계산합니다.
    • --Alt-state-attr 1.1: 대체 특성을 사용하여 기본 속성이 없는지 확인합니다.
    • --spec-attr acctPolicySubentry: acctPolicySubentry 특성이 설정된 항목에 정책을 적용하도록 Directory Server를 구성합니다. CoS 항목에서 이 속성을 구성합니다.
    • --limit-attr accountInactivityLimit: 계정 만료 정책 항목의 accountInactivityLimit 속성이 최대 기간을 저장하도록 구성합니다.
  3. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
  4. 계정 만료 정책 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=Account Expiration Policy,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: accountpolicy
    accountInactivityLimit: 5184000
    cn: Account Expiration Policy
    Copy to Clipboard Toggle word wrap

    accountInactivityLimit 속성 값은 계정이 생성된 후 5184000 초(60일)가 만료되도록 구성합니다.

  5. CoS 템플릿 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=TemplateCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: cosTemplate
    acctPolicySubentry: cn=Account Expiration Policy,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

    이 템플릿 항목은 계정 만료 정책을 참조합니다.

  6. CoS 정의 항목을 만듭니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=DefinitionCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectclass: cosSuperDefinition
    objectclass: cosPointerDefinition
    cosTemplateDn: cn=TemplateCoS,dc=example,dc=com
    cosAttribute: acctPolicySubentry default operational-default
    Copy to Clipboard Toggle word wrap

    이 정의 항목은 CoS 템플릿 항목을 참조하고 cn=Account Expiration Policy,dc=example,dc=com 로 설정된 각 사용자 항목에 acctPolicySubentry 속성이 표시됩니다.

검증

  • createTimestamp 속성이 60일 전 값으로 설정된 dc=example,dc=com 항목에 저장된 사용자로 디렉터리에 연결을 시도합니다.

    # ldapsearch -H ldap://server.example.com -x -D "uid=example,dc=example,dc=com" -W -b "dc=example,dc=com"
    ldap_bind: Constraint violation (19)
    	additional info: Account inactivity limit exceeded. Contact system administrator to reset.
    Copy to Clipboard Toggle word wrap

    Directory Server가 액세스를 거부하고 이 오류를 반환하는 경우 계정 만료가 작동합니다.

2.6.3. 암호 만료 후 일정 시간 자동 비활성화

다음 절차에 따라 28일 이상 암호를 변경하지 않는 dc=example,dc=com 항목에서 사용자를 비활성화하는 시간 기반 잠금 정책을 구성합니다.

사전 요구 사항

  • 사용자는 항목에 passwordExpirationTime 속성이 설정되어 있어야 합니다.

절차

  1. 암호 만료 기능을 활성화합니다.

    # dsconf <instance_name> config replace passwordExp=on
    Copy to Clipboard Toggle word wrap
  2. 계정 정책 플러그인을 활성화합니다.

    # dsconf <instance_name> plugin account-policy enable
    Copy to Clipboard Toggle word wrap
  3. 플러그인 구성 항목을 구성합니다.

    # dsconf <instance_name> plugin account-policy config-entry set "cn=config,cn=Account Policy Plugin,cn=plugins,cn=config" --always-record-login yes --always-record-login-attr lastLoginTime --state-attr non_existent_attribute --alt-state-attr passwordExpirationTime --spec-attr acctPolicySubentry --limit-attr accountInactivityLimit
    Copy to Clipboard Toggle word wrap

    이 명령은 다음 옵션을 사용합니다.

    • --always-record-login yes: 로그인 시간 로깅을 활성화합니다. 이는 acctPolicySubentry 특성이 설정되어 있지 않은 경우에도 COS(Class of Service) 또는 역할을 계정 정책과 함께 사용해야 합니다.
    • --always-record-login-attr lastLoginTime: 계정 정책 플러그인이 사용자의 lastLoginTime 속성에 마지막 로그인 시간을 저장하도록 구성합니다.
    • --state-attr non_existent_attribute: 존재하지 않는 dummy 속성 이름으로 계정 정책을 평가하는 데 사용되는 기본 시간 속성을 설정합니다.
    • --Alt-state-attr 'passwordExpirationTime: passwordExpirationTime 속성을 확인할 대체 속성으로 사용하도록 플러그인을 구성합니다.
    • --spec-attr acctPolicySubentry: acctPolicySubentry 특성이 설정된 항목에 정책을 적용하도록 Directory Server를 구성합니다. CoS 항목에서 이 속성을 구성합니다.
    • --limit-attr accountInactivityLimit: 계정 정책 항목의 accountInactivityLimit 속성이 마지막 암호가 변경된 후 계정이 비활성화된 시간을 저장하도록 구성합니다.
  4. 인스턴스를 다시 시작합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
  5. 계정 비활성화 정책 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=Account Inactivation Policy,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: accountpolicy
    accountInactivityLimit: 2419200
    cn: Account Inactivation Policy
    Copy to Clipboard Toggle word wrap

    accountInactivityLimit 속성 값은 암호가 변경된 후 Directory Server가 계정 2419200 초(28일)를 비활성화하도록 구성합니다.

  6. CoS 템플릿 항목을 생성합니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=TemplateCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectClass: extensibleObject
    objectClass: cosTemplate
    acctPolicySubentry: cn=Account Inactivation Policy,dc=example,dc=com
    Copy to Clipboard Toggle word wrap

    이 템플릿 항목은 계정 비활성화 정책을 참조합니다.

  7. CoS 정의 항목을 만듭니다.

    # ldapadd -D "cn=Directory Manager" -W -H ldap://server.example.com -x
    
    dn: cn=DefinitionCoS,dc=example,dc=com
    objectClass: top
    objectClass: ldapsubentry
    objectclass: cosSuperDefinition
    objectclass: cosPointerDefinition
    cosTemplateDn: cn=TemplateCoS,dc=example,dc=com
    cosAttribute: acctPolicySubentry default operational-default
    Copy to Clipboard Toggle word wrap

    이 정의 항목은 CoS 템플릿 항목을 참조하고 cn=Account Inactivation Policy,dc=example,dc=com 로 설정된 각 사용자 항목에 acctPolicySubentry 속성이 표시됩니다.

검증

  1. 사용자의 passwordExpirationTime 속성을 구성한 비활성 시간보다 오래된 값으로 설정합니다.

    # ldapmodify -H ldap://server.example.com -x -D "cn=Directory Manager" -W
    
    dn: uid=example,ou=People,dc=example,dc=com
    changetype: modify
    replace: passwordExpirationTime
    passwordExpirationTime: 20210101000000Z
    Copy to Clipboard Toggle word wrap
  2. 이 사용자로 디렉터리에 연결을 시도합니다.

    # ldapsearch -H ldap://server.example.com -x -D "uid=example,ou=People,dc=example,dc=com" -W -b "dc=example,dc=com"
    ldap_bind: Constraint violation (19)
    	additional info: Account inactivity limit exceeded. Contact system administrator to reset.
    Copy to Clipboard Toggle word wrap

    Directory Server가 액세스를 거부하고 이 오류를 반환하면 계정 비활성화가 작동합니다.

2.6.4. 계정 비활성 및 암호 만료 모두에서 계정 자동 비활성화

checkAllStateAttrs 설정을 사용하여 사용자가 인증할 때 계정 비활성 및 암호 만료를 모두 적용할 수 있습니다. 기본적으로 checkAllStateAttrs 가 플러그인 구성 항목에 없거나 이 매개변수를 no 로 설정하면 플러그인에서 state 특성 lastLoginTime 을 확인합니다. 항목에 속성이 없으면 플러그인은 대체 상태 특성을 확인합니다.

기본 state 속성을 존재하지 않는 속성으로 설정하고, 플러그인에서 passwordExpirationtime 속성을 기반으로 만료를 처리하려는 경우 대체 상태 속성을 passwordExpirationtime 으로 설정할 수 있습니다. 이 매개변수를 활성화하면 기본 상태 특성이 확인되고 계정이 정상이면 대체 상태 특성을 확인합니다.

이는 passwordExpirationtime이 비활성 제한을 초과하는 경우 계정 정책 플러그인이 계정을 완전히 비활성화한다는 점에서 암호 정책의 암호 만료와 다릅니다. 암호 정책 만료를 사용하는 동안 사용자는 계속 로그인하여 암호를 변경할 수 있습니다. 계정 정책 플러그인은 사용자가 아무 작업도 수행하지 못하도록 완전히 차단하고 관리자가 계정을 재설정해야 합니다.

절차

  1. 플러그인 구성 항목을 생성하고 설정을 활성화합니다.

    # dsconf <instance_name> plugin account-policy config-entry set "cn=config,cn=Account Policy Plugin,cn=plugins,cn=config" --always-record-login yes --state-attr lastLoginTime --alt-state-attr 1.1 --spec-attr acctPolicySubentry --limit-attr accountInactivityLimit --check-all-state-attrs yes
    Copy to Clipboard Toggle word wrap
  2. 서버를 다시 시작하여 새 플러그인 구성을 로드합니다.

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap
    주의

    checkAllStateAttrs 설정은 대체 상태 속성이 passwordExpiratontime 으로 설정된 경우에만 작동하도록 설계되었습니다. createTimestamp 로 설정하면 바람직하지 않은 결과가 발생할 수 있으며 항목이 잠길 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat