VSTS中PAT的控制和治理

时间:2018-05-31 11:08:22

标签: azure-devops

我们正在评估VSTS以供企业使用。 安全团队面临的挑战之一是缺乏对PAT(个人访问令牌)使用的控制和治理 据我了解,任何用户都可以创建一个或多个PAT,并且可以从外部网络使用此PAT来进行REST API调用(或与网络外的工具连接)到VSTS以访问信息。

有关此方案的大量问题以及您体验中的任何见解/解决方法均值得赞赏

  • 您的组织如何处理此问题或解决了此问题?寻找从安全团队获得支持的选项。有没有人曾与这个问题陈述联系微软?我确信有很多企业客户,他们想知道他们是如何解决这个问题的。
  • 有没有办法禁止为所有用户创建PAT?看不到任何选项,但任何解决方法都可以强制执行此操作。
  • 有没有办法获取所有用户的所有PAT列表?在VSTS中看不到任何选项,但可能通过某种类型的脚本

由于

1 个答案:

答案 0 :(得分:1)

更新

现在有一个API列出了哪些PAT已经创建,以及管理员代表其用户撤销PAT的选项:

GET https://vssps.dev.azure.com/{organization}/_apis/tokenadmin/personalaccesstokens/{subjectDescriptor}?api-version=5.0-preview.1

响应:

{
  "value": [
    {
      "clientId": "00000000-0000-0000-0000-000000000000",
      "accessId": "00000000-0000-0000-0000-000000000000",
      "authorizationId": "952858d3-7084-4635-964e-3c2a57645185",
      "hostAuthorizationId": "00000000-0000-0000-0000-000000000000",
      "userId": "bb5bb6c8-ef0a-400f-8987-92b3674d2043",
      "validFrom": "2018-07-19T00:00:00",
      "validTo": "2018-07-19T00:00:00",
      "displayName": null,
      "scope": "app_token",
      "targetAccounts": null,
      "token": null,
      "alternateToken": null,
      "isValid": true,
      "isPublic": false,
      "publicData": null,
      "source": null
    },
    ....

此处有更多详情:

要撤销其他用户的令牌,请使用:

POST https://vssps.dev.azure.com/{organization}/_apis/tokenadmin/revocations?api-version=5.0-preview.1
[
  {
    "authorizationId": "532c7fe6-74f8-408b-8051-4abb73dca491"
  }
]

请参阅:

可以选择关闭基本凭据/备用身份验证和SSH凭据,这些凭据不如个人访问令牌安全。没有选项可以关闭个人访问令牌。我想主要原因是Git和VSTS Agent基础设施依赖这些访问令牌来工作。

由于个人访问令牌的范围受到限制,因此它们实际上比直接缓存用户凭证更安全。他们也永远不会提供比用户更多的权限。

您无法查询所有用户的所有个人访问令牌,这将是一个巨大的安全违规。正是因为你试图限制对这些令牌的访问。

您可以停用OAuth和基本凭据。这不会阻止个人访问令牌:

enter image description here

此处解释了对Azure条件访问的影响:

  

重要

     

当用户使用其AAD凭据登录服务时,VSTS仅强制执行条件访问策略。使用个人访问令牌(PAT),备用身份验证,OAuth和SSH密钥访问VSTS可以绕过条件访问策略。

请记住,当一个人使用Azure条件访问执行身份验证然后离开时,建筑物将能够使用该凭据,直到它过期。最后,安全来自教育和监控,而不是试图将所有东西放在密闭容器中。

VSTS会保留一个活动日志,其中包括哪些用户已执行哪些操作。该日志将包含用户的IP地址。这样您至少可以监控操作。

enter image description here