LDAP認証モジュールdjango-auth-ldapに問題があります。このサイトの設定例を使用しています:http://packages.python.org/django-auth-ldap/
私は2つのことをしたいと思います:
1)LDAPに対する認証:現時点では、LDAPデータベースは空であり、何も追加していません。実際、その方法がわかりません。ただし、djangoデータベースに保存されている古いログイン/パスワードを使用して、djangoベースのサイトにログインすることはできます。何故ですか?これを無視するべきではありません。代わりに、LDAPユーザー/パスワードを使用してログインプロセスを実行するべきではありませんか?つまり、LDAPデータベースが空の場合、ログインのすべてが失敗するべきではありませんか?ただし、そうではありません。djangoはdjango-auth-ldapモジュールを完全に無視しているようです。
2)LDAPをdjangoと同期します(その逆ではありません)。既存のユーザーデータベースを使用して認証を行いたくありません。Djangoで新しいユーザーを作成し、これらのユーザーをLDAPに伝播して、他のサービス(私の場合はopenfireサーバー)で共有できるようにしたいと考えています。django-auth-ldapでそれをどのように行いますか?
これが私の設定のコピー/貼り付けです:
# Baseline configuration.
AUTH_LDAP_SERVER_URI = "127.0.0.1"
AUTH_LDAP_BIND_DN = "cn=admin,dc=nodomain"
AUTH_LDAP_BIND_PASSWORD = "admin"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=nodomain",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
# Set up the basic group parameters.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=nodomain",
ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)"
)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")
# Only users in this group can log in.
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=nodomain"
# Populate the Django user from the LDAP directory.
AUTH_LDAP_USER_ATTR_MAP = {
"first_name": "givenName",
"last_name": "sn",
"email": "mail"
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
"employee_number": "employeeNumber"
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active,ou=django,ou=groups,dc=nodomain",
"is_staff": "cn=staff,ou=django,ou=groups,dc=nodomain",
"is_superuser": "cn=superuser,ou=django,ou=groups,dc=nodomain"
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
# Keep ModelBackend around for per-user permissions and maybe a local
# superuser.
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
申し訳ありませんが、LDAPについてはよくわかりません。今朝インストールしたばかりなので、質問は単純に聞こえるかもしれません。更新して複数のサーバー間で共有できる一元化されたユーザーベースが必要です。
どうもありがとうございました。