2017-09-12 73 views
0

Artifactory的OSS
5.4.6轉50406900Artifactory的訪問令牌通過承載,而不是用戶

作品試圖訪問令牌工作。
我創建的令牌...

例如,捲曲-uadmin:adminpw -X POST 「MYSERVER:8081/artifactory的/ API /安全/令牌」 -d 「用戶名= moehoward」

返回味精貌似成功...

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

我可以看到它在gui(管理 - >安全 - >訪問令牌)與「主題」=用戶(「moehoward」在上面的例子中)和一個「令牌ID」短得多,像...

f2eb693a-d4ff-4618-ba52-764dc975c497

爲了測試,我試着用文檔中的示例ping ...

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

失敗,401(錯誤憑據)。

我用gui中看到的「token id」取代了令牌,結果相同。

我再次用「moehoward」用戶的硬編碼pw進行替換,並且工作正常(以「OK」響應)。

我嘗試了「-H」身份驗證:承載「使用長字符串的方法和工作,所以我猜很長的字符串是令牌,而不是‘在GUI令牌ID’

Q值。 :任何想法爲什麼這對持票人有效「而不是用戶的名字?

回答

0

所以你是對的,它應該適用於標準身份驗證和身份驗證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(或使用其他工具)。

您使用的curl版本是什麼?從2015年或更近的任何捲曲應該罰款。

相關問題