我们如何存储Azure DevOps Services凭据

Azure DevOps Services

重要

自 2020 年 3 月 2 日开始,Azure DevOps 不再支持备用凭据身份验证。 如果你仍在使用备用凭据,强烈建议你切换到更安全的身份验证方法(例如个人访问令牌)。 了解详细信息

凭据安全性

Microsoft 致力于确保项目无一例外地保持安全可靠。 在 Azure DevOps 中,项目受益于多层安全和治理技术、操作实践和合规性策略。 我们在静态和传输中强制实施数据隐私和完整性。 此外,对于 Azure DevOps 存储的凭据或机密,我们遵循以下做法。 若要详细了解如何选择正确的身份验证机制,请参阅 身份验证指南

个人访问令牌 (PAC)

  • 我们存储 PAT 的哈希
  • 原始 PAT 在服务器端以 32 字节的形式在内存中生成,这些字节通过 RNGCryptoServiceProvider 随机生成,然后作为 base-32 编码字符串与调用方共享。 此值未存储
  • PAT 哈希是使用密钥保管库中存储的 64 字节对称签名密钥在服务器端作为原始 PAT 的 HMACSHA256Hash 生成的内存中
  • 哈希存储在数据库中

保护 shell (SSH) 密钥

  • 存储封闭式组织 ID 和 SSH 公钥的哈希
  • 原始公钥由调用方通过 SSL 直接提供
  • SSH 哈希是使用密钥保管库中存储的 64 字节对称签名密钥作为组织 ID 和原始公钥的 HMACSHA256Hash 在服务器端的内存中生成的
  • 哈希存储在数据库中

OAuth 凭据 (JWT)

  • 这些令牌作为完全自描述的 JSON Web 令牌颁发 (JWT) ,不会存储在我们的服务中
  • 使用密钥保管库中存储的证书验证已颁发并呈现给服务的 JWT 中的声明