Document revision: 1.3 - 06/17/2003
http://asg.web.cmu.edu/isam/proj/pw-reset
All Andrew users must have a username and password to login to servers and use many campus resources. If users forget their password, currently the only resource they have is to call the Help Center and request a password reset, which will reset their password back to their University ID, a number that is usually (although not always) identical to the Social Security Number. Every account has a UID associated with the directory entry, and this number can be looked up automatically.
The Help Center requires that the user show or fax his CMU ID card or some sort of picture identification before they will agree to the password reset.
This project is to create a simple web interface to allow users to easily reset their password on their own, taking load off the Help Center.
The URL to the CGI will be off the MyAndrew page, run from a secure CGI web server (one that is running no other services)
This page will only reset a user's Andrew password. It can not be set up for and will not affect accounts for ECE, CS, or any other department. It will not affect local AD passwords.
The CGI will call ADM functions to do the actual password change.
The CGI should use a templating system for site design (talk to blk)
Users will not be able to use this service without first logging in and setting up their account. On future visits, the user may select answers to previously specified questions that will prove his identity with requiring him to log in.
The identification questions may be provided in one of two ways:
The user will be required to provide non-blank answers for a minimum number of questions (3) to successfully set up the option.
We will need a secure database to store the information set for each user in the initial login process. Information needed: authorization query, password reset value, personalized question(s)/answer(s).
A local database could be set up on the machine the cgi is running from, possibly either RDB or BDB. Need to see if it makes any sense to put this in ora1 instead
Authorization answers will be stored with one-way encryption.
Authorization answers will be case-insensitive, and all punctuation and whitespace will be stripped. No other canonicalization will be performed. Fields that have a well-known format (e.g. dates) should use a pull-down "fill in the blank" menu.
LDAP will be used for some of the information, since there is already an account for each user with some personal information, including University ID #.
Notes on LDAP usage:
The CGI for initial account setup will be served off a secure web server.
The password reset page will ask a standard identification question to verify who the reset is being requested for. Once that stage has been verified, the page will display the users's chosen verification questions and be required to give the correct answers before the password will be reset.
The CGI page will use an authenticated Kerberos principle to access the LDAP directory or database to verify the user's answers to the questions.
The new password will be able to be specified by the user on the same screen as the questions. It will need to be entered twice for verification purposes.
Three different classes of people will be given access to this page: alumni, active affiliates, and pre-freshmen. These groups may be given slightly different treatment.
If an account has been locked externally for security reasons, the page should recognize the lock and disallow further access. This includes expired kerberos principals.
Upon failure, the page should offer further help or exit gracefully.
Logging will be done via DAMS. (via changing an LDAP attribute that will trigger a logging event in dams)
Information logged should include time stamp and IP address for the following events:
If the user is any sysmaint or system group, they must be removed from that group before they will be allowed to go through setup.
really, if we wanted to do this "right" we'd have a bit on some ldap groups that was "this is a high security ldap group" and we'd yank people from that group when they reset their password (from whatever method). At this point we don't think the infrastructure is up to this, but we should consider it in the future
0.1 - 1/31/2003 - Initial draft 0.2 - 2/06/2003 - Initial draft revision 0.5 - 3/13/2003 - Revision revision 1.0 - 3/20/2003 - Final revision, start production 1.1 - 4/22/2003 - Updates based on further comments. 1.2 - 5/23/2003 - More updates