Azure devops VST中PAT的控制和治理

Azure devops VST中PAT的控制和治理,azure-devops,Azure Devops,我们正在评估VST以供企业使用。 安全团队面临的挑战之一是缺乏对PAT(个人访问令牌)使用的控制和治理 据我所知,任何用户都可以创建一个或多个PAT,该PAT可以从外部网络用于对VST进行REST API调用(或与网络外部的工具连接),以访问信息 围绕此场景提出大量问题,并感谢您的经验中的任何见解/解决方法 您的组织是如何处理此问题的,或者是如何解决此问题的?正在寻找从安全团队获得认可的选项。有没有人向微软提出过这个问题?我相信有很多企业客户都在想他们是如何解决这个问题的 有没有办法禁止为所有

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

围绕此场景提出大量问题,并感谢您的经验中的任何见解/解决方法

  • 您的组织是如何处理此问题的,或者是如何解决此问题的?正在寻找从安全团队获得认可的选项。有没有人向微软提出过这个问题?我相信有很多企业客户都在想他们是如何解决这个问题的
  • 有没有办法禁止为所有用户创建PAT?没有看到任何选项,但有任何解决方法来强制执行此操作
  • 有没有办法获得所有用户的所有PAT列表?在VSTS中看不到任何选项,但可能是通过某种脚本实现的
谢谢更新 现在有一个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代理基础设施依赖于这些访问令牌来工作

由于个人访问令牌可以限制在其范围内,因此它们实际上比直接缓存用户的凭据更安全。他们也不能授予比用户已经拥有的权限更多的权限

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

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

此处解释了对Azure条件接收的影响:

重要的 VSTS仅在用户使用其AAD凭据登录到服务时才强制执行条件接收策略。使用个人访问令牌(PAT)、备用身份验证、OAuth和SSH密钥访问VST会绕过条件访问策略

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

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


谢谢您的回复。我所说的跨用户查询PAT的意思是什么?不是实际的令牌本身,而是关于跨用户群创建了多少PAT的信息、每个PAT的范围级别、到期日期等@ani因为PAT永远不会授予用户无法访问的更多权限或范围,这真的很重要吗?自从我上次回答Azure DevOps tea以来,它添加了一个API来列出访问令牌,这将提供准确的列表功能: