I am about to start developing a REST service and security is an important aspect of this project but I can't find some definitive information on how to implement it. My service will be consumed by an Android App at first, but could be used by other platforms later. Controlling user access is critical, so Authorization
and Authentication
control of the REST services is very important.
Although I can find topics on how to make a secure REST API, like here, here and this big one here, to my surprise, all of them fail to point to a famous standard or framework or time tested solution, which usually is the "way to go" in securing software applications, where we avoid as much as we can to "roll your own security solution".
So far on my research I think OAUTH 2.0 (or even OAUTH 1.0) is the best way to go, it's a public widely used protocol and supports Authorization
and Authentication
and we can control the lifetime of keys and even have a special refresh key
allowing the client to not store password information for acquiring a new key
if needed.
I also think Apache Shiro
is the best framework for Security
, Authorization
and Authentication
in java, so it comes to a surprize for me when I can't find any integrations between Shiro
and OAUTH 2.0
...ok there is one that's 5 years old, and doesn't inspire much trust to me.
Even more curious is the fact that Les Hazlewood, the Apache Shiro PMC Chair, owns (ok, owned, he just sold it to Okta) Stormpath, a company made for Identity
and User Management
, so I would expect him to have provided some easy integrations between OAUTH 2.0
and Shiro
, unless this would disrupt Stormpath business plan too much I guess (which I don't believe, since the Apache Foundation won't allow this kind of behavior).
So the final questions are: