我已经搜索了一段时间了。这里有人知道如何处理下面的案子吗。
我有一个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
。密钥tid
的claims
之一就是tenantId
。
因此,就解决方案而言,我所做的是:
- 覆盖
DefaultSocialAccountAdapter
- 在其中,我覆盖了
pre_social_login
并解码了access token
以获得tenantId
- 现在,我只需要一个
tenantId
的列表来进行验证。我从拥有该公司管理权限的用户那里得到了这一点
希望这能帮助到别人。如果需要,我很乐意补充或澄清更多的方法。