I didn't find any good reference where the steps for authentication are defined (at least steps order).
To be more specific I am interested what sequence of steps should be:
- UserName verification (whether user name is found);
- Password verification;
- Credentials expired or not expired.
- Credentails temporary or not temporary
- Captcha verification.
I understand that in particular case the order of these steps are not so important but generally it will be good to know about such recommendations. Even in order to create appropriate use cases for the system.
As example it can be designed in different ways:
System can provide only general message that user name or password is not correct. In case of incorrect captcha message will be the same.
System can provide more different messages. As example incorrect captcha will provide message similar to "Incorrect captcha is entered"; Incorrect username or password message will be "user name or password is not correct". (I am not sure whether form security perspective it's ok)
And the question is what use case is better? (it will be good to provide some proof that this is better with appropriate arguments).