跳至主要内容

授权 OAuth 应用

你可以使用 OAuth 将你的 GitHub 身份连接到第三方应用程序。在授权 OAuth 应用程序时,你应确保信任该应用程序,查看其开发者是谁,以及查看该应用程序想要访问的信息类型。

当 OAuth 应用程序想要通过你在 GitHub.com 上的帐户来识别你的身份时,你会看到一个页面,其中包含该应用程序的开发者联系信息以及正在请求的特定数据列表。

提示:你必须验证你的电子邮件地址才能授权 OAuth 应用程序。

OAuth 应用程序访问

OAuth 应用程序可以读取写入你的 GitHub 数据。

  • 读取访问仅允许应用程序查看你的数据。
  • 写入访问允许应用程序更改你的数据。

提示:我们建议你定期查看已授权的集成。删除一段时间未使用的任何应用程序和令牌。有关详细信息,请参阅“查看你已授权的 OAuth 应用程序”。

关于 OAuth 范围

范围是权限的命名组,OAuth 应用程序可以请求访问公共数据和非公共数据。

当你想使用与 GitHub 集成的 OAuth 应用程序时,该应用程序会让你知道需要哪种类型的访问权限。如果你授予该应用程序访问权限,那么该应用程序将能够代表你执行操作,例如读取或修改数据。例如,如果你想使用请求user:email范围的应用程序,那么该应用程序将具有对你的私人电子邮件地址的只读访问权限。有关详细信息,请参阅“OAuth 应用程序的范围”。

注意:目前,你无法将源代码访问范围设为只读。

每个用户/应用程序/范围组合发行的令牌数量限制为十个,每小时创建的令牌速率限制为十个。如果应用程序为同一用户和同一范围创建了十个以上的令牌,则具有相同用户/应用程序/范围组合的最旧令牌将被撤销。但是,达到每小时速率限制不会撤销你的最旧令牌。相反,它将在浏览器中触发重新授权提示,要求用户仔细检查他们授予你的应用程序的权限。此提示旨在为应用程序陷入的任何潜在无限循环提供一个中断,因为应用程序在一小时内向用户请求十个令牌几乎没有理由。

请求的数据类型

OAuth 应用程序可以请求多种类型的数据。

数据类型说明
提交状态你可以授予应用程序访问权限,以报告你的提交状态。提交状态访问权限允许应用程序确定构建是否针对特定提交成功。应用程序无权访问你的代码,但它们可以针对特定提交读取和写入状态信息。
部署部署状态访问权限允许应用程序确定针对公共和私有存储库的特定提交的部署是否成功。应用程序无权访问你的代码。
GistGist 访问权限允许应用程序读取或写入你的公共和私有 Gist。
挂钩Webhooks 访问权限允许应用程序读取或写入你管理的存储库上的挂钩配置。
通知通知访问权限允许应用程序读取你的 GitHub 通知,例如对问题和拉取请求的评论。但是,应用程序仍然无法访问你的存储库中的任何内容。
组织和团队组织和团队访问权限允许应用程序访问和管理组织和团队成员资格。
个人用户数据用户数据包括你的用户资料中找到的信息,例如你的姓名、电子邮件地址和位置。
存储库存储库信息包括贡献者的姓名、你创建的分支以及存储库中的实际文件。应用程序可以在用户范围内请求访问公共或私有存储库。
删除存储库应用程序可以请求删除你管理的存储库,但它们无权访问你的代码。
项目访问用户和组织项目。应用程序可以请求读/写或只读访问权限。

请求更新的权限

当 OAuth 应用程序请求新的访问权限时,它们会通知你其当前权限和新权限之间的差异。

OAuth 应用程序和组织

当你为你的个人帐户授权 OAuth 应用程序时,你还会看到授权将如何影响你成为其成员的每个组织。

  • 对于具有OAuth 应用程序访问限制的组织,你可以请求该组织的所有者批准该应用程序在该组织中使用。如果组织不批准该应用程序,那么该应用程序将只能访问该组织的公共资源。如果你是一位组织所有者,你可以自己批准该应用程序

  • 对于没有OAuth 应用程序访问限制的组织,该应用程序将自动获得授权,可以访问该组织的资源。因此,你应该谨慎选择哪些 OAuth 应用程序可以访问你的个人帐户资源以及任何组织资源。

如果你属于启用了 SAML 单点登录 (SSO) 的任何组织,并且你过去通过 SAML 身份验证为该组织创建了关联身份,那么每次授权 OAuth 应用程序时,你都必须为每个组织拥有一个活动的 SAML 会话。

注意:如果你在授权的 OAuth 应用程序或 GitHub 应用程序访问受 SAML 保护的组织时遇到问题,你可能需要从授权的 GitHub 应用程序授权的 OAuth 应用程序页面撤销该应用程序,访问该组织以进行身份验证并建立一个活动的 SAML 会话,然后尝试通过访问该应用程序重新授权该应用程序。

进一步阅读