首页 > 解决方案 > IdentityServer4 在身份验证后添加租户声明

问题描述

我有一个多租户场景,其中一封电子邮件可以与多个租户相关联。

因此,我配置了一个AccountChooserResponseGenerator继承自内置AuthorizeInteractionResponseGenerator类的自定义。

用户进行身份验证后,UI 会正确地将用户转移到 Account Chooser 视图,该视图列出了与电子邮件地址关联的租户。这个想法是用户现在必须选择他/她想要登录的租户,然后被重定向到该租户的 URI。

但我的问题是我不知道如何在选择租户后将该租户 ID 作为声明添加到从 IdentityServer 传递给应用程序的令牌中(多个租户可以共享相同的 URL,所以我需要一些东西在令牌中知道哪个租户有上下文)。

因此,在该AccountChooserController.TenantSelected(long tenantId)方法中,我希望能够将其添加tenantId到用户声明中,但似乎不受支持。

请告知这是否可能,以及如何?

标签: identityserver4

解决方案


调用时将租户信息放入 cookie SignInAsync- 然后您可以从配置文件服务中检索它。


推荐阅读