无法在具有 Active Directory 用户的 Sonatype Nexus 上有效地应用角色

Can't apply roles effectively on Sonatype Nexus with Active Directory users

我正在尝试使用 Sonatype Nexus OSS 2.11.2-06 通过 Active Directory 对用户进行身份验证。正在关注 https://books.sonatype.com/nexus-book/reference/ldap-sect-mapping-active-directory.html :

  1. 我已经设置了“LDAP 配置”设置,以便 "Check Authentication" 成功,当我单击“检查用户映射”它显示了我在“用户映射测试结果”上的 Active Directory 测试用户,并显示了与用户所属的组相对应的角色列表。 不错.
  2. 我已经为这些角色设置了相同的权限,我已经用其他本地测试用户(使用 Nexus Web 界面创建的用户)进行了测试。 好的.
  3. 当我在“用户”页面上列出“所有授权用户”时,它会显示我的 Active Directory 测试用户正确的角色(AD 组),Realm=LDAPStatus=Active太棒了.

但是当我尝试使用 Maven ("mvn deploy") 部署工件时部署失败ReasonPhrase: Unauthorized:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project mvntest: Failed to deploy artifacts: Could not transfer artifact edu.ub.test:mvntest:jar:1.0-20151204.135744-4 from/to repotest00rw (https://xxxxxxx.ub.edu:yyyy/nexus/content/repositories/repotest00): Failed to transfer file: https://xxxxxxx.ub.edu:yyyy/nexus/content/repositories/repotest00/edu/ub/test/mvntest/1.0-SNAPSHOT/mvntest-1.0-20151204.135744-4.jar. Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]

如果我使用其中一个本地测试用户(使用 Nexus Web 界面创建的用户)(在“.m2/settings.xml”上设置)具有相同的角色(如 Web UI 所示)我可以毫无问题地部署工件。

我已经为所有记录器设置了“DEBUG”,但我找不到任何可以帮助我的东西,看起来我被当作一个匿名用户:

2015-12-04 14:49:26,969+0100 DEBUG [qtp-9795081-67] anonymous org.sonatype.sisu.goodies.eventbus.internal.DefaultEventBus - Event 'RepositoryItemEventRetrieve(sender="repotest00" [id=repotest00], repotest00:/edu/ub/test/mvntest/1.0-SNAPSHOT/maven-metadata.xml)' fired
2015-12-04 14:49:26,970+0100 DEBUG [qtp-9795081-67] anonymous org.sonatype.nexus.proxy.maven.maven2.M2Repository - repotest00 retrieveItem() :: FOUND repotest00:/edu/ub/test/mvntest/1.0-SNAPSHOT/maven-metadata.xml
2015-12-04 14:49:26,999+0100 DEBUG [qtp-9795081-58]  org.apache.shiro.session.mgt.DefaultSessionManager - Unable to resolve session ID from SessionKey [org.apache.shiro.web.session.mgt.WebSessionKey@601f6170].  Returning null to indicate a session could not be found.
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - No authorization found (header or request parameter)
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.sonatype.nexus.content.internal.ContentAuthenticationFilter - Attempting to authenticate Subject as Anonymous request...
2015-12-04 14:49:27,000+0100 DEBUG [qtp-9795081-58] *UNKNOWN org.apache.shiro.realm.AuthenticatingRealm - Looked up AuthenticationInfo [anonymous] from doGetAuthenticationInfo

有人可以帮我吗?

非常感谢!

/天使

从您的描述来看,您似乎还没有创建外部角色映射。在 http://books.sonatype.com/nexus-book/reference/ldap-sect-external-role-mapping-config.html

查看详情

此映射的目的是将外部(例如 LDAP)组成员资格与 Nexus 内部、存储库管理特定角色相匹配。

您必须将您希望能够部署的用户的角色映射到对您的目标存储库具有写入权限的 Nexus 角色。

哦,感谢 Sonatype 支持团队 我们意识到我错过了 8.2. Enabling the LDAP Authentication Realm 的步骤。

我刚刚设置好,一切都按预期运行。

也感谢你试图帮助我,曼弗雷德。

此致,

/Ángel