I'm researching a new web-application that I want to develop using HATEOAS, RESTful principles. I'm looking into authentication schemes and the information for authentication of web-apps (via browsers, not machine-to-machine), seems a bit lacking.
After establishing an HTTPS session and initial log-on there doesn't seem to be any need for tokens, cookies, HMAC's, nonces, etc. to be passed. Nor does the Basic-Authentication or HMAC, OAuth, etc seem to matter: the HTTPS session is secure.
I'm probably missing something. Here's how I imagine my solution working: -
- User navigates to the login page of the web-application (HTTPS://acme.com/login)
- User specifies username and password
- Web-service validates the username and password: allows access to authorized resources
For the server to identify the authenticated user on subsequent requests, it could either: -
- pass the clear-text user name as a header or cookie - this is RESTful, IMO
- use the SSL session ID (if available to framework), looking up the user. This is not quite so RESTful as the session ID needs storing
I see no reason to use anything else than HTTPS. What am I missing, what vulnerabilities or missing functionality?
Thanks!