...
- Guest -> Student -> Employee
- I first interact with CAS when registering for an event as a guest.
- For convenience I choose to use Facebook authentication.
- A few months later, I join the organization as a student.
- Through a process out of the scope of this document, I sign up for a username and password. These credentials are connected to my existing identity, which up to this point only contained Facebook authentication information.
- If I attempt to access a resource intended for guests (app1), I see a login page that does include the Facebook button.
- If I attempt to access a resource intended for students (app2), I see a login page that does not include the Facebook authentication option.
- Let's say I login to app1 using Facebook, then I navigate to app2.
- I am presented with the login page again, this time not showing the Facebook button and including a message stating, "You must login with your username and password. Facebook Connect is not supported for the site you are trying to reach."
- After I login, I am taken to the page.
- A few years later, I join the organization as an employee.
- Through a process out of the scope of this document, I am forced to increase the strength of my password to meet employee standards. This is likely handled through a business process but also enforced using an interrupt screen in CAS that analyzes my password strength (probably by looking at authentication attributes, the assurance policy, and my organizational roles) and, if necessary, sends me to a self-service change password page after logging in. The change password page will check my role (in my case by looking in Grouper) and will enforce the employee password policy.
- In this case, because password strength has been enforced prior to my accessing a service (through the use of interrupt screens and validation), the service can assume that my password is strong enough.
- I first interact with CAS when registering for an event as a guest.
- Remember me
- I'm a student.
- I read a blog on the organization's blog site and I want to leave a comment. I log in and check the "remember me" box.
- When reading another blog a few days later, I am able to leave a comment without logging in again because the "remember me" feature worked for the blog.
- I access the event registration web app, and it presents me with the login page because it requires an LOA number higher than that of the "remember me" feature.
- Trusted external IdP - Note that this is very similar to using a public IdP like Facebook, and (like Facebook Connect) is basically a form of federation
- I'm an employee at a partner organization.
- I attempt to access the event registration web app. On the login page, I click the link "login with username and password from partner organization." (yes, the real message would be much less generic... more along the lines of "login with facebook" but for the partner org)
- I attempt to access an employee portal website, which does not accept employees from partner org. I am shown the login screen again, with a message saying something like, "You must login with your username and password. Partner Org login is not supported for the site you are trying to reach."
- Add a second factor (selected by user) when accessing enterprise app
- I access the employee portal and login with my username and password.
- I navigate to the organization PeopleSoft HR system.
- The system looks up some info in my account and determines that I have my cell phone registered to receive SMS messages and I have Google Authenticator configured. It presents me with a screen showing the two options and asking me to click one. I click on the "SMS message" option. (Note that if I had only previously set up one of these options, the system would have selected it automatically. If I had not previously set up either option, the system would have given me instructions telling me to set up at least one of these.)
- My phone receives a code as an SMS message. I type this code into a text box on the screen and click "continue".
- I am granted access to the PeopleSoft HR system.
- Extra-strong password policy enforced for user with power-admin role - Note that this is an important LOA scenario, though it is somewhat outside of the scope of LOA in CAS as we're talking about now. It really highlights how interrupt screens can play an important role in LOA.
- I'm an employee with access to the PeopleSoft HR system.
- I'm granted a special role in PeopleSoft that gives me lots of power. This is registered in the organization's RBAC system (in this case Grouper).
- The next time I login with my username and password, some code in CAS intercepts my login and realizes that my password is not strong enough for this role. I get sent to a screen where I must choose a stronger password.
- After choosing the stronger password, I login again and then am granted access to PeopleSoft.
- Note that PeopleSoft itself might not specifically immediately request any special password strength (beyond what would be true for all users), since it doesn't know who is accessing it when it redirects the first time. However, after it has received and validated the ticket, it might take the opportunity to look up the person's assigned roles to ensure that their current password strength or LOA level is sufficient. In that case it could redirect the user back to CAS with a more specific LOA request. Alternatively, it would probably block access and notify an administrator, because the interrupt screens should have already done the work to ensure that this aspect of the LOA policy was fulfilled.
...
Jérôme :
I'd like you to describe more the HTTP requests and the LOA values requested.
I may be mistaken, but I don't see anything here which cannot be addressed by what I proposed at first. I don't see the need for authentication handlers combination (&&, ||).
Did I miss something ?
I'm only doubtful on how to handle properly the fact a user is already authenticated by username/password and needs to authenticate by SMS in addition to the previous authentication.
VII. Roadmap
A) Version 1.0 : only client requested LOA
...