Skip to main content
Skip to content

授权 OAuth 应用

您可以使用 OAuth 将您的GitHub身份关联到第三方应用程序。 授权应用程序 OAuth app时,应确保信任应用程序、查看其开发者,并查看应用程序想要访问的信息类型。

当某个 OAuth app 想通过你在 GitHub 上的账户识别你的身份时,你会看到一个页面,上面列有该应用开发者的联系信息以及所请求的具体数据列表。

提示

必须先 验证电子邮件地址 ,然后才能授权 OAuth app。

OAuth app 访问

OAuth apps可以对您的__ 数据具有_读取_或GitHub权限。

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

提示

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

关于 OAuth 权限范围

_作用域_是一组已命名的权限,OAuth app 可请求这些权限以访问公开和非公开数据。

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

注意

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

令牌具有与令牌所有者相同的访问资源和对这些资源执行操作的能力,并且还受到授予令牌的任何范围或权限的限制。 令牌无法向用户授予额外访问权限功能。 例如,应用程序可以创建配置有 admin:org 作用域的访问令牌,但如果应用程序的用户不是组织所有者,则不会向应用程序授予对组织的管理访问权限。

每个用户/应用程序/作用域组合签发的令牌数量有限,速率限制是每小时创建十个令牌。 如果应用程序为同一用户和同一作用域创建 10 个以上的令牌, GitHub 则撤消具有相同用户/应用程序/范围组合的现有令牌之一,顺序如下:

  1. 从未使用过的最早令牌,该令牌是在一分钟前创建的。 在最后一分钟创建的令牌通常受到保护,以便应用程序有时间使用它刚刚创建的令牌。
  2. 如果没有此类令牌,但至少使用了一个令牌,则使用最近最少的令牌。
  3. 如果从未使用过令牌,则为最早的令牌,即使它在最后一分钟内创建。

达到每小时速率限制不会撤销最早的令牌。 相反,它会在浏览器中触发重新授权提示,要求用户仔细检查他们向你的应用授予的权限。 此提示旨在中断应用陷入的任何潜在的无限循环,因为应用几乎没有理由在一小时内向用户请求十个令牌。

申请的数据类型

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

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

申请更新的权限

请求新的访问权限时 OAuth apps ,他们将通知你其当前权限与新权限之间的差异。

OAuth apps 和组织

为个人帐户授权 OAuth app 时,还将看到授权将如何影响你所属的每个组织。

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

  • 对于 _不受_OAuth app 访问限制的组织,应用程序将自动获得访问该组织资源的权限。 因此,对于你批准哪些 OAuth apps 访问你的个人帐户资源以及任何组织资源,你都应当谨慎。

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

注意

如果已获授权的 OAuth app 或 GitHub App 在访问受 SAML 保护的组织时遇到问题,您可能需要在 Authorized GitHub AppsAuthorized OAuth apps 页面中撤销该应用的授权,访问该组织以进行身份验证并建立有效的 SAML 会话,然后通过访问该应用来尝试重新对其授权。

其他阅读材料