# 使用公司代理限制对 GitHub.com 的访问

将代理配置为阻止人员使用个人帐户访问 GitHub.com。

如果你使用 Enterprise Managed Users，则可以阻止你的网络上的用户使用非企业成员的帐户向 GitHub.com 进行身份验证。 这有助于降低公司数据暴露给公众的风险。

若要强制实施此限制，可将网络代理或防火墙配置为将标头注入到用户对 GitHub.com 的 Web 和 API 请求中。

此功能需要一个外部防火墙或代理。 GitHub 支持 无法协助对此类外部工具进行设置或故障排除。 有关支持范围的详细信息，请参阅“[关于GitHub支持](/zh/enterprise-cloud@latest/support/learning-about-github-support/about-github-support#scope-of-support)”。

## 启用访问限制

此功能默认未启用。 企业所有者可以为企业启用该功能。

1. 导航到您的企业。 例如，从 GitHub.com 上的 [公司](https://github.com/settings/enterprises?ref_product=ghec\&ref_type=engagement\&ref_style=text) 页面。
2. 在页面顶部，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“Settings”\*\*\*\*\*\*\*\*。
3. 在 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“设置”下，单击“身份验证安全”\*\*\*\*\*\*\*\*。
4. 在“企业访问限制”部分，选择“启用企业访问限制”。

## 先决条件

* 必须在 具有托管用户的企业 上使用 GitHub.com。
  * 如果所有用户的用户名都附加了你的企业短代码，则说明你正在使用 具有托管用户的企业。
  * 如果你使用 带有数据驻留权的 GitHub Enterprise Cloud，则你的企业驻留在 GHE.com 的专用子域上，因此不需要标头来区分流向企业资源的流量。
* 若要强制实施该限制，所有流量都必须流经一个代理或防火墙。 该代理或防火墙必须：
  * 能够拦截和编辑流量，通常称为“中断并检查”代理
  * 支持任意标头注入
* 你的企业所有者已启用此功能。

## 查找标头

若要强制实施该限制，可将一个标头注入到所有流向特定受支持的终结点的流量中。 该标头采用以下格式。

```text
sec-GitHub-allowed-enterprise: ENTERPRISE-ID
```

企业所有者可以确定要在你的企业的标头中使用的正确企业 ID。

1. 导航到您的企业。 例如，从 GitHub.com 上的 [公司](https://github.com/settings/enterprises?ref_product=ghec\&ref_type=engagement\&ref_style=text) 页面。
2. 在页面顶部，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“Settings”\*\*\*\*\*\*\*\*。
3. 在 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“设置”下，单击“身份验证安全”\*\*\*\*\*\*\*\*。
4. 在“企业访问限制”部分，查找您企业的标题。

## 使用标头

为获得最佳结果，请将代理配置为将该标头注入到所有流向以下受支持的终结点的流量中\*\*\*\*。

| 终结点                   | 用途                        |
| --------------------- | ------------------------- |
| `github.com/*`        | 流向 GitHub.com 的 Web 流量    |
| `api.github.com/*`    | REST 和 GraphQL API 请求     |
| `*.githubcopilot.com` | 特定 GitHub Copilot 功能所需的流量 |

这将阻止你的网络上的人员使用不为你的企业所拥有的用户帐户访问这些终结点。 除了此功能之外，你还可以通过设置 IP 允许列表来阻止来自你的网络外的流量。 请参阅“[使用 IP 允许列表限制企业网络的流入流量](/zh/enterprise-cloud@latest/admin/configuring-settings/hardening-security-for-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list)”。

> \[!NOTE] 创建支持票证需要对 `github.com/login` 的访问权限。 若要确保拥有支持权利的用户可以请求帮助，你可能希望免除这些用户的限制。

## 为多个企业启用访问限制

企业所有者可以跨多个企业帐户强制实施限制。

1. 为每个企业帐户启用该功能。 请参阅 [“启用访问限制](#enabling-access-restrictions)”。
2. 将标头注入到发往某些受支持终结点的所有流量中。 该标头采用以下格式。

```text
sec-GitHub-allowed-enterprise: ENTERPRISE1-ID, ENTERPRISE2-ID, ENTERPRISE3-ID ... ENTERPRISE20-ID.
```

企业所有者可以为每个企业找到要在标头中使用的正确企业 ID。 请参阅 [“查找标头](#finding-the-header)”。

> \[!NOTE] 我们目前支持标头中最多包含 20 个唯一企业 ID。

### 取消对特定用户的限制

你可能希望取消对特定用户的限制，这些用户需要使用个人帐户为开放源代码资源做出贡献，或者在出现问题时可能需要创建支持票证。 若要处理此问题，必须将网络配置为仅为要限制的用户注入该标头。

选项包括：

* 网络隔离：创建一个注入标头的“工作”网络，以及一个不注入标头的“开放源代码”网络\*\*\*\*。 将对“开放源代码”网络的访问权限限制在需要它的用户。
* 设备分组：如果代理或防火墙已经过身份验证，则你可以收集一组不需要标头的用户，并有选择地将他们排除在注入之外\*\*\*\*。

## 不支持的功能

由于此限制仅适用于通过添加企业标头的代理发送的请求，因此特定 GitHub 功能不支持阻止用户访问或使用其个人帐户的限制。 若要阻止网络上的用户访问这些功能，需要进行下面所述的更改。

| 功能                | 关联的终结点             | 备注                                                                                                                                                                                                                                                                 |
| ----------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| GitHub Pages      | `github.io`        | 这通常是用户生成的无法接受数据的内容。 你可能不想限制访问。                                                                                                                                                                                                                                     |
| GitHub Codespaces | `github.dev`       | 若要限制访问，请完全阻止该终结点。                                                                                                                                                                                                                                                  |
| SSH 访问权限          | GitHub.com 上的端口 22 | 若要限制访问，请完全阻止该终结点。                                                                                                                                                                                                                                                  |
| 基于 HTTPS 的 SSH    | `ssh.github.com`   | 若要限制访问，请完全阻止该终结点。                                                                                                                                                                                                                                                  |
| GitHub 托管的运行器     | 各种                 | 若要强制实施特定路由，请使用 Azure 专用网络。 请参阅“[关于企业中的 GitHub 托管的运行器的 Azure 专用网络](/zh/enterprise-cloud@latest/admin/configuring-settings/configuring-private-networking-for-hosted-compute-products/about-azure-private-networking-for-github-hosted-runners-in-your-enterprise)”。 |
| 自托管运行程序           | 各种                 | 若要强制实施特定路由，请使用代理服务器。 请参阅“[将代理服务器与运行器一起使用](/zh/enterprise-cloud@latest/actions/how-tos/manage-runners/self-hosted-runners/use-proxy-servers)”。                                                                                                                      |

### 不需要限制的终结点

以下终结点不支持或不需要限制，因为它们仅提供而不接收数据。

* `*.githubusercontent.com`
* `*.githubassets.com`
* GitHub.com 上的 Websocket 流量

## 限制的工作原理是什么？

对于包含企业标头的流量，当用户尝试使用非企业成员的用户帐户（或与用户帐户关联的令牌）通过 Web、Git 或 API 访问 GitHub.com 时：

* 用户会看到一条带有 `403` 状态代码的错误消息。 请参阅[显示给被阻止用户的错误](#errors-displayed-to-blocked-users)。
* `business.proxy_security_header_unsatisfied` 事件将记录在企业审核日志中。 由于隐私原因，这些日志事件将没有 `actor` 字段，但将具有 `actor_ip` 字段（如启用）（请参阅“[在企业审核日志中显示 IP 地址](/zh/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/displaying-ip-addresses-in-the-audit-log-for-your-enterprise)”）。 若要进一步调查这些事件，可以查看环境中的代理日志。

以下部分提供了适用于用户 Web 活动和 API 请求的预期行为的详细信息。

### Web 活动

对于 GitHub.com 用户界面中的活动，标头限制用户可以登录的帐户。

用户在你的网络上时：

* **可以**登录到你的企业中的 托管用户帐户。
* 无法登录到你的企业外的帐户\*\*\*\*。
* 无法使用帐户切换器切换到你的企业外的帐户\*\*\*\*。

如果用户已登录到你的企业外的帐户（例如，他们在你的网络外登录），则当用户将其设备引入你的网络时，他们将收到错误，并且无法访问 GitHub.com，直到他们使用自己的企业拥有的帐户登录。

### Git 活动

如果代理配置为将标头注入 HTTP(S) 请求，则你的网络上的用户将被阻止通过 HTTP(S) 向 GitHub.com 进行身份验证，除非他们是你的企业成员。 对于未经身份验证的匿名用户，公共读取请求不会被阻止。

你不能使用企业标头通过 SSH 限制 Git 活动。 相反，你可以选择完全阻止 SSH 请求的端口。 请参阅[不支持的功能](#unsupported-features)。

### API 请求

对于流向 api.github.com 的 REST 和 GraphQL API 流量（包括通过 GitHub CLI 发出的请求），标头限制在用户连接到你的网络时使用访问令牌。

| 场景                                        | 结果                                    | 受影响的令牌类型 |
| ----------------------------------------- | ------------------------------------- | -------- |
| 用户使用与你的企业拥有的帐户相关联的 personal access token。 | personal access token 在 API 请求中按预期工作。 |          |

```
          `ghp_` 和 `github_pat_` |
```

\| 用户连接到你的网络时，尝试使用与你的企业外部用户相关联的 personal access token。 | 使用令牌的请求被阻止。 |
`ghp_` 和 `github_pat_` |
\| 在你的网络外，用户使用你的企业外的帐户登录到在其设备上运行的 OAuth 应用。 然后，用户将其设备引入你的网络。 | 应用中的 OAuth 令牌停止工作。 | `gho_` |
\| 用户在你的网络外部，使用你的企业外部的帐户登录到在其设备上运行的 GitHub App。 然后，用户将其设备引入你的网络。 | 应用中的令牌停止工作。 | `ghu_` |
\| 应用程序连接到你的网络时，尝试使用 GitHub App 刷新令牌为你的企业外部用户刷新会话。 | 刷新失败。 | `ghr_` |
\| 连接到你的网络时，应用程序尝试为你的企业外的组织获取安装令牌（一个没有用户标识，只有应用标识的令牌）。 | 令牌将不起作用。 | `ghs_` |

## 向阻止的用户显示的错误

当限制按预期工作时，将向用户显示错误。 在以下情况下会出现错误：

* Web 活动：当用户被阻止登录或使用现有的过时会话时\*\*\*\*。
* API 活动：当用户尝试使用与企业外的用户关联的令牌时\*\*\*\*。
* 安装令牌：当应用程序尝试使用安装令牌访问企业外的组织或用户帐户时\*\*\*\*。 对于安装，仅写入请求会被阻止。 对企业外的资源的读取请求不会被阻止。 若要详细了解安装令牌，请参阅“[验证为 GitHub 应用程序安装](/zh/enterprise-cloud@latest/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation)”。

| 场景     | 错误代码 | 消息                                                                               |
| ------ | ---- | -------------------------------------------------------------------------------- |
| Web 活动 | 403  | 网络管理员已阻止对除 `ENTERPRISE` 企业之外的 GitHub 的访问。 请使用 `_SHORTCODE` 帐户登录，以访问 GitHub。      |
| API 活动 | 403  | 网络管理员已阻止对除 `ENTERPRISE` 企业之外的 GitHub 的访问。 请使用来自 `_SHORTCODE` 企业的用户的令牌访问 GitHub。  |
| 安装令牌   | 403  | 网络管理员已阻止对除 `ENTERPRISE` 企业之外的 GitHub 的访问。 只有持有 "`SHORTCODE`" 企业令牌的用户才能访问 GitHub。 |

带有 `400` 代码的错误指示配置中出现错误。 请参阅 [疑难解答](#troubleshooting)。

## 本地测试示例

可以使用 Web 调试工具在本地测试网络配置。 本部分提供了使用 [Fiddler](https://www.telerik.com/fiddler) 的示例。 请注意，Fiddler 和其他外部调试工具不在 GitHub 支持 的范围内\*\*\*\*。

在以下示例中，您将添加一些 FiddlerScript 以便在每个请求上运行。

1. 安装 [Fiddler](https://www.telerik.com/fiddler)。

2. 配置 Fiddler 以对 HTTPS 流量进行解密。 请参阅 [Fiddler 文档](https://docs.telerik.com/fiddler/configure-fiddler/tasks/decrypthttps)。

3. 在 Fiddler 中，导航到“FiddlerScript”选项卡，并将以下代码添加到 `OnBeforeRequest` 函数。 将 `enterpriseId` 变量设置为自己的企业 ID。

   ```javascript copy
   // Your enterprise id
   var enterpriseId: String = "YOUR-ID";

    //Inject on the web UI
    if (oSession.HostnameIs("github.com")){
        oSession.oRequest.headers.Add("sec-GitHub-allowed-enterprise",enterpriseId)
        oSession["ui-color"] = "green";
    }

    // Inject on API calls
    if (oSession.HostnameIs("api.github.com")){
        oSession.oRequest.headers.Add("sec-GitHub-allowed-enterprise",enterpriseId)
        oSession["ui-color"] = "blue";
        }

    // Inject on Copilot API calls
    if (oSession.HostnameIs("githubcopilot.com")){
        oSession.oRequest.headers.Add("sec-GitHub-allowed-enterprise",enterpriseId)
        oSession["ui-color"] = "yellow";
    }
   ```

4. 单击“Save script”\*\*\*\*。

现在，当数据包捕获处于活动状态时，将为每个指定的域注入标头。 若要启用或禁用注入，可以通过单击“File”\*\*\*\*“Capture Traffic”来切换数据包捕获 > \*\*\*\*。

可以打开和关闭此注入，以模拟使用不允许的帐户登录，然后进入网络，或在网络上尝试登录到不允许的帐户。

## 故障排除

如果你的标头注入未按预期工作，当你尝试使用受影响的终结点时，会看到带有 `400` 代码的错误。 这与功能正常运作时显示的 `403` 错误不同（请参阅[阻止用户时显示的错误](#errors-displayed-to-blocked-users)）。

通常，在以下情况下会出现 `400` 错误。

* 标头使用无效的短代码或企业 ID。
* 标头列出了多个企业。
* 请求包含多个 `sec-GitHub-allowed-enterprise` 标头。

| 场景         | 错误代码 | 消息                                                                                           |
| ---------- | ---- | -------------------------------------------------------------------------------------------- |
| 无效的短代码或 ID | 400  | 找不到 `sec-GitHub-allowed-enterprise` 标头中命名的企业。 确保在防火墙或代理设置中正确输入了“企业短代码”。 如果此错误仍然存在，请与网络管理员联系。 |
| 多个企业       | 400  | 只能将一个企业与 `sec-GitHub-allowed-enterprise` 标头一起使用。 确保只提供一个企业和一个标题栏。 如果此问题仍然存在，请与网络管理员联系        |
| 多个标头       | 400  | 收到多个 `sec-GitHub-allowed-enterprise`。 此标头必须被防火墙或代理覆盖，以确保只有单个企业被授予访问权限。 如果此问题仍然存在，请与网络管理员联系。  |

## 其他阅读材料

* [管理 GitHub Copilot 访问权限至组织的网络](/zh/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/managing-github-copilot-access-to-your-organizations-network#configuring-copilot-subscription-based-network-routing-for-your-organization)