我遇到过一些开发人员,他们对在settings.xml中存储LDAP用户名/密码以访问Nexus感到不满。他们的不满部分是因为FUD,但也是因为每当LDAP密码过期时必须重新加密密码的不便(这在这里是相对频繁的)。有没有办法让Maven使用SSO / LDAP来代替呢?我们使用的工件存储库是Nexus,它的Web前端已经使用了SSO。
u0sqgete1#
您可以在settings.xml文件中启用加密,这样它就不会以纯文本的形式存在。http://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords
dly7yett2#
Nexus的最新版本启用了一个新的安全令牌功能来解决这个问题。我还没有使用过它,但它记录在这里:
r7knjye23#
在这种情况下,需要使用user tokens。默认情况下,此功能仅在Nexus的PRO版本中可用(请参阅comparison),但您可以使用“Single sign-on patch for Nexus OSS“,它提供了令牌的替代实现,而不会违反许可证:
git clone https://github.com/a-langer/nexus-sso.git cd ./nexus-sso docker compose up -d
每个用户都可以设置一个可以代替密码使用的个人令牌。令牌的创建是通过“NuGet API Key”菜单实现的,但是令牌本身毫无例外地适用于所有类型的存储库。用户令牌的使用示例:1.转到菜单“Nexus -〉管理您的用户帐户-〉NuGet API密钥”,按下“访问API密钥”。1.如果使用SSO登录,请键入您的密码或用户名,然后按“验证”。1.复制“您的NuGet API密钥”,按“关闭”和“注销”。1.接收到的令牌可以用来代替Docker、Maven等设置中的密码。
3条答案
按热度按时间u0sqgete1#
您可以在settings.xml文件中启用加密,这样它就不会以纯文本的形式存在。
http://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords
dly7yett2#
Nexus的最新版本启用了一个新的安全令牌功能来解决这个问题。我还没有使用过它,但它记录在这里:
r7knjye23#
在这种情况下,需要使用user tokens。默认情况下,此功能仅在Nexus的PRO版本中可用(请参阅comparison),但您可以使用“Single sign-on patch for Nexus OSS“,它提供了令牌的替代实现,而不会违反许可证:
每个用户都可以设置一个可以代替密码使用的个人令牌。令牌的创建是通过“NuGet API Key”菜单实现的,但是令牌本身毫无例外地适用于所有类型的存储库。用户令牌的使用示例:
1.转到菜单“Nexus -〉管理您的用户帐户-〉NuGet API密钥”,按下“访问API密钥”。
1.如果使用SSO登录,请键入您的密码或用户名,然后按“验证”。
1.复制“您的NuGet API密钥”,按“关闭”和“注销”。
1.接收到的令牌可以用来代替Docker、Maven等设置中的密码。