You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用django-allauth配置Azure AD认证失败,求正确配置方案

Django-allauth 配置Azure AD认证完整方案

一、正确的Django配置

django-allauth的Azure AD配置中,tenant_id不属于APP字典的配置项,需放在azure节点下。完整配置如下:

# settings.py
INSTALLED_APPS = [
    # 项目原有APP
    'django.contrib.auth',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.azure',  # 必须添加该提供者
]

AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
]

SITE_ID = 1

SOCIALACCOUNT_PROVIDERS = {
    'azure': {
        'tenant_id': '你的租户ID',
        'APP': {
            'client_id': '你的客户端ID',
            'secret': '你的客户端密钥',
            'key': ''  # Azure AD无需此参数,留空即可
        },
        # 可选:自定义授权范围,默认包含openid、profile、email
        'SCOPE': [
            'openid',
            'profile',
            'email',
            'User.Read'
        ],
        # 可选:设置登录成功后的跳转路径
        'LOGIN_REDIRECT_URL': '/'
    }
}

二、Azure门户关键配置

仅Django端配置无法完成认证,需在Azure AD中同步以下设置:

  • 重定向URI配置:在Azure应用注册的「身份验证」页面,添加http://你的域名/accounts/azure/login/callback/(本地测试用http://localhost:8000/accounts/azure/login/callback/)
  • API权限设置:确保已添加Microsoft Graph的User.Read权限,且完成「管理员同意」
  • 客户端密钥校验:确认生成的客户端密钥未过期,复制内容无多余空格或遗漏

三、常见问题排查

  • 出现「invalid tenant」错误:检查tenant_id是否为Azure AD的目录ID,格式是否正确
  • 出现权限不足错误:确认Azure应用的API权限已完成管理员授权
  • 回调后无响应:检查重定向URI与Django项目域名、协议(HTTP/HTTPS)完全一致

内容的提问来源于stack exchange,提问作者Shivam Chaurasia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:20:28