我们拥有一个大型的分布式多租户系统,具有各种帐户: -管理员和后台用户帐户 - 客户账户 -收银员帐户(租户:每个客户租户有一个或多个收银员)
所有此帐户或多或少都共享相同的生命周期(帐户创建,某些资源的授予,拒绝帐户,密码提醒...) 但是它们并没有在系统的所有应用程序中使用:例如,某些帐户将用于特定的应用程序或仅用于两个应用程序。 此外,我们的系统应该有可能与CMS建立桥梁以进行客户管理,否则可以在一天之内针对ldap授权后台用户帐户...
所以问题是:我们正在寻找对权利和授权服务进行建模的最佳方法。 一种想法是创建一种服务来管理任何类型的所有类型的帐户:这是一种将我们的系统模块化的SOA方法 一种想法是创建不同的服务:也许更多是一种面向微服务的思维方式...
您对此有何看法?我正在寻找有关这两种不同方法的建议和反馈,或者是我们从未考虑过的替代方法...
答案 0 :(得分:0)
如果您正在寻找任何开源解决方案来解决问题,可以查看keyclaok。
Keycloak也位于Thoughtworks Technology RADAR中。 这是一个非常有前途的解决方案,并且还具有LDAP和Multi Tenancy支持。结帐keycloak features。
也可以使用类似ForgeRock的付费解决方案。
在这里收到有关SOA或微服务实现方式的反馈(您将获得有关此方面的不同反馈/建议)
如果您有一项服务来照顾访问和授权管理,以及其他调查用户详细信息的服务,那就更好了。如果您要为不同的帐户提供不同的服务,请注意,拥有一项用于维护帐户的服务仍被视为微服务方法,因为只有一项专用服务可以执行一组任务。
您可以具有用于用户信息管理的User-Service和用于处理用户访问和授权的authService。 check。