具有多租户应用程序模式的Microsoft Azure目录



我已经搜索了一段时间了。这里有人知道如何处理下面的案子吗。

我有一个SaaS应用程序,它需要使用Azure目录的SSO。我可以用django-allauth来做。现在,我需要将此限制为与我们有订阅的租户(客户(。

为了做到这一点,我在想,如果我能从Azure目录中获得tenantId,那么我就可以进行数据库查找,看看客户是否与我们有订阅。那么,这里有人知道我该如何实现这一点吗?

这里有一个来自MS的参考,它在how to get tenantId part上并不那么清楚。

来自MS的.net的代码,用于做我想用django-allauth做的事情:MS.NET示例应用

我找到了上述问题的解决方案。每当身份验证成功时,我们都会得到一个access token,它就是Json Web Token

现在,如果你解码JWT,你会得到它附带的某些claims。密钥tidclaims之一就是tenantId

因此,就解决方案而言,我所做的是:

  • 覆盖DefaultSocialAccountAdapter
  • 在其中,我覆盖了pre_social_login并解码了access token以获得tenantId
  • 现在,我只需要一个tenantId的列表来进行验证。我从拥有该公司管理权限的用户那里得到了这一点

希望这能帮助到别人。如果需要,我很乐意补充或澄清更多的方法。

相关内容

最新更新