多租户微服务安全

Multi-tenant microservice security

简而言之,我正在为我的老板实施云。这个云将主要由基于 angular2 的前端应用程序使用,包括移动应用程序。这个云必须有多租户支持,这样公司才能从这项投资中获利。他不想依赖第三方供应商。

作为一个平台,我打算使用wso2产品作为云的生态系统。可以查到资料here. The one for this question is the wso2 identity server (installation on premise). you can find more information here.

微服务将基于spring cloud

出于安全考虑,我想实施 this OAuth2 模式,其中与前端共享不透明令牌,企业服务总线将此入站令牌转换为包含 RBAC 信息的身份令牌以提供无状态身份在云端。

这是不清楚的部分。为了保护前端应用程序,我需要一个身份存储。对于 Web 应用程序,最好使用电子邮件和密码组合进行登录。当我查看 OpenLDAP 或类似软件时,我倾向于查找用户名和密码组合。哪种技术最适合作为使用电子邮件和密码组合以及基于角色的访问控制和多租户的身份提供者?也许我仍然缺少一些基本的理解,任何帮助将不胜感激。

请检查智威汤逊。 OAuth 需要另一个身份验证服务器来对用户进行身份验证和授权。 JWT 是最适合微服务架构的方式。

您只需要验证 JWT 令牌的签名。检查它是否由您的任何微服务签名以验证用户(很简单)。

为了实现授权,您可以在生成令牌时在 JWT 令牌中添加角色级别信息。

这样,UI 将始终使用令牌访问您的服务,并且您将始终在所有微服务中的 JWT 令牌中获取此信息。利用 Spring 安全性提供基于角色的某些资源的访问权限。

请查看此 blog 以了解有关保护微服务的更多信息。

希望对您有所帮助。

OpenLDAP 拥有完成此任务所需的一切。您可以通过其电子邮件地址查找用户,然后可以进一步验证该用户。 Wso2is 拥有完成这项工作所需的一切。这只是简单的配置。可以查到资料here.