我正在創建一個Django項目,該項目需要通過SSL進行HTTP基本認證。用戶通過我公司的LDAP服務器進行身份驗證。這正在使用https://docs.djangoproject.com/en/1.3/howto/auth-remote-user/中描述的方法。Django:通過自定義RemoteUserBackend路由用戶創建
我已經創建了一個django.contrib.auth.backends.RemoteUserBackend
的子類,它定義了一個configure_user()
方法,該方法根據從LDAP獲取的信息填充各種用戶字段。當用戶使用HTTP基本認證登錄時,這很好。
我的項目還要求應用的用戶能夠輸入用戶名到表單中。提交表單時,我希望執行相當於User.objects.get_or_create(username=username)
的操作,並讓我的自定義RemoteUserBackend.configure_user()
填充LDAP中所有缺少的字段。這不符合要求,取而代之的是獲得現有用戶(好)或創建只有用戶名字段設置(壞)的用戶。
我該如何獲得所需的行爲?我寧願不必翻出並用自定義模型替換Django的身份驗證模型,但可以在必要時完成。目標Django版本是1.3,但可以更改。