Alfresco LDAP の「電子メール アドレスによるログイン」という難問を解決するにはどうすればよいですか?

Alfresco LDAP の「電子メール アドレスによるログイン」という難問を解決するにはどうすればよいですか?

私は、LDAP-AD 認証モデルを使用するように Alfresco をインストール (Windows 上) しました。ユーザーがユーザー名だけでログインすると、アカウントが適切に作成され、アクセスが許可されます。ただし、電子メール アドレスでログインすると、「壊れた」アカウントにログインします。ユーザーのコンテンツにはアクセスできず、実際のアカウントとして表示されません。

電子メール アドレス ログインを単純なユーザー名 ログインにリダイレクトするか、電子メール アドレス ログインを完全に拒否するかのどちらかでも問題ありません。

これ以上ユーザーを追加する必要がない場合は、synchronization.autoCreatePeopleOnLogin = false構成でこれらの電子メールの部分的なアカウントを防止することができるようです。ただし、私たちの環境では、新しいユーザーが頻繁に自動追加される必要があり (そのたびに構成を微調整してサービスをリセットするのはすぐに面倒になるほどで​​す)、LDAP-AD 構成では自動作成が必要です (手動アカウント作成オプションはグレー表示されています)。

他のアイデアはありますか?

編集 - 何かが欠けているのではなく、私が行った何かが原因であるように思われるので、設定を追加します...

### Active Directory Integration ###
authentication.chain=passthru1:passthru,ldap1:ldap-ad
passthru.authentication.sso.enabled=false
passthru.authentication.allowGuestLogin=false
passthru.authentication.authenticateCIFS=false
passthru.authentication.authenticateFTP=false
passthru.authentication.servers=domain.com
passthru.authentication.domain=DOMAIN
passthru.authentication.useLocalServer=false
passthru.authentication.defaultAdministratorUserNames=specialadminaccount
passthru.authentication.connectTimeout=5000
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=TCPIP,NETBIOS
ldap.authentication.active=false
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.userNameFormat=%s
ldap.authentication.allowGuestLogin=false
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://domain.com:389
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal= DOMAIN\\specialadminaccount
ldap.synchronization.java.naming.security.credentials=password
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.groupDifferentialQuery=(&(objectclass=nogroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(&(objectclass=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(& (objectclass=user)(!(modifyTimestamp<\={0})))
ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupSearchBase=cn\=users,dc=domain,dc=com
ldap.synchronization.userSearchBase=cn\=users,dc=domain,dc=com
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss’.0Z’
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=Nogroup
ldap.synchronization.personType=user
ldap.synchronization.groupMemberAttributeName=member
synchronization.synchronizeChangesOnly=false

答え1

次の投稿もご覧くださいhttps://forums.alfresco.com/forum/installation-upgrades-configuration-integration/configuration/ldap-authentication-ad-email#comment-155600何が起こっているのか見るために。

問題は、Alfresco が DN 検索を実行しても、オブジェクトを検索せず、パスワードを使用してログインしようとすることです。

このようなシナリオでは、ldap で dn がどのように表示されるかについて特に注意する必要があります。

スクリーンショットを見ると、他のすべての属性は同じであるにもかかわらず、dnの識別が異なり、ログインできるのは[メールアドレス]しかし、他のログインは機能しませんでした。

プロパティの変更は以下のとおりです

ldap.authentication.userNameFormat=mail=%s,ou=people,dc=organisation,dc=com
ldap.synchronization.userIdAttributeName=mail

ここに画像の説明を入力してください

関連情報