我正在尝试使用 django-allauth 设置 django azure 广告身份验证,但目前文档中没有用于设置 Azure 广告的正确文档。
我有 client_id、secret 和tenant_id。我尝试了一些配置,但似乎不起作用。 配置1:
SOCIALACCOUNT_PROVIDERS = {
'azure': {
'APP': {
'client_id': 'client_id',
'secret': 'secret',
'key': ''
}
}
}
配置2:
SOCIALACCOUNT_PROVIDERS = {
'azure': {
'APP': {
'client_id': 'client_id',
'secret': 'secret',
'key': '',
'tenant_id': '',
}
}
}
I have experimented few more configuration but its seems to be not working
https://django-allauth.readthedocs.io/en/latest/providers.html
最佳答案
正如您所说,此集成缺乏文档。我能够让 Azure SSO 在单租户应用程序的设置中使用以下配置。首先,确保您在 INSTALLED APPS
中声明了以下所有内容:
"allauth",
"allauth.account",
"allauth.socialaccount",
"allauth.socialaccount.providers.microsoft",
请注意,缺少 .azure
作为提供程序。我的测试显示,使用 .microsoft
作为提供程序可与我在 Azure AD 中注册的单租户应用程序配合使用,而 .azure
则不能,并且会登录时抛出错误。您没有指定您的应用是单租户还是 Multi-Tenancy 。
其次,声明您的配置如下:
SOCIALACCOUNT_PROVIDERS = {
'microsoft': {
'tenant': secrets.AZURE_AD_TENANT_ID,
'client_id': secrets.AZURE_AD_CLIENT_ID,
}
}
secrets.
只是我的自定义 secret 管理器,重要的部分是语法和您传递的 ID。这里的“租户”不是您的订阅租户 ID,而是显示在 Azure AD 中已注册应用程序的“概述”边栏选项卡中的租户 ID。 client_id
位于同一概述区域,在撰写本文时位于“对象 ID”上方。请注意上面缺少 APP: {}
。一开始这也让我很困惑。我从this GitHub post中得到了一条线索.
最后,要使其正常工作,您必须在 Django 管理内的 django-allauth 管理面板中创建“社交应用程序”记录。为应用程序提供任何您想要的名称,并在此处添加 Azure AD 注册应用程序中的“客户端 ID”和“应用程序 key ”。
关于django-allauth Azure 广告配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73885989/