Hi All,

Awhile back JB created a Syncope issue for Syncope to support OAuth2. I'd like to continue the discussion about it and understand better what can it mean for Syncope to become OAuth2-aware.

So Syncope is a generic user identity management system. It offers a front-end to DB systems where the user information is stored and allows a controlled access to this data.

OAuth2 is primarily about a resource owner allowing a controlled access to a 3rd party client (web server, mobile, etc) to this owner's account/data. OAuth2 can be big enough but ultimately is is AuthorizationServer (for supporting redirection based flows) + AccessTokenServer (for issuing tokens in exchange for grants) + some generic/core token validation.

OAuth2 server requires storing the info about human users that have logged in into OAuth2 Server and authorized a 3rd party clients. 3rd party clients need to be registered so these registrations need to be kept too. Transient code grants as well as access tokens and or refresh tokens need to be linked to the 3rd party registrations, human user logins, and also kept in DB. OAuth2 server that provides AuthorizationServer will most likely need SSO supported.

I can think of several ways Syncope might support OAuth2.

One is where Syncope provides an authorized access to some of its functionality. It is not clear how it would work because AFAIK Syncope has no notion of user-specific Syncope accounts for managing user identities specific to those accounts only.

Another option is where Syncope becomes a generic OAuth2 server, orthogonally/in addition to its current functionality. Its current functionality (user identity management) can be a part of OAuth2 server itself. One option here is to use a generic CXF code to support it.

I'm not sure what would be the best option for Syncope (as far its road map is concerned), and if Syncope should keep doing the identity management only.

Comments are welcome.

Thanks, Sergey

Reply via email to