ACCESS:如何解决在ACCESS配置中设置“max-expiry”值后错误“未能生成令牌”

伊诺崔
2023-01-22十一10

主题:

如何解决在7.28.0以下的Artifactory版本的Access Configuration中配置“max-expiry”值时的错误。

影响版本:7.28.0以下的手工版本

描述

生成Access Token时,默认过期时间为31536000秒(365天)。属性中的“default-expiry”值可以更改默认的过期时间访问配置文件($ JFROG_HOME / artifactory / var / etc /访问/ access.config.import.yml)。

为了不允许为非管理员用户生成不可过期的令牌,并限制最大到期时间,您可以配置“max-expiry”值。

例如,

令牌:
Default-expiry: 20000 //如果没有定义,将使用Default-expiry value (315360000s)
Max -expiry: 30000 //将不允许创建不可到期的令牌,并将令牌的最大到期限制为设置的值。定义时必须遵循' max-expiry ' >= ' default-exipry '。

但是,在7.28.0以下的Artifactory版本中,上述更改可能会导致以下问题。

方法创建新令牌时用户配置文件页面时,他们可能会遇到以下错误“未能生成令牌”消息。

用户添加图片

即使使用REST API调用创建令牌也会失败,并出现以下消息:

curl -H "授权:持有人eyJ2ZXI…Lxg3ox5KMgQ" -XPOST http://localhost:8082/access/api/v1/tokens -H "内容-类型:应用程序/json" -d '{"用户名":"tuser"}'

"error": "invalid_request",
"error_description": "创建不可过期令牌被禁用。"请求到期=null,默认到期=20000,最大到期=30000"


         

决议

要解决此问题,请将Artifactory升级到7.28.0及以上版本。您可以从以下网站下载Artifactory的最新版本在这里

使用Artifactory的最新版本,我们可以从User Profile页面生成令牌。

用户添加图片

同样,通过REST API调用,我们可以为用户生成令牌。

curl -H "授权:持有人eyJ2ZX…n5zNA579vtw" -XPOST http://localhost:8082/access/api/v1/tokens -H "Content-Type: application/json" -d '{"username":"tuser"}'


"token_id": "83a9001c-5009-42ca-91a3-5ebd34c44c5f",
"access_token": "eyJ2Z…dnOBw",
"expires_in": 20000,
scope: " application -permissions/user",
"token_type": "持有者"