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

时间:2020-07-22 13:35:51

标签: azure azure-active-directory openid-connect django-allauth

我已经搜索了一段时间。这里有人知道如何处理以下情况吗?

我有一个SaaS应用,该应用需要使用Azure目录的SSO。我可以使用django-allauth来做到这一点。现在,我需要将此限制为已订阅我们的租户(客户)。

为此,我在想,如果我可以从Azure目录中获取tenantId,则可以进行数据库查找以查看客户是否已订阅我们的服务。那么,这里有人知道我该怎么做吗?

Here is a reference from MShow to get tenantId part上不清楚。

来自MS的.net代码,用于执行我想对django-allauth进行的操作:MS .NET sample app

1 个答案:

答案 0 :(得分:0)

我能够找到上述问题的解决方案。只要身份验证成功,我们就会得到一个access token的{​​{1}}。

现在,如果您解码该Json Web Token,您将获得一定的JWTclaims中的键claims之一是tid

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

  • 覆盖tenantId
  • 在其中,我覆盖了DefaultSocialAccountAdapter并解码了pre_social_login以得到access token
  • 现在,我只需要列出tenantId即可进行验证。我是从具有该公司管理员权限的用户那里获取的。

希望这对某人有帮助。如有需要,我将乐意添加或阐明该方法。