关于安全性、身份验证和授权

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Azure DevOps采用许多安全概念来确保只有那些应该有权访问功能、功能和数据的人才有权访问。 帐户通过验证其安全凭据并授权其帐户权利访问功能或功能来访问Azure DevOps。

本文基于具有权限、访问权限和安全组Első lépések中提供的信息。 管理员受益于了解用于保护Azure DevOps的帐户类型、身份验证方法、授权方法和策略。


帐户类型

  • 用户
  • 组织所有者
  • 服务帐户
  • 服务主体
  • 作业代理

身份验证

  • 用户凭据
  • Windows 身份验证
  • 双因素身份验证 (2FA)
  • SSH 密钥身份验证
  • 个人访问令牌
  • Oauth 配置
  • Active Directory 身份验证库

授权

  • 安全组成员身份
  • 基于角色的访问控制
  • 访问级别
  • 特性标志
  • 安全命名空间 & 权限

策略

  • 隐私策略 URL
  • 应用程序连接和安全策略
  • 用户策略
  • Git 存储库和分支策略


帐户类型

  • 用户
  • 服务帐户
  • 服务主体
  • 作业代理

身份验证

  • 用户凭据
  • Windows 身份验证
  • 双因素身份验证 (2FA)
  • SSH 密钥身份验证
  • 个人访问令牌
  • Oauth 配置
  • Active Directory 身份验证库

授权

  • 安全组成员身份
  • 基于角色的权限
  • 访问级别
  • 特性标志
  • 安全命名空间 & 权限

策略

  • Git 存储库和分支策略

重要

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

云服务、Azure DevOps Services和本地服务器(Azure DevOps Server)都支持软件开发项目,从规划到部署。 Azure DevOps使用 Microsoft Azure 的平台即服务基础结构和许多 Azure 服务(包括SQL do Azure数据库)为开发项目提供可靠的全局可用服务。

若要详细了解 Microsoft 在Azure DevOps Services安全、可用、安全和专用方面执行的步骤,请参阅此白皮书,Azure DevOps Services数据保护概述

帐户

虽然感兴趣的主要帐户类型是添加到组织或项目的用户帐户,但Azure DevOps支持其他类型的帐户来执行各种操作。 其中包括以下帐户类型。

  • 组织所有者:Azure DevOps Services组织或分配的所有者的创建者。 若要了解组织所有者是谁,请参阅 查找组织所有者
  • 服务帐户:用于支持特定服务的内部Azure DevOps帐户,例如代理池服务、PipelinesSDK。 有关服务帐户的说明,请参阅 安全组、服务帐户和权限
  • 服务主体:支持内部操作的内部Azure DevOps帐户。
  • 作业代理:用于定期运行特定作业的内部帐户。
  • 第三方帐户:需要访问以支持 Web 挂钩、服务连接或其他第三方应用程序的帐户。
  • 服务帐户:用于支持特定服务的内部Azure DevOps帐户,例如代理池服务、PipelinesSDK。 有关服务帐户的说明,请参阅 安全组、服务帐户和权限
  • 服务主体:支持内部操作的内部Azure DevOps帐户。
  • 作业代理:用于定期运行特定作业的内部帐户。
  • 第三方帐户:需要访问以支持 Web 挂钩、服务连接或其他第三方应用程序的帐户。

管理帐户的最有效方法是 将它们添加到安全组

注意

Project集合管理员组的组织所有者和成员有权完全访问大多数功能和功能。

身份验证

身份验证会根据登录Azure DevOps时提供的凭据验证帐户标识。 这些系统与这些附加系统提供的安全功能集成并依赖于这些功能:

  • Azure Active Directory (Azure AD)
  • Microsoft 帐户 (MSA)
  • Active Directory (AD)

Azure AD和 MSA 支持云身份验证。 如果需要管理大量用户,我们建议Azure AD。 否则,如果你在 Azure DevOps 中拥有访问组织的小型用户群,则可以使用 Microsoft 帐户。 有关详细信息,请参阅关于使用 Azure Active Directory (Azure AD) 访问Azure DevOps

对于本地部署,建议在管理大量用户时使用 AD。 有关详细信息,请参阅 设置组以用于本地部署

身份验证方法,与其他服务和应用集成

其他应用程序和服务可以与Azure DevOps中的服务和资源集成。 若要在不多次请求用户凭据的情况下访问帐户,应用可以使用以下身份验证方法。

默认情况下,帐户或集合允许访问所有身份验证方法。 可以限制访问,但必须专门限制每个方法的访问。 拒绝访问身份验证方法时,任何应用都无法使用该方法访问帐户。 以前具有访问权限的任何应用都会收到身份验证错误,并且无法访问你的帐户。

若要详细了解如何存储凭据,请参阅用于Azure DevOps的凭据存储

若要详细了解如何选择正确的身份验证机制,请参阅 身份验证指南

授权

授权验证尝试连接的标识是否具有访问服务、功能、函数、对象或方法所需的权限。 身份验证成功后,始终会发生授权。 如果连接未经过身份验证,则在执行任何授权检查之前便会失败。 如果连接身份验证成功,则可能仍禁止特定操作,因为用户或组没有执行该操作的授权。

授权取决于分配给帐户的权限。 权限直接授予帐户,或通过安全组或安全角色的成员身份授予权限。 访问级别和功能标志还可以授予或限制对功能的访问权限。 若要详细了解这些授权方法,请参阅具有权限、访问权限和安全组的Első lépések

安全命名空间和权限

安全命名空间存储数据,以确定Azure DevOps帐户必须对特定资源执行特定操作的访问级别。 每个资源系列(如工作项或 Git 存储库)都通过唯一的命名空间进行保护。 每个安全命名空间包含零个或多个访问控制列表, (ACL) 。 每个 ACL 都包含一个令牌、一个继承标志和一组零个或多个访问控制项, (ACE) 。 每个 ACE 都包含标识描述符、允许的权限位掩码和被拒绝的权限位掩码。

若要了解详细信息,请参阅 安全命名空间和权限参考

安全策略

若要保护组织和代码,可以设置多个策略。 具体而言,可以启用或禁用以下策略:

常规

  • 隐私策略 URL:指定链接到自定义文档的 URL,用于描述如何处理内部和外部来宾数据隐私。 若要了解详细信息,请参阅 为组织添加隐私策略 URL

应用程序连接和安全策略

  • 使用Azure Active Directory (Azure AD) 租户策略将新建组织限制为仅限所需用户。 默认情况下,此策略处于关闭状态,仅在组织由Azure Active Directory提供支持时有效。 有关更多详细信息,请查看 限制组织创建

这些策略确定要向用户和应用程序授予组织的访问权限:

用户策略

  • 外部来宾访问 (仅当组织由Azure Active Directory提供支持时有效。) :启用后,可以通过“用户”页将邀请发送到非租户成员的用户的电子邮件帐户Azure Active Directory。 若要了解详细信息,请参阅 向组织添加外部用户
  • 允许团队和项目管理员邀请新用户:仅当组织受Azure Active Directory支持时有效。 启用后,团队和项目管理员可以通过 “用户” 页添加用户。 若要了解详细信息,请参阅限制来自Project和团队管理员的新用户邀请
  • 请求访问:仅当组织得到Azure Active Directory支持时有效。 启用后,用户可以请求访问资源。 请求会根据需要向管理员发送电子邮件通知,要求查看和访问。 若要了解详细信息,请参阅 向组织添加外部用户
  • 邀请GitHub用户:仅当组织不受Azure Active Directory支持时有效。 启用后,管理员可以根据用户的GitHub用户帐户从“用户”页添加用户。 若要了解详细信息,请参阅身份验证&邀请GitHub用户常见问题解答

Project-Scoped用户组

默认情况下,添加到组织的用户可以查看所有组织和项目信息和设置。 这包括查看用户列表、项目列表、计费详细信息、使用情况数据,以及通过组织设置访问的更多内容。

若要限制所选用户(如利益干系人、Azure Active Directory来宾用户或特定安全组的成员),可以启用“限制用户可见性”和“协作”功能,使其具有组织的特定项目预览功能。 启用后,添加到Project作用域用户组的任何用户或组都采用以下方式进行限制:

  • 只能访问组织设置“概述”和“项目”页。
  • 只能连接和查看他们已添加到其中的项目, (请参阅 将用户添加到项目或团队
  • 只能选择已显式添加到他们所连接到的项目的用户和组标识。

若要了解有关 将用户可见性和协作限制为特定项目的详细信息,请参阅 “管理组织”、“限制项目的用户可见性”等。 若要启用该功能,请参阅 “管理”或“启用功能”。

Git 存储库和分支策略

若要保护代码,可以设置多个 Git 存储库和分支策略。 若要了解详细信息,请参阅以下文章。

Azure Repos和Azure Pipelines安全性

由于存储库和生成和发布管道带来了独特的安全挑战,因此本文中讨论的其他功能除外。 若要了解详细信息,请参阅以下文章。

后续步骤