17.3. 암호 만료 후 일정 시간 자동 비활성화
28일 이상 암호를 변경하지 않는 dc=example,dc=com 항목에서 사용자를 비활성화하는 시간 기반 잠금 정책을 구성하려면 다음 절차를 따르십시오.
사전 요구 사항
-
사용자는 해당 항목에
passwordExpirationTime속성이 설정되어 있어야 합니다.
절차
암호 만료 기능을 활성화합니다.
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace passwordExp=on계정 정책 플러그인을 활성화합니다.
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin account-policy enable플러그인 구성 항목을 구성합니다.
# dsconf -D "cn=Directory Manager" ldap://server.example.com 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이 명령은 다음 옵션을 사용합니다.
-
--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속성이 마지막 암호가 변경된 후 계정이 비활성화된 시간을 저장하도록 구성합니다.
-
인스턴스를 다시 시작합니다.
# dsctl instance_name restart계정 비활성화 정책 항목을 생성합니다.
# 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 PolicyaccountInactivityLimit속성의 값은 암호가 변경된 후 Directory Server가 계정2419200초(28일)를 비활성화합니다.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이 템플릿 항목은 계정 비활성화 정책을 참조합니다.
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이 정의 항목은 CoS 템플릿 항목을 참조하고
acctPolicySubentry속성이cn=Account Inactivation Policy,dc=example,dc=com으로 설정된 값을 사용하여 각 사용자 항목에 표시되도록 합니다.
검증
사용자의
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다음 사용자로 디렉터리에 연결을 시도합니다.
# 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.Directory Server에서 액세스를 거부하고 이 오류를 반환하는 경우 계정 비활성이 작동합니다.