Я создаю веб-приложение с интерфейсом, закодированным в angular. Внешний интерфейс будет иметь доступ к множеству веб-сервисов, написанных на Java/Spring. Могут быть другие способы, которыми люди могут попытаться получить доступ к веб-сервисам, например, из настольного инструмента. Теперь мне нужно обезопасить всю инфраструктуру.
Мне нужен способ поддерживать репозиторий пользователей, т.е. предоставлять пользователей и управлять пользователями, ролями и т.д.:
- пользователи должны иметь возможность зарегистрироваться и подтвердить свою электронную почту.
- администратор должен иметь возможность утверждать пользователей и назначать им роли, удалять пользователей, обновлять их и т. д.
Мне также нужна функция единого входа. Поэтому, как только вы войдете в систему через веб-интерфейс, вы сможете беспрепятственно получить доступ к веб-сервисам на основе REST (в зависимости от вашей роли).
Мне не нужно поддерживать миллионы пользователей, поэтому предпочтительнее будет что-то легковесное.
Я ищу решения с открытым исходным кодом, которые могут:
- разрешить управление пользователями (в идеале через API на основе REST, а также иметь собственные пользовательские интерфейсы)
- разрешить функциональность единого входа для веб-интерфейса и веб-сервисов, а также, возможно, для настольных приложений, которые, возможно, потребуется реализовать.
Я пробовал Apache Syncope, который казался многообещающим, поскольку предоставлял API на основе REST. Я думаю использовать его с CAS. Однако пользовательский интерфейс по умолчанию казался неуклюжим, а CAS напрямую не поддерживает REST. Я также смотрю на Shibboleth и OpenIDM, но, похоже, ни один из них не отвечает моим требованиям напрямую.
Я буду признателен за любые предложения о том, какие варианты/стеки я могу рассмотреть для этого. В идеале для меня лучше подойдет отдельное решение или хорошо интегрированное решение на стеке Java/Spring.