ユーザー名とパスワードを取得し、そのユーザーを認証するためにLDAPサーバーを使用しようとする単純なフォームを使用しています。ダッシュボードの実際のポータルはPHPで書かれていますが、私はdjango(とpyldap)を使って書き直す必要があります。私のsettings.pyファイルには、以下の設定があります(私が働いている会社が使用しているので、URIを変更しました)。私のviews.pyでDjangoとLDAPを使用して認証できません
# LDAP Settings
# Set backends
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
)
# LDAP Server
AUTH_LDAP_SERVER_URI = 'ldaps://eddie.xy.zzzzz.com:3268'
AUTH_LDAP_START_TLS = True
# Search settings
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=xy,dc=zzzzz,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
、私は次のコード(物事をテストするために)
from django.shortcuts import render
from django.contrib.auth import authenticate
from django_auth_ldap.backend import LDAPBackend # Greyed out
def login(request):
if request.method == 'POST':
# Get info from POST request
usr = request.POST['username']
pas = request.POST['password']
# Authenticate the user using provided data
user = authenticate(username=usr, password=pas)
print(str(user))
if user is not None:
return render(request, 'dashboard/index.html', {})
else:
print("The username and password were incorrect.")
return render(request, 'dashboard/error.html', {})
elif request.method == 'GET':
return render(request, 'dashboard/login.html', {})
login.htmlとは、メソッド= "ポストで、その中のフォームを持つ単純なHTMLコードが含まれているを持っています"action ="/login/"。 Index.htmlには単純な「成功」メッセージが含まれ、error.htmlには単純な「間違った」メッセージが含まれています。メッセージ。私は私が作った形で私の(働く)証明書を使っていますが、私は成功メッセージを得ることができません。
at = LDAPBackend()
user = authenticate(username=usr, password=pas)
の代わりに、上記のコードで使用される認証方式:私も試した何
は、これでした。残念ながら、私は同じ動作をしています。私の欠点はどこですか?私のミスはどこですか?