相关疑难解决方法(0)

我应该如何在 Django 应用程序中使用 AAD 实现用户 SSO(使用 Django Microsoft 身份验证后端模块)?

我正在开发一个安装了Django Microsoft Auth的 Django (2.2.3) 应用程序,以使用 Azure AD 处理 SSO。我已经能够按照快速入门文档使用我的 Microsoft 身份或我添加到 Django 用户表中的标准用户名和密码登录到 Django 管理面板。这一切都是开箱即用的,很好。

我的问题(真的)只是“我接下来要做什么?”。从用户的角度来看,我希望他们:

  1. 导航到我的应用程序(example.com/ 或 example.com/content) - Django 会意识到它们没有经过身份验证,并且
    • 自动将它们重定向到同一窗口中的 SSO 门户,或
    • 将他们重定向到 example.com/login,这要求他们单击一个按钮,在窗口中打开 SSO 门户(这是默认管理案例中发生的情况)
  2. 允许他们通过 Microsoft 帐户登录和使用 MFA
  3. 一旦成功将它们重定向到我的@login_required页面 (example.com/content)

目前,在我导航的根目录(example.com/),我有这个:

    def index(request):
        if request.user.is_authenticated:
            return redirect("/content")
        else:
            return redirect("/login")
Run Code Online (Sandbox Code Playgroud)

我最初的想法是简单地将其更改redirect("/login")redirect(authorization_url)- 这就是我的问题开始的地方..

据我所知,没有任何方法可以获取上下文处理器的当前实例(?)或microsoft_auth插件的后端来调用authorization_url()函数并将用户从views.py.

好的...然后我想我只是实例化MicrosoftClient生成身份验证 URL的类。这不起作用 - 不是 100% 确定为什么,但它认为这可能与MicrosoftClient后端/上下文处理器上的实际实例使用的某些状态变量与我的实例不一致的事实有关。

最后,我尝试模仿自动/admin页面的作用 - 显示一个 SSO 按钮供用户单击,并在单独的窗口中打开 …

django azure single-sign-on azure-active-directory

11
推荐指数
1
解决办法
4754
查看次数