【问题标题】:How to authenticate in Django with Azure AD via django-microsoft-auth如何通过 django-microsoft-auth 在 Django 中使用 Azure AD 进行身份验证
【发布时间】:2021-03-26 08:32:04
【问题描述】:

我正在尝试设置一个使用 Azure Active Directory 进行身份验证的本地 Django 应用程序。我使用 django_microsoft_auth 库通过this quick start 进行后端身份验证。我在 Azure 上注册了一个新应用,并将 URI 设置为 http://localhost:8000/microsoft/auth-callback/。这是用于管理页面等其他页面的相同端口。

当我尝试通过 Azure AD 登录时,我收到以下错误消息:

AADSTS50011:请求中指定的回复 URL 与 为应用程序配置的回复 URL

只有少数其他线程存在这个问题,并且还没有使用这个库的真正解决方案。有谁知道这个问题的解决方案吗?

【问题讨论】:

    标签: python django azure azure-active-directory


    【解决方案1】:

    之前回答过similar questions不匹配的问题有一个通用的解决方案,简单有效,不易出错:

    当您访问应用程序 url 时,您将被重定向到登录页面。解码授权请求URL,你会发现redirect_uri,复制redirect_uri的值并粘贴到Azure Portal,然后重试。

    对于重定向URL,它应该以https开头,如果需要以http开头,则必须将其配置为http://localhost

    【讨论】:

    【解决方案2】:

    错误信息相当清楚。您的应用程序需要在您的 AAD 租户下注册,并且您在代码中为回复 URL/重定向 URI 输入的任何内容都需要与您在租户中设置的内容相匹配。请参考类似问题here

    【讨论】:

    • 我没有更改代码中的请求 URL,因此这两个 URL 应该与文档中描述的相同。相应地设置租户和客户端 ID 和机密。
    • 请尝试在代码中对 URL 进行编码,让我知道问题已解决。
    • URL 的传输值为 "redirect_uri=http%3A%2F%2Flocalhost%3A8000%2F%2Fmicrosoft%2Fauth-callback" 但还是不行。
    • 嗨@Hussa,上面的网址不正确。它被解码为http://localhost:8000//microsoft/auth-callback,在microsoft之前有//。请修复网址,让我们知道更新。
    • 感谢您的提示!数据库中的域名中有一个斜杠,这一定是导致问题的原因。有时,URL 在 'microsoft' 之前不包含任何 /,而 db 条目中没有尾随斜杠。但现在它工作正常!
    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    相关资源
    最近更新 更多