如何从 GitLab 检查个人访问令牌的范围(权限)?给定一个个人访问令牌,获取该令牌允许的所有范围。
问问题
288 次
2 回答
1
到 2022 年,检查给定 PAT(个人访问令牌)的范围是不可能的。但是,可以列出给定令牌后面用户的所有 PAT 的范围。
换句话说,如果给定令牌 G 背后的用户拥有令牌 T1 和 T2,则可以检查 T1 和 T2 的范围,但不能可靠地确定 G == T1 还是 G == T2 等。
curl
使用and打印第一个未撤销令牌的范围jq
:
$ GITLAB_TOKEN="glpat-DefineYourOwn"
$ curl -sS -f -H "PRIVATE-TOKEN: ${GITLAB_TOKEN}" -H "Content-Type:application/json" "https://gitlab.com/api/v4/personal_access_tokens" | jq -j "map(select(.revoked == false)) | .[0].scopes | join(\" \")"
样本输出:
read_user read_api
唉,上面的命令不知道用户的其他令牌提供的令牌。还可以通过过滤令牌名称来进一步限制选择:
"map(select((.revoked == false) and (.name == \"${EXPECTED_TOKEN_NAME_VAR}\")))
于 2022-01-06T05:03:35.887 回答
0
不幸的是,GitLab 目前不提供此功能。如果这是自我管理的实例,您仍然可以从后端/控制台找到它,但对于 GitLab.com,此功能不可用。您可以在这里做的最好的事情是尝试当前定义的范围,例如read_user
, API
, read_registry
, sudo
GitLab 10.2 允许以系统中的任何用户身份执行 API 操作(如果经过身份验证的用户是管理员)。read_repository
,write_repository
使用您现有的令牌。
这听起来也是一个公平的要求。请考虑在此处为此创建功能提案
于 2019-09-18T03:41:11.893 回答