> OAuth authentication
> Although not originally intended for this purpose, OAuth has evolved into a means of authenticating users as well.
I'd contest the claim that OAuth was not intended for authentication, because there are no authz uses for the password grant.
There are obvious authz uses for the password grant: you use it when you want to delegate access to a client running on your desktop, which is in your custody, and there's no point in running a multi-legged authorization protocol because you can just log the client in yourself. Your first thought about that might be "that's authentication", but it's not: you don't have to give all-or-nothing access (in theory) to such a client.
0: https://aspsecuritykit.net/guides/implementing-hmac-scheme-t...
A general rule of thumb w/r/t/ OAuth is that it starts to make sense when you are delegating authorization to other companies that share your users. Think "TweetLater".
Just so I follow, did you mean underrated…?
so your general rule of thumb is pretty stupid.
OAuth provides an abstraction between the authentication, permission grant and user consent and getting a token representing authorization, and provides additional best practices for things like securing web and native app access, token revocation, token introspection, etc. You probably want to be in the business of improving your SaaS, not designing a secure access system.
That isn't to say you can't build something now with the idea that you will migrate away from that once you hit an inflection point in complexity due to new features.
I'd generally caution against using OAuth until you know you need it.
google and TDAmeritrade authenticate their 1st party services with oAuth and it logically makes sense to me.
Agree below though on preconsent.
0: https://aspsecuritykit.net/guides/designing-activity-based-d...
100% agree that you should not roll your own. There are lots and lots of options out there with different strengths and weaknesses. Determine what you need and then find the right solution (which may be hydra or something else).
You have extensions like Facebook Connect or OpenID Connect which add on the additional technology and client steps to allow it to be used securely for authentication.
The title is wrong because those involved in the standardization of OAuth 2.0 have yelled from the very beginning not to use it for authentication, but instead use something that builds authentication on top of it.
It would authenticate who you are, but you have authorize the people yourself later.
- https://oauth.net/articles/authentication/
- https://tools.ietf.org/html/rfc6749 - The OAuth 2.0 Authorization Framework
If you want a list of things that can go wrong, look here: https://tools.ietf.org/id/draft-ietf-oauth-security-topics-1...
Generally you probably do not need OAuth2: https://www.ory.sh/hydra/docs/concepts/before-oauth2/
But if you do don’t roll your own but use proven open source like https://github.com/ory/hydra