User management and single-sign on over REST

418 Views Asked by At

I am building a web application with front-end coded in angular. The front-end will access a bunch of web-services coded in Java/Spring. There might be other ways that people may try to access the webservices such as from a desktop tool. Now I need to secure the whole infrastructure.

I need a way to maintain a user repository, i.e. provision users and manage users, roles etc.:

  • users should be able to register themselves and have their emails verified.
  • admin should be able to approve users and assign them roles, delete users, update them etc.

I also need single sign on functionality. So once you login through the webfront end, you should be able to access the REST based webservices seamlessly (depending upon the role you have).

I do not need to support millions of users, so something light-weight will be preferable.

I am looking for open-source solution(s) that can:

  • allow user management (ideally over REST based API and have its own user interfaces as well)
  • allow single-sign-on functionality for web frontend and webservices, and potentially for desktop apps that may need to be implemented.

I have tried Apache Syncope which seemed promising as it provided REST based APIs. I am thinking of using it with CAS. However, the default UI seemed kludgy and CAS doesn't directly support REST. I am looking at Shibboleth and OpenIDM as well - but none seems to be meeting my requirement directly.

I'll appreciate any suggestions on what options/stack can I consider for this. Ideally, a single solution or a well integrated solution on Java/Spring stack might work better for me.

1

There are 1 best solutions below

0
On

you should have a look at https://github.com/openMF/mifosx for Java and Springs RESTFull Web service.

and https://github.com/openMF/community-app for there AngularJS web app.

plus you can also find a live demo link on there repository. username is mifos and password is password.

it is ment for microfinance but you can study its architecture implementation and use there core functionalities, it is really amazing.