3

sonarqube 経由で LDAP に接続しようとすると、次のエラーが発生しました。

2016.09.13 09:35:16 DEBUG web[osplLdapUsersProvider] ユーザー sonartester の詳細を要求しています 2016.09.13 09:35:16 DEBUG web[osplLdapSearch] 検索: LdapSearch{baseDn=cn=Users,dc= mydomain ,dc=com, scope =subtree, request=(&(objectClass=user)(sAMAccountName={0})), parameters=[sonartester], attributes=[mail, cn]} 2016.09.13 09:35:16 DEBUG web[osplLdapContextFactory] ​​LDAP の初期化中コンテキスト {java.naming.provider.url=ldap:// myip :389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=simple、java.naming.security.sasl.realm= mydomain.com, java.naming.referral=follow} 2016.09.13 09:35:16 DEBUG web[osplLdapUsersProvider] [LDAP: エラー コード 1 - 000004DC: LdapErr: DSID-0C090728、コメント: この操作を実行するには、正常なバインドが必要です、データ 0、v2580] javax.naming.NamingException: [LDAP: エラー コード 1 - 000004DC: LdapErr: DSID-0C090728、コメント: この操作を実行するには、接続で正常にバインドを完了する必要があります。接続、データ 0、v2580]

....

2016.09.13 09:35:16 DEBUG web[osplLdapUsersProvider] ユーザー sonartester が 2016.09.13 で見つかりません 09:35:16 エラー web[ossaRealmAuthenticator] 認証中のエラー org.sonar.api.utils.SonarException: ユーザーの詳細を取得できませんSonartester in 2016.09.13 09:35:16 DEBUG web[osplLdapUsersProvider] User sonartester not found in 2016.09.13 09:35:16 ERROR web[ossaRealmAuthenticator] 認証中のエラー org.sonar.api.utils.SonarException: 詳細を取得できませんのユーザー sonartester の場合

Users OU にあるユーザー SONARTEST と my-group のメンバーを作成しました。このグループは、Users OU にもあります。これが私の設定です:

sonar.security.realm=LDAP
sonar.authenticator.createUsers=true
ldap.url=ldap://myip:389
ldap.bindDn.=cn=someusername,ou=Users,o=mydomain
ldap.bindPassword.=somepassword
ldap.authentication=simple
ldap.realm=mydomain.com

ldap.user.baseDn=cn=Users,dc=mydomain,dc=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=cn

ldap.group.baseDn=ou=Users,dc=mydomain,dc=com
ldap.group.request=(&(objectClass=my-group)(member={dn}))
ldap.group.idAttribute=sAMAccountName

バインドに使用されるユーザーには、必要なすべての権限があり、Users OU にもあります。合流点で同じユーザーを使用してldapに接続しましたが、すべてうまくいきました。誰かが私を助けることができれば素晴らしい。タクス


ニコラスさん、お返事ありがとうございます

ドットを削除すると、開始できないサービスの再起動中に別のエラーが発生します。

2016.09.13 15:46:00 INFO  web[org.sonar.INFO] Security realm: LDAP
2016.09.13 15:46:00 INFO  web[o.s.p.l.LdapSettingsManager] User mapping: LdapUserMapping{baseDn=cn=Users,dc=mydomain,dc=com, request=(&(objectClass=user)(sAMAccountName={0})), realNameAttribute=cn, emailAttribute=mail}
2016.09.13 15:46:01 INFO  web[o.s.p.l.LdapSettingsManager] Group mapping: LdapGroupMapping{baseDn=ou=Users,dc=mydomain,dc=com, idAttribute=sAMAccountName, requiredUserAttributes=[dn], request=(&(objectClass=mygroup)(member={0}))}
2016.09.13 15:46:01 DEBUG web[o.s.p.l.LdapContextFactory] Initializing LDAP context {java.naming.provider.url=ldap://myip:389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.security.principal=cn=someusername,ou=Users,o=mydomain, com.sun.jndi.ldap.connect.pool=true, java.naming.security.authentication=simple, java.naming.security.sasl.realm=mydomain.com, java.naming.referral=follow}
2016.09.13 15:46:02 INFO  web[o.s.p.l.LdapContextFactory] Test LDAP connection: FAIL
2016.09.13 15:46:02 ERROR web[o.a.c.c.C.[.[.[/]] Exception sending context initialized event to listener instance of class org.sonar.server.platform.PlatformServletContextListener
java.lang.IllegalStateException: Unable to open LDAP connection
        at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:146) ~[na:na]
        at org.sonar.plugins.ldap.LdapRealm.init(LdapRealm.java:64) ~[na:na]
        at org.sonar.server.user.SecurityRealmFactory.start(SecurityRealmFactory.java:84) ~[sonar-server-6.0.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_91]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_91]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91]
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89) ~[picocontainer-2.15.jar:na]
        at org.sonar.core.platform.ComponentContainer$1.start(ComponentContainer.java:320) ~[sonar-core-6.0.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.behaviors.Stored.start(Stored.java:110) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009) ~[picocontainer-2.15.jar:na]
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767) ~[picocontainer-2.15.jar:na]
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:141) ~[sonar-core-6.0.jar:na]
        at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:84) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.platformlevel.PlatformLevel4.start(PlatformLevel4.java:687) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.Platform.start(Platform.java:216) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.Platform.startLevel34Containers(Platform.java:190) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.Platform.doStart(Platform.java:113) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.Platform.doStart(Platform.java:99) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.platform.PlatformServletContextListener.contextInitialized(PlatformServletContextListener.java:44) ~[sonar-server-6.0.jar:na]
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) [tomcat-embed-core-8.0.32.jar:8.0.32]
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) [tomcat-embed-core-8.0.32.jar:8.0.32]
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) [tomcat-embed-core-8.0.32.jar:8.0.32]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) [tomcat-embed-core-8.0.32.jar:8.0.32]
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) [tomcat-embed-core-8.0.32.jar:8.0.32]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_91]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_91]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
Caused by: javax.naming.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903C5, comment: AcceptSecurityContext error, data 52e, v2580]
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3135) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3081) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2883) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2797) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:319) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:192) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:210) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:153) ~[na:1.8.0_91]
        at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:83) ~[na:1.8.0_91]
        at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) ~[na:1.8.0_91]
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) ~[na:1.8.0_91]
        at javax.naming.InitialContext.init(InitialContext.java:244) ~[na:1.8.0_91]
        at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154) ~[na:1.8.0_91]
        at org.sonar.plugins.ldap.LdapContextFactory.createInitialDirContext(LdapContextFactory.java:95) ~[na:na]
        at org.sonar.plugins.ldap.LdapContextFactory.createBindContext(LdapContextFactory.java:83) ~[na:na]
        at org.sonar.plugins.ldap.LdapContextFactory.testConnection(LdapContextFactory.java:142) ~[na:na]
        ... 33 common frames omitted
2016.09.13 15:46:02 ERROR web[o.a.c.c.StandardContext] One or more listeners failed to start. Full details will be found in the appropriate container log file
2016.09.13 15:46:02 ERROR web[o.a.c.c.StandardContext] Context [] startup failed due to previous errors
2016.09.13 15:46:02 WARN  web[o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
 java.lang.Object.wait(Native Method)
 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
 com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43)
2016.09.13 15:46:02 INFO  web[o.a.c.h.Http11NioProtocol] Starting ProtocolHandler ["http-nio-0.0.0.0-9000"]
2016.09.13 15:46:02 INFO  web[o.s.s.a.TomcatAccessLog] Web server is started
2016.09.13 15:46:02 INFO  web[o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2016.09.13 15:46:02 WARN  web[o.s.p.ProcessEntryPoint] Fail to start web
java.lang.IllegalStateException: Webapp did not start
        at org.sonar.server.app.EmbeddedTomcat.isUp(EmbeddedTomcat.java:84) ~[sonar-server-6.0.jar:na]
        at org.sonar.server.app.WebServer.isUp(WebServer.java:47) [sonar-server-6.0.jar:na]
        at org.sonar.process.ProcessEntryPoint.launch(ProcessEntryPoint.java:105) ~[sonar-process-6.0.jar:na]
        at org.sonar.server.app.WebServer.main(WebServer.java:68) [sonar-server-6.0.jar:na]
2016.09.13 15:46:02 INFO  web[o.a.c.h.Http11NioProtocol] Pausing ProtocolHandler ["http-nio-0.0.0.0-9000"]
2016.09.13 15:46:03 INFO  web[o.a.c.h.Http11NioProtocol] Stopping ProtocolHandler ["http-nio-0.0.0.0-9000"]
2016.09.13 15:46:03 INFO  web[o.a.c.h.Http11NioProtocol] Destroying ProtocolHandler ["http-nio-0.0.0.0-9000"]
2016.09.13 15:46:03 INFO  web[o.s.s.a.TomcatAccessLog] Web server is stopped
2016.09.13 15:46:03 INFO  app[o.s.p.m.Monitor] Process[es] is stopping
2016.09.13 15:46:04 INFO   es[o.s.p.StopWatcher]  Stopping process
2016.09.13 15:46:04 INFO   es[o.elasticsearch.node]  [sonar-1473767147543] stopping ...
2016.09.13 15:46:04 INFO   es[o.elasticsearch.node]  [sonar-1473767147543] stopped
2016.09.13 15:46:04 INFO   es[o.elasticsearch.node]  [sonar-1473767147543] closing ...
2016.09.13 15:46:04 INFO   es[o.elasticsearch.node]  [sonar-1473767147543] closed
2016.09.13 15:46:04 INFO  app[o.s.p.m.Monitor] Process[es] is stopped
<-- Wrapper Stopped

IP への telnet とポート 389 の動作


より単純なパスワード (特殊文字なし) を使用して新しいユーザーを作成しました。エラーは次のように変わりました。

原因: javax.naming.AuthenticationException: [LDAP: エラー コード 49 - 80090308: LdapErr: DSID-0C0903C5、コメント: AcceptSecurityContext エラー、データ 52e、v2580]

4

2 に答える 2

1

部分を変更しました

ldap.bindDn =cn=someusername,ou=ユーザー,o=mydomain

ldap.bindDn =someusername@mydomain.com

そしてそれは働いた

于 2016-10-12T09:41:02.173 に答える
0

創刊

これはあなたのエラーの本当の問題です:

この操作を実行するには、接続で正常にバインドを完了する必要があります

LDAP プラグインのドキュメントによると、これらは SonarQube がサーバーにバインドするために設定する必要があるプロパティです: ldap.bindDnおよびldap.bindPassword

しかし、あなたの設定を見てください:

ldap.bindDn.=cn=someusername,ou=Users,o=mydomain
ldap.bindPassword.=somepassword

そこにそれらの末尾のドットが表示されますか?それらを削除すると、バインド操作がより適切に機能するはずです。


2 番目の問題 Active Directory が詳細なエラーを返しています。

[LDAP: エラー コード 49 - 80090308: LdapErr: DSID-0C0903C5、コメント: AcceptSecurityContext エラー、データ 52e、v2580]

error code 49( data 52e) は興味深い部分です。たとえば、LDAP エラー コードを少しググると、次のようになります。

49 - LDAP_INVALID_CREDENTIALS - バインド操作中に次のいずれかが発生したことを示します: クライアントが誤った DN またはパスワードを渡したか、有効期限が切れているためにパスワードが正しくないか、侵入者の検出によりアカウントがロックされたか、または別の同様の理由。詳細については、データ コードを参照してください。

結論: 資格情報を修正します。

于 2016-09-14T12:08:31.973 に答える