Users of our ECTS implementation “PartnerPoint” are not an overly happy set. Most of the problems that we have experienced are centered around login errors. This application is particularly prone to login errors for the following reasons:
- Randomly generated initial password is too complex – data entry errors cause login denial
- Password expiration errors are not transparent – We need to capture the error that is seen in a password expiration instance.
- Passwords generated by ECTS (either during account creation or a ECTS admin reset) are temporary and must be changed on next login. The account attribute “eatmuPwdGenerated” holds this information.
- Password strength requirements are not displayed in the forms, and password strength errors are not detailed or helpful (i.e. they do not tell you why your password is unacceptable).
- Login errors are not detailed or helpful – they do not tell you if the account is locked or disabled, it the password is expired, or if you simply entered an invalid username/password combination.
- Even when login is successful, users often will get “access denied” messages because of permissions problems:
- The ECTS “Add External User” dialog generally refuses to add permissions to the ACL for a site… it only works consistently when you add the user to an existing site group
- Sign-in for ECTS users requires at least “Read” permissions to the to-level site in a site collection. You cannot grant external users rights to a child site with no permissions in the parent.
Clearing account lockouts – accomplished by setting the “lockoutTime” attribute of the AD LDS account to “0”. This causes the “badPwdCount” attribute to be reset to zero. Note that you cannot set “badPwdCount”, nor “badPasswordTime” as these attributes are owned by “SYSTEM”, and thus cannot be edited manually. Solution located in the “EggHead Cafe”:
Other AD LDS account attributes to watch – see MSDN Active Directory Schema documentation for details:
- eatmuPwdGenerated – attribute added by ECTS installer. Indicated whether current password was generated by ECTS, or by the user. Reset when the user successfully logs in and sets his own password.
- msDS-UserPasswordExpired – populated, but apparently not accurate or used.
- msDS-User-Account-Control-Computed – Most commonly used for reporting on account state. This value is computed from other fields, and should not be modified directly.
- pwdLastSet – in active use for ECTS accounts, uses “Large Integer” value, formatted as “NT Time”, or number of 100 nanosecond intervals from 1 Jan, 1601. This can be converted to a readable date using “w32tm.exe /ntte [string]”. This value cannot be reset to a specific value, although you can use the special values “0” (meaning “must change at next login”) or “-1” (meaning “now”); however, ADSI Edit does not allow you to enter the value of “-1”, so we would have to use a different tool to set a “-1” value. Setting the value to “0” will break login as there is no LDAP method for requesting a password change.