ibm tivoli_Tivoli Directory Server 6.1密码策略:增强功能,配置和故障诊断

ibm tivoli

密码策略是一组规则,用于控制Directory Server中密码的使用和管理方式。 为了提高LDAP目录的安全性并使得密码破解程序难以进入目录,需要对密码使用实施一组规则。 制定这些规则是为了确保用户定期更改其密码,密码符合构造要求,限制旧密码的重复使用以及在经过一定次数的失败尝试后用户被锁定。

在TDS 6.1发行之前,cn = pwdpolicy是唯一可以存储IBM Directory密码策略的条目。 除目录管理员或管理组成员外,所有用户都必须遵守此条目中定义的规则。 在TDS 6.1中,更多选项可用。 除了全局密码策略之外,目录中的每个用户都可以具有单独的密码策略。 此外,为协助管理员,支持组密码策略以启用有效的密码管理。 当决定用户应遵循哪组密码规则时,将考虑所有三个策略(如果存在)。

除此之外,TDS 6.1还返回与增强的密码策略相关的错误消息。 除了IETF批准的密码策略错误响应代码外,纯文本消息还作为LDAP响应协议的一部分发送,以提高可用性和可维护性。

下面给出了本文中使用的一些首字母缩写词:

  • TDS:Tivoli Directory Server
  • TAM:Tivoli Access Manager
  • WAS:Websphere®应用程序服务器
  • DIT:目录信息树
  • DN:专有名称
  • IETF:互联网工程任务组

多种密码政策

Tivoli Directory Server 6.0用户有一个限制,即他们只能使用条目cn = pwdpolicy配置全局密码策略。 启用此策略后,除目录管理员或管理组成员之外的所有用户都必须遵守此条目中定义的规则。 随着TDS 6.1的发布,更多选项可用。 除了全局密码策略之外,目录中的每个用户都可以具有单独的密码策略。 此外,为协助管理员,支持组密码策略以启用有效的密码管理。 当决定用户应遵循哪组密码规则时,将考虑所有三个策略(如果存在)。

1.组密码策略

通过引入组密码策略,引入了组对象和密码策略条目之间的关联,以便可以通过一组特殊的密码规则来控制组的成员。 指向密码策略条目的新操作属性ibm-pwdGroupPolicyDN可以在任何用户组对象中使用,例如accessGroup,accessRole,groupOfNames,groupOfUniqueNames,ibm-nestedGroup和ibm-dynamicGroup,AIXaccessGroup,eNTGroup,ePasswordGenerator,ibm-globalAdminGroup ,ibm-proxyGroup,ibm-staticGroup,seicResGroup。

由于一个用户条目可能属于多个组,因此在确定该用户的组策略之前,将对多个组密码策略条目进行评估。

所有组密码策略条目中的属性被组合以形成属性的联合,其中限制性最强的属性值优先。 通过将cn = noPwdPolicy的值与密码策略扩展组条目的属性ibm-pwdGroupPolicyDN关联,管理员可以免除该组的策略以用于评估复合组策略。 这意味着,如果用户属于分配了cn = noPwdPolicy的组,则该用户的有效策略将不包括该组策略中的任何属性。 其他组策略以及全局策略和个人策略仍将进行评估。

2.个人密码政策

随着个人密码策略的引入,每个用户都可以拥有自己的密码策略。 使用指向密码策略条目的新操作属性ibm-pwdIndividualPolicyDN,用户条目将具有自己的密码策略条目。 这种命名的参考密码策略设计提供了一种将多个用户条目关联到同一策略条目的简便方法。 通过更改密码策略条目的属性,管理员可以有效地管理一组用户,而无需修改任何用户条目。

通过为密码策略扩展用户条目的属性ibm-pwdIndividualPolicyDN分配值cn = noPwdPolicy,管理员可以使用户免于任何密码策略控制。 这与在条目中未定义属性不同。 如果未定义属性,则将从用户组(如果存在)和全局策略中获得用户的有效密码策略。 但是,如果使用特殊值定义属性,则根本不会评估有效的密码策略,并且用户也不会受到任何密码规则的控制。

3.全球密码政策

由服务器创建全局密码策略条目时,属性ibm-pwdPolicy设置为FALSE,这意味着服务器将忽略所有密码策略条目。 仅当属性设置为TRUE时,服务器才会实施密码规则。

在TDS 6.1之前的TDS版本中,将根据为cn = ibmPolices指定的复制拓扑自动复制全局密码策略条目cn = pwdPolicy。 此设置非常令人困惑。 现在,从TDS 6.1版本开始,该条目已移至cn = ibmPolicies下。 这意味着将基于为cn = ibmPolicies定义的复制拓扑复制条目cn = pwdPolicy,cn = ibmPolicies。 这种新设置不仅将IBM Directory策略整合到一个位置,而且使用于复制全局密码策略的当前复制拓扑设置更加容易理解。

引入了一个名为ibm-pwdGroupAndIndividualPolicies的辅助对象。 该对象类只能添加到全局密码策略条目中。 该对象类中的唯一属性是“必须”属性-“ ibm-pwdGroupAndIndividualEnabled”。 如果将全局密码策略设置为ON,则值为“ TRUE”表示在评估密码策略时将考虑全局,组和单个密码策略。 值“ FALSE”表示仅使用全局密码策略。 默认值为FALSE。

增强密码策略初始化

在TDS 6.1之前的版本中,当目录管理员首先打开已填充目录上的密码策略时,服务器将查询目录中包含userPassword属性但不包含pwdChangedTime属性的所有条目。 对于此类条目,服务器将在数据库中创建一个pwdChangedTime属性,其中包含执行“打开密码策略”请求的日期/时间。 以下是先前发行版中的问题:

  • 关于启动时间 :如果目录中包含userPassword属性的条目少于几十万,则查询和更新将在合理的时间内完成。 如果目录非常大,超过一百万个用户,则用于查找哪些条目需要此时间戳并将这些时间戳添加到数据库所需的时间非常长。
  • 关于日志大小 :为了正确完成此操作,必须增加DB2事务日志的数量和大小。 因此,在执行此操作时,服务器的响应性也会降低。
  • 关于复制 :pwdChangedTime属性在复制环境中的服务器之间将不一致。 当每个副本收到“打开”密码策略的请求时,将在本地生成pwdChangedTime属性。 因此,如果目录包含大量用户,则主服务器上的请求可能需要很长时间才能完成,并且在完成处理此请求之前,它将不会将请求打开密码策略的请求发送给对等方或副本。请求并已提交更改。 从主服务器开始的每台服务器上的pwdChangedTime属性将与主服务器上的原始pwdChangedTime距离越来越远。 另外,如果在打开密码策略时当前副本处于脱机状态,则在重新打开副本副本之前,不会为其所有用户设置其pwdChangedTime属性的值,该属性的初始值可能与其他服务器大不相同。 。
  • 关于复制的另一个问题 :复制是多线程的,复制服务器可以尝试在复制服务器上完成密码策略初始化的设置之前,从该服务器上的正常操作中处理从主服务器接收的任何密码策略属性。 根据尝试的内容,这也可能导致主服务器及其对等方或副本之间的数据不一致。

为了解决上述问题,已经对密码策略属性的初始化进行了修改。 首次将密码策略设置为ON时,新的密码策略属性ibm-pwdPolicyStartTime将添加到cn = pwdPolicy,cn = ibmpolicies条目。 当管理员发送打开密码策略的请求时,该属性将由服务器生成。

  • 目前没有用户条目被修改。 在正常的密码策略运行期间,如果正在处理的条目不存在pwdChangedTime属性,则服务器会将用户条目的createTimestamp用作pwdChangedTime。 服务器将把pwdChangedTime与ibm-pwdPolicySTartTime属性的值进行比较,并使用更新的属性。
  • ibm-pwdPolicyStartTime的值将被复制到所有对等方和副本,因此所有服务器现在对于条目的pwdChangedTime属性将具有相同的值。 当主服务器更新pwdChangedTime属性时,更改将传播到副本,并且此更改也将与其他所有“密码策略”属性一样,出现在审核日志和Changelog中的副本上。 pwdChangedTime属性的设置仍不会出现在审核日志或主服务器上的Changelog中,这与对主服务器上其他密码策略属性的更改(如果它们是由内部服务器操作生成的)相同,而不是来自目录管理员的直接请求。
  • 通过提高密码策略启动时间的性能,可以减少如上所述在写操作中由多线程复制引起的不一致。

密码策略配置

可以从命令行和Web Admin Tool定义密码策略并将其打开。 这里,在本文中,我们展示了如何通过命令行为特定用户或组定义密码策略。 下面提到的密码策略属性已在“密码策略中各种参数的含义”部分中定义。

命令行配置密码策略

启用组和个人密码策略的命令
#idsldapmodify -D <AdminDN> -w <AdminPW> -p <port> -k 
 dn: cn=pwdpolicy,cn=ibmPolicies 
 ibm-pwdpolicy:true 
 ibm-pwdGroupAndIndividualEnabled:true
定义组密码策略的命令
#idsldapadd -D <AdminDN> -w <AdminPW> 
dn:cn=group_pwd_policy,cn=ibmPolicies 
objectclass: container 
objectclass: pwdPolicy 
objectclass: ibm-pwdPolicyExt 
objectclass: top 
cn:group_pwd_policy 
pwdAttribute: userPassword 
pwdGraceLoginLimit: 1 
pwdLockoutDuration: 30 
pwdMaxFailure: 2 
pwdFailureCountInterval: 5 
pwdMaxAge: 999 
pwdExpireWarning: 0 
pwdMinLength: 8 
pwdLockout: true 
pwdAllowUserChange: true 
pwdMustChange: false 
ibm-pwdpolicy:true
定义个人密码策略的命令
#idsldapadd -D <AdminDN> -w <AdminPW> 
dn:cn=individual1_pwd_policy,cn=ibmPolicies 
objectclass: container 
objectclass: pwdPolicy 
objectclass: ibm-pwdPolicyExt 
objectclass: top 
cn:individual1_pwd_policy
pwdAttribute: userPassword 
pwdGraceLoginLimit: 3 
pwdLockoutDuration: 50 
pwdMaxFailure: 3 
pwdFailureCountInterval: 7 
pwdMaxAge: 500 
pwdExpireWarning: 0 
pwdMinLength: 5 
pwdLockout: true 
pwdAllowUserChange: true 
pwdMustChange: false 
ibm-pwdpolicy:true

要将组和单个密码策略与组或用户相关联,请发出以下命令。

要将组密码策略与组关联:
#idsldapmodify -D <AdminDN> -w <AdminPW> -k 
dn:cn=group1,o=sample 
changetype:modify 
add:ibm-pwdGroupPolicyDN 
ibm-pwdGroupPolicyDN:cn=group_pwd_policy,cn=ibmPolicies
要将个人密码策略与用户相关联:
#idsldapmodify -D <AdminDN> -w <AdminPW> -k 
dn:cn=user1 ,o=sample 
changetype:modify 
add:ibm-pwdIndividualPolicyDN 
ibm-pwdIndividualPolicyDN:cn= individual1_pwd_policy,cn=ibmPolicies

密码策略中各种参数的含义

本节定义各种密码策略配置属性和操作属性。 提供了一些属性的简短描述,以帮助用户定义和理解密码策略。

密码策略配置属性

  • pwdPolicyStartTime:此属性包含密码策略打开的时间。
  • pwdAttribute: pwdAttribute属性指定要对其应用密码策略的属性的名称,该属性只能设置为userPassword属性。
  • pwdMinAge: pwdMinAge属性指定自上次修改密码以来在修改密码之前必须经过的秒数。
  • pwdMaxAge: pwdMaxAge属性指定修改的密码将过期的秒数(0表示密码不过期)。
  • pwdInHistory: pwdInHistory属性指定密码的数量,该密码存储在pwdHistory属性中。
  • pwdCheckSyntax: pwdCheckSyntax属性指示是否将检查密码的语法。 (“ 0”表示将不执行语法检查,“ 1”表示服务器将检查语法,并且如果服务器无法检查语法(由于密码哈希或其他原因),它将被接受。“ 2 '表示服务器将检查语法,如果服务器无法检查语法,它将返回错误(拒绝密码)。
  • pwdMinLength: pwdMinLength属性指定密码字符串的最小长度。
  • pwdExpireWarning: pwdExpireWarning属性指定密码即将到期之前的最大秒数,该到期警告消息将返回给进行身份验证的用户。
  • pwdGraceLoginLimit: pwdGraceLoginLimit属性指定过期密码可用于验证用户身份的次数。
  • pwdLockoutDuration: pwdLockoutDuration属性指定由于指定的“ pwdMaxFailure”绑定尝试失败而无法使用密码进行身份验证的秒数。
  • pwdMaxFailure: pwdMaxFailure属性指定允许的连续失败绑定尝试的最大次数,此后可能无法使用密码进行身份验证。(0表示将忽略pwdLockout的值)。
  • pwdFailureCountInterval: pwdFailureCountInterval属性指定秒数,在此秒数之后,即使没有成功进行身份验证,也将从失败计数器中删除密码失败。
  • passwordMinAlphaChars: passwordMinAlphaChars属性指定密码字符串必须具有的最小字母字符数。 如果服务器无法检查字母字符的数量,则服务器将根据pwdCheckSyntax属性的值继续处理。
  • passwordMinOtherChars: passwordMinOtherChars属性指定密码字符串必须具有的最小数目的数字和特殊字符。 如果服务器无法检查其他字符的数量,则服务器将根据pwdCheckSyntax属性的值继续处理。
  • passwordMaxRepeatedChars: passwordMaxRepeatedChars属性指定给定字符可在密码中使用的最大次数。 如果服务器无法检查实际的密码字符,则服务器将根据pwdCheckSyntax属性的值继续处理。
  • passwordMinDiffChars: passwordMinDiffChars属性指定新密码中必须与旧密码中的字符以及存储在pwdHistory中的所有密码不同的最小字符数。 如果密码已被单向加密,则服务器将无法检查实际的密码字符,则服务器将根据pwdCheckSyntax属性的值继续进行处理。
  • ibm-pwdPolicy: ibm-pwdPolicy属性指定密码策略是打开还是关闭。
  • pwdLockout: pwdLockout属性指示在指定的连续失败的绑定尝试次数后,是否可以使用密码进行身份验证。
  • pwdAllowUserChange: pwdAllowUserChange属性指定是否允许用户更改自己的密码
  • pwdMustChange: pwdMustChange属性指定用户在管理员重置密码后首次绑定目录时是否必须更改密码。
  • pwdSafeModify: pwdSafeModify属性指定更改密码时是否必须发送现有密码。
  • pwdGroupAndIndividualEnabled: pwdGroupAndIndividualEnabled属性确定在有效密码策略评估期间是否必须考虑组密码策略和个人密码策略。

密码策略操作属性

  • pwdAccountLockedTime :包含帐户被锁定的时间。 如果帐户未锁定,则此属性不存在。
  • pwdChangedTime :包含密码上次更改的时间或密码策略的开始时间,以最近的时间为准。
  • pwdExpirationWarned :包含第一次将密码过期警告发送到客户端的时间。
  • pwdFailureTime :一个多值属性,包含先前连续登录失败的时间。 如果上次登录成功,则此属性不存在。
  • pwdGraceUseTime :一个多值属性,包含以前的宽限登录时间。
  • pwdReset :如果密码已重置并且必须由用户更改,则包含值TRUE。 该值为FALSE或不存在。
  • ibm-pwdAccountLocked :指示该帐户已被管理员锁定。
  • ibm-pwdIndividualPolicyDn :可以与用户条目关联的密码策略条目的DN。
  • ibm-pwdGroupPolicyDn :可以与组条目关联的密码策略条目的DN。

TDS 6.1密码策略调试实践

本节不仅列出用户可以用来调试密码策略问题的各种命令,而且还包括通用命令,密码策略管理员可以在日常使用密码策略时使用这些常规命令。

1.收集密码策略属性。

要调试密码策略的问题,最好从密码策略操作属性和其他有效的密码策略属性开始。 使用以下命令在给定用户上收集此类属性:

可以使用以下ldapsearch命令列出给定用户的操作属性

#idsldapsearch -D <AdminDN> -w <AdminPW> -s base -b "<UserEntryDN>" 
 objectclass=* +ibmpwdpolicy

可以使用以下ldapsearch命令列出全局密码策略设置:

#idsldapsearch -D <AdminDN> -w <AdminPW> -s base -b "cn=pwdpolicy,cn=ibmPolicies" 
 objectclass=*

可以使用以下ldapsearch命令列出组/用户密码策略

#idsldapsearch -D <AdminDN> -w <AdminPW> -s sub -b " " objectclass=ibm-pwd*

可以使用以下ldapexop命令来计算给定用户的有效密码策略

#idsldapexop -D <AdminDN> -w <AdminPW> -op effectpwdpolicy -d "<UserEntryDN>"

2.在用户/组中列出密码策略DN。

如果从以上搜索结果中将ibm-pwdGroupAndIndividualEnabled设置为true,则特定的组和用户可能已为其定义了单独的密码策略。 要列出此类密码策略,请参考以下命令:

可以使用以下ldapsearch命令从组条目中收集密码策略DN

#idsldapsearch -D <AdminDN> -w <AdminPW> -s base -b <GroupEntryDN> 
 objectclass=* ibm-pwdGroupPolicyDN

可以通过运行以下ldapsearch命令从用户条目中收集用户密码策略DN

#idsldapsearch -D <AdminDN> -w <AdminPW> -s base -b <UserEntryDN> 
 objectclass=* ibm-pwdIndividualPolicyDN

3.查询密码即将过期的条目。

使用pwdChangedTime属性可以列出密码将在特定日期过期的用户,并使用一定天数的密码过期策略。 在下面的示例ldapsearch中,将列出密码在2008年5月5日到期的用户,其密码有效期为100天。 此搜索查询将pwdChangedTime设置为2008年5月5日之前100天的日期的条目。pwdChangedTime设置为小于或等于2008年1月26日午夜。

#idsldapsearch -D <AdminDN> -w <AdminPW> -b <Base DN for User Subtree> 
 -s sub "(!(pwdChangedTime>=20080126000000Z))" dn

4.查询锁定帐户。

使用pwdAccountLockedTime属性来验证帐户是否被锁定。

#idsldapsearch -D <AdminDN> -w <AdminPW> -b <Base DN for User subtree>
 -s sub "(pwdAccountLockedTime=*)" dn

5.查询必须更改密码的帐户。

使用pwdReset属性列出由于重置密码而必须更改密码的帐户。

#idsldapsearch -D <AdminDN> -w <AdminPW> -b <Base DN for User subtree>
 -s sub "(pwdReset=TRUE)" dn

6.设置非到期密码。

使用pwdChangedTime属性可防止帐户密码过期。 设置userPassword属性时,请将pwdChangedTime属性设置为将来的某个日期。 下面的示例将时间设置为2200年1月1日午夜。

#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: uid=wasadmin,cn=users,o=ibm 
changetype: modify 
replace: pwdChangedTime 
pwdChangedTime: 22000101000000Z

7.解锁帐户。

使用pwdAccountLockedTime和pwdFailureTime属性来解锁由于过多的登录失败而被锁定的帐户。 可以通过删除pwdAccountLockedTime和pwdFailureTime属性来解锁此类帐户。

#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn:  <DN of the locked account>
changetype: modify 
delete: pwdAccountLockedTime 
-
delete: pwdFailureTime

8.解锁过期的帐户。

使用pwdChangedTime,pwdExpirationWarned和pwdGraceUseTime属性来解锁过期的帐户。 可以通过更改pwdChangedTime并清除pwdExpirationWarned和pwdGraceUseTime属性来解锁此类帐户。

#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: <DN of the locked account>
changetype: modify 
replace: pwdChangedTime 
pwdChangedTime: yyyymmddhhss.Z 
-
delete: pwdExpirationWarned 
- 
delete: pwdGraceUseTime

9.重置“必须更改密码”状态。

通过删除并添加pwdReset属性, 使用pwdReset属性清除“必须更改密码”状态。

#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: <UserDN> 
changetype: modify 
delete: pwdReset  


#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: <UserDN> 
changetype: modify 
replace: pwdReset 
pwdReset: TRUE

10.帐户的管理锁定和解锁。

使用ibm-pwdAccountLocked属性进行帐户的管理锁定和解锁。 通过将ibm-pwdAccountLocked操作属性设置为TRUE,可以在管理上锁定帐户。 同样,可以通过将ibm-pwdAccountLocked操作属性设置为FALSE来对帐户进行管理上的解锁。

#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: <UserDN to be locked> 
changetype: modify 
replace: ibm-pwdAccountLocked 
ibm-pwdAccountLocked: TRUE 
 
#idsldapmodify -D <AdminDN> -w <AdminPW> -k
dn: <UserDN to be locked> 
changetype: modify 
replace: ibm-pwdAccountLocked
ibm-pwdAccountLocked: FALSE

以这种方式解锁帐户不会由于过多的密码错误或密码过期而影响帐户的锁定状态。 设置此属性的用户必须具有写入ibm-pwdAccountLocked属性的权限,该属性定义为在CRITICAL访问类中。

如果由于属性ibm-pwdAccountLocked设置为TRUE而锁定了该帐户,并且管理员清除了该属性(将其设置为FALSE)并使用了管理控制(-k选项),则该帐户将被完全解锁。 pwdAccountLockedTime和pwdFailureTime属性也将清除并重置。

常见错误及其解决方案

本节列出了在使用密码和密码策略时用户遇到的最常见错误。 本节还介绍了解决上述错误的方法。

  • 验证错误:用户名或密码(或两者)不正确,或者密码已过期。 登录失败,因为指定的用户名或密码不正确,或者密码可能已过期。 通过指定正确的用户名和密码尝试再次登录。 如果仍然收到错误,请检查该帐户是否已过期或是否已被锁定。
  • 违反密码政策规则。 验证给定的输入。 指定的输入至少违反密码策略规则之一。 以下是密码策略规则:
    1. pwdMinLength应该大于pwdMinOtherChars + passwordAlphaChars
    2. pwdMinLength应该大于pwdMinDiffChars
    3. pwdMaxAge应该大于pwdMinAge
    4. pwdMaxAge应该大于pwdExpireWarning
    5.如果pwdMustChange为TRUE,则pwdAllowUserChange必须为TRUE。
  • 条目的密码策略条目DN正在使用,不能重命名或删除。 密码策略条目被其他条目引用为个人密码策略或组密码策略,因此不能重命名或删除。 确保要删除或重命名的密码策略条目未被任何其他条目引用。
  • 条目的条目DN引用的条目的密码策略条目DN无效。 或找不到由条目的条目DN引用的条目的密码策略条目DN的DN。 为用户或组条目指定的密码策略条目的DN无效。 必须根据DN语法指定密码策略条目的DN,否则为用户或组条目指定的密码策略条目的DN不存在。 必须首先创建为用户或组条目指定的密码策略条目。

适用于TAM,WAS和其他产品的TDS密码策略调整

我们的某些客户(例如WAS)无法解析LDAP响应中的pwdPolicyResponse控件,他们需要更多信息,以帮助他们区分各种密码策略错误和错误密码。 能够解析pwdPolicyResponse控件的其他客户(例如TAM)也需要详细的消息,这些消息比TDS所提供的更为细化。

为了满足这两种客户,LDAP响应协议中的公共字段用于提供更多信息。 如果在密码策略相关操作期间发生错误,则将以文本形式的错误消息放入LDAPResult协议序列的错误消息字段中。

样本IETF绑定协议
LDAPResult  :: = SEQUENCE {
         resultCode       ENUMERATED {
                          success (0),
                       ...}
         matchedDN     LDAPDN,
         errorMessage  LDAPString,
         referral      [3] Referral OPTIONAL  }



                            
BindResponse  :: = [APPLICATION 1] SEQUENCE {
          COMPONENTS OF LDAPResult,
          ...}



LDAPMessage  :: = SEQUENCE {
          MessageID       MessageID,
          protocolOp        CHOICE {
                            bindResponse  BindResponse,
                            addResponse  AddResponse,
                                  ...},
          controls        b [0] Controls OPTIONAL }

下表列出了除了受支持的resultCode和passwordPolicyResponse(嵌入在响应的控制字段中)中可能的错误代码之外还将发送的消息。 在解析passwordPolicyResponse控件中的resultCode和错误代码之后,TAM之类的客户可以继续解析响应协议以获取有关操作可能失败的更多信息。

表1. TAM的passwordPolicyResponse中的其他消息列表。
resultCode passwordPolicyResponse中的错误代码 文本形式的错误消息
违反约束(19) invalidPasswordSyntax(5) passwordMinAlphaChars策略失败。

passwordMinOtherChars策略失败。

passwordMaxRepeatedChars策略失败。

passwordMinDiffChars策略失败。

下表列出了resultCode和如果客户端不知道如何解析passwordPolicyResponse控件将发送的消息。 客户(例如WAS)在获得与密码策略相关的操作的不成功的resultCode后,可以继续解析响应协议以获取有关可能失败的更多信息。 此处选择的错误文本消息与TDS CLI实用程序当前使用的消息一致。

表2. WAS的passwordPolicyResponse中的其他消息列表
操作方式 resultCode 文本形式的错误消息
绑定-没有剩余的宽限登录 LDAP_INVALID_CREDENTIALS(49) 错误,密码已过期
绑定 LDAP_UNWILLING_TO_PERFORM(53) 错误,帐户已被锁定
修改 LDAP_UNWILLING_TO_PERFORM(53) 错误,必须提供旧密码
修改 LDAP_UNWILLING_TO_PERFORM(53) 错误,重置后必须更改密码
修改 LDAP_UNWILLING_TO_PERFORM(53) 错误,密码无法修改
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码太小
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码太短
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码字母字符太少
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码其他字符太少
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码重复字符过多
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,密码不同字符太少
修改 LDAP_CONSTRAINT_VIOLATION(19) 错误,历史记录中的密码
LDAP_UNWILLING_TO_PERFORM(53) 错误,重置后必须更改密码
比较 compareFalse(5) 错误,帐户已被锁定
比较 compareFalse(5) 错误,密码已过期

管理员提示

以下是使用“密码策略”属性时必须牢记的几点。 这些要点将有助于管理员有效地维护密码策略:

  • 应避免将全局策略作为个人策略或组策略分配给用户。
    为了提高性能,在服务器启动期间,如果DIT中存在密码策略条目(全局密码策略除外)并且定义了对密码策略条目的引用(即pwdGrpPolicyDN表和pwdIndPolicyDN表都不为空),则会设置一个标志。 )。 如果设置了该标志,则将通过搜索用户的个人和组策略来评估用户的有效密码策略; 否则,将不会尝试搜索,并且全局策略(如果已打开)将用作用户的有效策略。 请记住,应避免将全局策略作为个人策略或组策略分配给用户,因为这可能会影响服务器的性能。
  • 绑定性能可能会下降。
    在TDS 6.1发行之前,对于每个目录更新或搜索操作,都会在操作之前和用户成功绑定之后进行用户的组成员资格评估。 这种“惰性基团评估”显着提高了结合性能。 但是,使用此功能,为了在绑定时间期间对用户进行身份验证,必须确定用户的组密码策略。 若要确定用户的组策略,必须解决组成员身份。 “惰性组评估”方案不再适用,因此,绑定性能可能会降低。
  • 所有组条目都必须驻留在每个后端服务器中。
    在分布式目录环境中,后端服务器可能无法在服务器上本地找到用户所属的所有组条目。 如果没有组条目,则无法找到诸如组的密码策略DN之类的信息,因此,无法评估用户的有效密码策略。 在此版本中,为了支持分布式目录环境,所有组条目都必须位于每个后端服务器中,以确保正确评估用户/组的有效密码策略。
  • 更新密码策略属性的权限。
    密码策略相关的操作属性(例如pwdChangedTime,pwdAccountLockedTime,pwdExpirationWarned,pwdReset,pwdFailureTime,pwdHistroy和pwdGraceUseTime)可以由主服务器和管理用户(例如目录管理员,本地管理组成员和全局管理组成员)使用管理控制进行更新。 使用此控件,还允许同一组用户更新属性-ibm-pwdGroupPolicyDN和ibm-pwdIndividualPolicyDN。
  • 复制密码策略操作属性。
    密码策略中与用户相关的元素作为操作属性存储在条目中。 These attributes are subject to modifications even on a read-only replica, so replicating these attributes must be carefully considered.
    1. pwdChangedTime The pwdChangedTime attribute must be replicated on all replicas , to enable expiration of the password.
    2. pwdReset The pwdReset attribute must be replicated on all replicas , to deny access to operations other than bind and modify password.
    3. pwdHistory The pwdHistory attribute must be replicated to writable replicas . This attribute does not need to be replicated to a read-only replica, as the password is never directly modified on this server.
    4. pwdAccountLockedTime, pwdExpirationWarned, pwdFailureTime, pwdGraceUseTime The pwdAccountLockedTime, pwdExpirationWarned, pwdFailureTime and pwdGraceUseTime
      • Attributes must be replicated to writable replicas, making the password policy global for all servers.
      • When the user entry is replicated to a read-only replica , these attributes must not be replicated. This means that the number of failures, the number of grace logins and the locking take place on each replicated server. There are times when the values of pwdAccountLockedTime, pwdExpirationWarned, pwdFailureTime and pwdGraceUseTime are replicated.
      • If the user's password is reset, thereby clearing some of these attributes, this action is replicated to the read-only replicas .
      • If an administrator on the master server uses the administrative control to overwrite the values of these attributes on the master server, this forced write of the operational attributes is also replicated to read-write and read-only replicas .
    5. ibm-pwdAccountLocked When the ibm-pwdAccountLocked attribute is set or cleared on the master server, this attribute is also replicated to the replicas. When this attribute is cleared while using the administrative control on the operation, the pwdAccountLockedTime attribute is also cleared so that the account is totally unlocked when this attribute is set to FALSE.
  • Forcing an add or update for an entry.
    When an administrative user updates or adds an entry, specifying a password policy operational attribute as one of the attributes to be changed or in the case of a new entry, the administrative user specifies a value for one or more of the operational attributes, then the administrative user is performing a forced add/update for the entry. A forced add/update of an entry means that the normal password policy processing is not performed for that entry. When the administrator is performing a forced add/update to an entry, the administrator has the intention to set all of the password policy attributes as the entry requires. Do not force an add unless all of the normal password policy operational attributes have been given an appropriate value, such as pwdReset and pwdChangedTime. If pwdChangedTime is not given a value on a forced add, then this attribute is not set until the user first attempts to bind to the server, or until another forced update creates a time for this attribute.

    If any of the password policy attributes need to be specifically set on an add operation, the new entry should be created first and a separate modify operation should be used to set any other password policy attribute. If the userPassword attribute is being modified on the modify operation, then any password policy attributes that are to be force updated must be updated separate from the userPassword modification operation. This ensures that all of the proper password policy changes that occur on an add or modify operation are performed.

参考


翻译自: https://www.ibm.com/developerworks/tivoli/library/t-tdspp-ect/index.html

ibm tivoli

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值