问题描述
我注意到这个问题重复了几次,但是,从所有资源来看,我仍然无法使其正常工作。
我只是想在我的 Django 应用程序中使用 Azure Active Directory 身份验证。 我正在使用 this 模块,并且按照文档中的说明配置了所有内容。
问题是 - 我不知道用户应该在哪里输入凭据 - 因为该模块只有 一个网址('auth-callback/')。我不知道如何跳转到 Microsoft 登录 html 页面。我应该使用我的 login.html 还是?
另外,我猜'auth-callback/' url 显然是一个回调 URL,它出现在登录页面之后。
我使用 django auth.views LoginView 进行登录,并使用自定义 login.html 页面。
就重定向 URI 而言,我将重定向 URI 配置为直接匹配“http://localhost:8000/microsoft/auth-callback/” url,我猜这也是它需要的方式。
主要问题是 - 我在哪里可以输入登录凭据? :)
此外,当我尝试此操作时 - 我在管理员登录页面上收到无效凭据错误:
Start site and go to /admin and logout if you are logged in.
Login as Microsoft/Office 365/XBox Live user. It will fail. This will automatically create your new user.
Login as a Password user with access to change user accounts.
快速编辑:
我注意到,当我进入控制台内的 django/admin 页面“..../admin/login”时出现此错误:
https://static/microsoft/css/login.css Failed to load resource (404)
https://static/microsoft/js/login.js Failed to load resource (404)
我在哪里可以获得这些文件?
让我们跳到我的代码:
- settings.py
INSTALLED_APPS = [
...
'django.contrib.sites','microsoft_auth',...
]
#Choped from templates
'context_processors': [
...
'microsoft_auth.context_processors.microsoft',],AUTHENTICATION_BACKENDS = [
'microsoft_auth.backends.MicrosoftAuthenticationBackend','django.contrib.auth.backends.ModelBackend',]
SITE_ID = 1
LOGIN_REDIRECT_URL = 'main:index'
logoUT_REDIRECT_URL = 'main:index'
LOGIN_URL = '/'
logoUT_URL = '/'
# AZURE AUTH CONfig
MICROSOFT_AUTH_CLIENT_ID = 'THIS IS MY CLIENT KEY'
MICROSOFT_AUTH_CLIENT_SECRET = 'THIS IS MY SECRET KEY'
MICROSOFT_AUTH_TENANT_ID = 'THIS IS MY TENANT KEY'
# include Microsoft Accounts,Office 365 Enterpirse and Azure AD accounts
MICROSOFT_AUTH_LOGIN_TYPE = 'ma'
还有我的 urls.py
...
path('microsoft/',include('microsoft_auth.urls',namespace='microsoft')),...
先谢谢大家。
解决方法
django-microsoft-auth 使用标准的 django 登录页面并对其进行扩展。我的猜测是您的自定义登录页面会干扰它。您可以尝试删除该视图并再次测试以查看登录名是否出现在 /admin 中。
文件应该来自 django-microsoft-auth 包。您可以尝试使用 pip 卸载并重新安装它