Skip to main content

授权 OAuth 应用

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

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

提示:必须先验证电子邮件地址,才能为 OAuth app 授权。

OAuth app 访问

OAuth apps 可以具有对 GitHub 数据的读取或写入权限 。

  • 读取权限仅允许应用查看数据。
  • 写入权限允许应用更改数据。

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

关于 OAuth 范围

范围是 OAuth app 可以申请访问公共及非公共数据的权限组。

当您想使用集成了 GitHub 的 OAuth app 时,该应用程序可让您了解需要的数据访问权限类型。 如果您授予应用程序访问权限,则应用程序将能代您执行操作,例如读取或修改数据。 例如,如果要使用请求 user:email 作用域的应用,该应用将具有对专用电子邮件地址的只读访问权限。 有关详细信息,请参阅“OAuth 应用的范围”。

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

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

申请的数据类型

OAuth apps 可以申请多种类型的数据。

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

申请更新的权限

当 OAuth apps 申请新的访问权限时,将会通知其当前权限与新权限之间的差异。

OAuth apps 和组织

当你授权 OAuth app 访问你的个人帐户时,你还会看到该授权对你所在的每个组织的影响。

  • 对于具有 OAuth app 访问限制的组织,你可以请求组织管理员批准应用程序在该组织中使用。 如果组织未批准应用程序,则应用程序只能访问组织的公共资源。 如果你是组织管理员,则可以自行批准应用程序

  • 对于没有 OAuth app 访问限制的组织,将自动授予应用程序对该组织资源的访问权限。 因此,应注意批准哪些 OAuth apps 访问你的个人帐户资源以及任何组织资源。

如果你属于启用了 SAML 单一登录 (SSO) 的任何组织,并且你过去已通过 SAML 进行身份验证为该组织创建了链接标识,则每次授权 OAuth app 时,都必须为每个组织创建一个活动的 SAML 会话。

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

延伸阅读