Authelia is an open-source authentication/authorization server with 2FA/SSO
Personally I think of Authelia and Keratin as really good projects in the don't-build-auth-into-your-apps-ever-again space. If auth isn't already built into your app gateway/mesh/proxy, then these services might be something worth dropping alongside.<p>A few more projects in this space:<p>- Keycloak (you won't get fired for picking this)[0]<p>- CloudFoundry's UAA[1]<p>- Gluu [2]<p>- ORY (Hydra + friends)[3]<p>- Keratin [4]<p>- OpenUnison [5]<p>- Dex[6]<p>- Netlify's GoTrue[7]<p>All of these solutions are a bit different but here are some of the axes:<p>- Whether or not they function as an OAuth provider<p>- Whether they're centered around application-user-login via mechanisms like email/password, application auth, or SSO<p>- Whether or not they serve as a proxy to another down-the-line OAuth provider (Dex, GoTrue)<p>- GUI availability<p>- F/OSS-ness (basically all of them have very permissive licenses)<p>[EDIT] More entries for this list in another comment @ <a href="https://news.ycombinator.com/item?id=26411457" rel="nofollow">https://news.ycombinator.com/item?id=26411457</a><p>[0]: <a href="https://www.keycloak.org/" rel="nofollow">https://www.keycloak.org/</a><p>[1]: <a href="https://github.com/cloudfoundry/uaa" rel="nofollow">https://github.com/cloudfoundry/uaa</a><p>[2]: <a href="https://gluu.org/docs/gluu-server/4.2/" rel="nofollow">https://gluu.org/docs/gluu-server/4.2/</a><p>[3]: <a href="https://github.com/ory/hydra#what-is-ory-hydra" rel="nofollow">https://github.com/ory/hydra#what-is-ory-hydra</a><p>[4]: <a href="https://keratin.github.io/authn-server/" rel="nofollow">https://keratin.github.io/authn-server/</a><p>[5]: <a href="https://github.com/tremolosecurity/openunison" rel="nofollow">https://github.com/tremolosecurity/openunison</a><p>[6]: <a href="https://github.com/dexidp/dex" rel="nofollow">https://github.com/dexidp/dex</a><p>[7]: <a href="https://github.com/netlify/gotrue" rel="nofollow">https://github.com/netlify/gotrue</a>