在使用IdentityServer的多租户解决方案中,多租户的知识应该在哪里生效?

时间:2017-03-13 04:19:44

标签: oauth-2.0 multi-tenant identityserver3

我正在积极学习Identity Server,目前正在使用IdentityServer3开发一个新的多租户项目。在经过几周的开发之后,我就被提前完成项目,并负责微调后端架构。根据我的研究以及该项目目前的布局,我不确定这是否正确。

目前,有两个主要项目,一个IdentityServer3项目和一个应用程序项目。到目前为止听起来不错。

但是,租户和组不住在Identity项目中,他们目前住在Application项目中,应用程序项目非常了解租户并有效地委派Identity Server应该执行的一些“Auth”工作正在做(我认为)。更重要的是,Application项目还拥有自己的实体和用户存储,并且有一些逻辑可以使Identity项目和Application项目之间的用户存储保持同步。当应用程序想要显示配置文件pic或电子邮件时,它会从本地用户存储中检索它,该存储有望与Identity项目用户存储区保持同步。

这对我来说似乎不合时宜。如果我们将IdentityServer视为真正的“作为服务的身份验证”,那么不应该在身份项目中识别身份信息,那将包括多租户部分?而不是直接依赖于用户实体,应用程序应该只知道令牌和声明,以这种方式检索用户元数据(如电子邮件,个人资料图片等的配置文件范围),这意味着不需要在项目之间保持两个用户存储“同步”。

我的直觉是将所有用户/多租户实体移到Identity Server上,并重构应用程序以依赖于令牌/声明,而不是直接使用用户或租户实体。然后介绍一些新的范围,以揭示我们选择向客户端应用程序公开的小租户元数据。我觉得这是一个更“安全第一”的设计,可能会适当地分离问题,但我是Identity Server的新手,并不确定我是否在正确的轨道上。

如果我在这里思考,或者可能有错误的想法,有人可以告诉我吗?非常感谢!

0 个答案:

没有答案