【问题标题】:Artifactory access token works via Bearer, not userArtifactory 访问令牌通过 Bearer 工作,而不是用户
【发布时间】:2018-02-21 08:48:55
【问题描述】:

神器 OSS
5.4.6 版本 50406900

试图让访问令牌工作。
我创建了令牌...

例如curl -uadmin:adminpw -X POST "myserver:8081/artifactory/api/security/token" -d "username=moehoward"

返回的 msg 看起来很成功...

{
  "scope" : "member-of-groups:readers api:*",
  "access_token" : <very-long-string> 
  "expires_in" : 3600,
  "token_type" : "Bearer"
}

我可以在 gui (admin -> Security -> Access Tokens) 中看到它,“Subject” = 给用户(上例中的“moehoward”),并且“Token ID”要短得多,有些东西喜欢...

f2eb693a-d4ff-4618-ba52-764dc975c497

为了测试,我尝试使用文档中的示例 ping...

curl -umoehoward:<very-long-string> myserver:8081/artifactory/api/system/ping 

失败并返回 401(错误凭据)。

我将令牌替换为我在 gui 中看到的“令牌 ID”,结果相同。

我再次替换为“moehoward”用户的硬编码密码,并且可以正常工作(以“OK”响应)。

我尝试了使用长字符串的“-H”Authentication: Bearer“方法并且有效。所以我猜很长的字符串是令牌而不是gui中的“令牌ID”。

问:知道为什么这适用于 Bearer”而不是用户名吗?

【问题讨论】:

    标签: artifactory


    【解决方案1】:

    所以你是对的,这应该适用于标准身份验证和身份验证 HTTP 标头。

    我在具有相同版本Artifactory OSS 5.4.6 的服务器上进行了测试,以下工作正常

    注入适当的变量

    export SERVER=server-artifactory
    export APIKEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    

    为用户 moehoward 创建和使用访问令牌

    curl -u "admin:$APIKEY" -X POST "http://$SERVER/artifactory/api/security/token" -d "username=moehoward" -d "scope=member-of-groups:readers" > token.log
    export TOKEN=`cat token.log | jq -r '.access_token'`
    curl -u "moehoward:$TOKEN" "http://$SERVER/artifactory/api/system/ping"
    curl -H "Authorization: Bearer $TOKEN" "http://$SERVER/artifactory/api/system/ping"
    

    我从最后两个命令中得到“OK”。你能准确地运行这些命令并报告回来吗?

    我个人在使用旧版本的 curl 时遇到过同样的问题(承载标头工作,标准用户凭据不工作)。显而易见的解决方法是使用 Bearer,更复杂的解决方法是升级 curl(或使用其他工具)。

    您使用的 curl 版本是什么? 2015 年或更近的任何卷曲都应该可以正常工作。

    【讨论】:

    • Curl 中存在一个已知错误,将密码截断为 255 个字符。这已在 2013 年的 7.33.0 中修复。如果碰巧使用 RedHat Enterprise Linux(以其过时的工具而闻名),它已在 7.1 中修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多