テスト環境で SonarQube 5.6 へのアップグレードを実行しました。現在の Sonar 5.2 は、LDAP 認証を使用して本番環境で正常に動作します。
AD 資格情報でログインできますが、ローカル管理者アカウントを使用してアクセス許可を確認すると、グループ メンバーシップがありません。
また、Sonar の元の LDAP アカウントに加えて、ユーザー名だけでなく、username@domain.com という構文を持つ 2 つ目のアカウントができました。ユーザー名アカウントには、期待どおりに元のグループ メンバーシップがまだありますが、新しく作成された username@domain.com にはありません。
ソナーでグループを手動で割り当てようとすると、次のログイン時にグループがクリアされます。これは意図されていると思います。
ログのデバッグを有効にしましたが、実際には Active Directory から memberOf グループが検出されますが、それらが自分のアカウントにリンクされていません。グループはまだ Sonar に存在します。
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.WindowsUsersProvider] Requesting details for user: nico
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Getting details for user: nico
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.AdConnectionHelper] Getting active directory bind string for domain: Domain
2016.06.08 11:20:55 DEBUG web[o.s.p.l.w.AdConnectionHelper] Active directory bind string for the domain Domain: LDAP://Domain/DC=domain,DC=com
2016.06.08 11:20:56 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Details for user nico: UserDetails{name=Nico (nico), email=Nico@domain.com, userId=nico@Domain}
2016.06.08 11:20:56 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Authenticating user: nico
2016.06.08 11:21:03 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Getting groups for user: Domain\nico
2016.06.08 11:21:03 DEBUG web[o.s.p.l.w.WindowsAuthenticationHelper] Groups for the user Domain\nico : [Sonar Admins@Domain, Sonar Users@Domain]
2016.06.08 11:21:03 DEBUG web[o.s.s.u.NewUserNotifier] User created: nico@Domain. Notifying NewUserHandler handlers...
ログについて気付いたのは、使用されているユーザー名プロパティが一貫していないように見えることです。ある時点で「認証中のユーザー: nico」と表示され、別の箇所では「Domain\Nico のグループを取得中」と表示され、最後に「作成されたユーザー Nico@domain.com」という 3 つの異なるユーザー名が使用されています。
これは私が制御できる/制御すべきものですか? または、これは SonarQube の問題でしょうか。
フィードバックをお待ちしております。
ニコ
これは私の LDAP 構成です
# LDAP configuration
# General Configuration
sonar.security.realm: LDAP
sonar.security.savePassword: true
sonar.authenticator.createUsers: true
sonar.security.localUsers: admin,sonar-build
ldap.url: ldap://ipadress:389
ldap.bindDn: CN=SonarUser,OU=Service Accounts,DC=domain,DC=com
ldap.bindPassword: {aes}xxx
# User Configuration
ldap.user.baseDn: DC=domain,DC=com
ldap.user.request: (&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute: cn
ldap.user.emailAttribute: mail
# Group Configuration
ldap.group.baseDn: DC=domain,DC=com
ldap.group.request: (&(objectClass=group)(memberUid={uid}))