通过SSO进行Maven设置?

hlswsv35  于 2022-12-29  发布在  Maven
关注(0)|答案(3)|浏览(231)

我遇到过一些开发人员,他们对在settings.xml中存储LDAP用户名/密码以访问Nexus感到不满。他们的不满部分是因为FUD,但也是因为每当LDAP密码过期时必须重新加密密码的不便(这在这里是相对频繁的)。
有没有办法让Maven使用SSO / LDAP来代替呢?我们使用的工件存储库是Nexus,它的Web前端已经使用了SSO。

u0sqgete

u0sqgete1#

您可以在settings.xml文件中启用加密,这样它就不会以纯文本的形式存在。
http://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords

dly7yett

dly7yett2#

Nexus的最新版本启用了一个新的安全令牌功能来解决这个问题。我还没有使用过它,但它记录在这里:

r7knjye2

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等设置中的密码。

相关问题