instructionsから、私はdjangoのリモートユーザー認証を有効にしました(SETTINGS.py
の関連するスニペットを参照)。 Active Directoryはリモート認証に使用されています。Django RemoteUserBackendはユーザー名をクリーニングしていません
# snippet from SETTINGS.py
MIDDLEWARE_CLASSES = (
...
'django.contrib.auth.middleware.RemoteUserMiddleware',
...
)
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.RemoteUserBackend',
'django.contrib.auth.backends.ModelBackend',
]
ユーザーは、ユーザーがまだ存在していないので、Djangoはユーザを作成しますが、最初にログインしたときに、予想通り。ただし、ユーザーが作成されるとき、ユーザーのusername
フィールドは<domain>\<username>
形式(たとえば、"Domain1\PersonA"
)です。
username
からdomain
を削除しようとする試みでは、ジャンゴdocs以下、私はRemoteUserBackend
クラス内clean_username()
方法を更新しました:
def clean_username(self, username):
return username.split('\\')[1]
しかし、新しく、まだusername
が誤っ<domain>\<username>
に設定されているuser
オブジェクトを作成しましたフォーマット。
私には何が欠けていますか?すなわち `ジャンゴ -
のように行う必要があると思いますモジュール "django.contrib.auth.backends.MyRemoteUserBackend"は "MyRemoteUserBackend"属性/クラスを定義していません – NickBraunagel
"django.contrib.auth.backends.MyRemoteUserBackend"は以下のように定義されています。間違っています。MyRemoteUserBackendを定義したパスを置く必要があります。あなたのapp/mybackend.pyの中にtを入れてください。その後、それは 'app.mybackend.MyRemoteUserBackend' – itzMEonTV
Gotchaになります。なぜカスタムバックエンドを他のdjangoのバックエンドと同じ場所に置くことができないのか分かりません。どうもありがとう。 – NickBraunagel