我们的用户需要权限才能创建服务挂钩作为 PR 集成的一部分。 用户创建具有以下权限的 PAT:代码(读和写)和服务连接(读、查询和管理)。 它可以为具有项目管理员权限的用户无缝工作,但我们不想为所有人设置此功能。 我们如何才能只分配创建服务挂钩所需的特定权限?
我假设 ServiceHooks 的命名空间 ID:cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 但作为项目管理员,当我尝试为调用此命名空间的存储库上的组添加允许位时,我的访问被拒绝。
我们怎样才能实现这一目标?
az devops 安全权限显示 --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject (group-ID) --token (token to repo)
错误: 访问被拒绝:(某些 ID)需要对资源(存储库)具有以下权限 要执行此操作:查看订阅
希望看到权限,因为我的用户是项目管理员。
要查看和编辑项目中 Service Hook 的订阅,用户应具有“
Edit subscriptions
”和“View subscriptions
”权限。默认情况下,只有 PA(项目管理员)拥有这些权限。请参阅此处。
这两个权限无法在Azure DevOps的Web UI上设置。要将它们直接授予其他用户,需要 PCA(项目集合管理员)运行“az devops 安全权限”CLI 或安全 REST API。
PCA 是组织级别管理员。 PA 是项目级别管理员。由于运行这些与安全相关的 CLI/API 是 Azure DevOps 组织级别的操作,因此只有 PCA 可以做到这一点。 PA 无权访问。请参阅此处。
要使用安全相关的 CLI 向其他用户授予“
Edit subscriptions
”和“View subscriptions
”权限,可以运行以下命令:
下面的命令可以得到
namespace-id
的ServiceHooks
是'cb594ebe-87dd-4fc9-ac2c-6a10a4c92046
'。
az devops security permission namespace list --org https://dev.azure.com/{Organization Name} --output table
运行以下命令以显示
ServiceHooks
命名空间中可用权限的详细信息。
az devops security permission namespace show --namespace-id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --output table
运行以下命令可列出
ServiceHooks
命名空间以及与指定用户 {Email Address}
关联的令牌。
az devops security permission list --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject {Email Address} --output table
运行以下命令以显示指定令牌、
ServiceHooks
命名空间和指定用户的权限。
az devops security permission show --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject {Email Address} --token {token} --output table
运行以下命令,授予指定用户“
Edit subscriptions
”和“View subscriptions
”权限。
az devops security permission update --allow-bit 1 --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject {Email Address} --token {token} --output table
az devops security permission update --allow-bit 2 --id cb594ebe-87dd-4fc9-ac2c-6a10a4c92046 --subject {Email Address} --token {token} --output table