The Password Authenticator plugin manages passwords for CO People.
This plugin is considered Experimental.
- This is a non-core plugin, see Installing and Enabling Registry Plugins for more information.
This plugin requires PHP 7 or later (for random_bytes).
Much angst has been generated over the years as security experts try to decide what the appropriate password policies should be. How long should a password be? How many character classes should be required? How often should the password be changed? What types of questions are good for resetting the password?
The Password Authenticator Plugin supports the NIST 800-63B Digital Identity Guidelines. In summary:
- Passwords must be at least 8 characters in length (§126.96.36.199). The minimum and maximum length of the password is configurable.
- Password hints are not supported (§188.8.131.52).
- Password character composition checks are not supported (§184.108.40.206).
- Passwords do not expire on a scheduled basis (§220.127.116.11). That is, there is no ability to require a password change after (eg) 90 days. (A password can be manually expired or reset.)
- Passwords may not be reset using knowledge based pre-stored secrets (ie: password reset questions or "backup memorized secrets", §18.104.22.168).
Password Hashing Formats
The following hashing formats are currently supported:
- Crypt, as implemented by the PHP password_hash function using PASSWORD_DEFAULT. This is the strongest hashing option, but is only suitable for use in PHP based applications that implement password_verify. This format is enabled by default and cannot be disabled since it is used internally by the plugin.
- SSHA, or Salted SHA-1. This option is suitable for writing to LDAP servers. Available as of Registry v3.2.0.
- Plaintext, or unhashed. This option is normally not recommended, but may be suitable for select scenarios where a password must be provisioned in plaintext to a legacy downstream system.
Additional formats are likely to be supported in future releases.
Multiple hashing formats may be enabled concurrently. When a Password is set or changed, the password will be hashed in each enabled format.
The LDAP Provisioning Plugin supports writing the hashed password to the
userPassword attribute. As of Registry v3.2.0, the plugin will only write SSHA hashed values to the LDAP record.