

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置GitHub为 AppFabric
<a name="github"></a>

GitHub 是使用 Git 进行软件开发和版本控制的平台和云服务，允许开发人员存储和管理他们的代码。它为每个项目提供 Git 的分布式版本控制以及访问控制、错误跟踪、软件功能请求、任务管理、持续集成和 Wiki。

 AWS AppFabric 为了安全起见，您可以使用接收来自的审计日志和用户数据GitHub，将数据标准化为开放网络安全架构框架 (OCSF) 格式，然后将数据输出到亚马逊简单存储服务 (Amazon S3) 存储桶或亚马逊数据 Firehose 流。

**Topics**
+ [AppFabric 支持 GitHub](#github-appfabric-support)
+ [正在 AppFabric 连接您的GitHub账户](#github-appfabric-connecting)

## AppFabric 支持 GitHub
<a name="github-appfabric-support"></a>

AppFabric 支持接收来自的用户信息和审核日志GitHub。

### 先决条件
<a name="github-prerequisites"></a>

 AppFabric 要使用将审核日志从支持的目标传输GitHub到支持的目的地，您必须满足以下要求：
+ 要访问审核日志，您需要拥有一个企业账户。
+ 要访问企业审核日志，您需要拥有企业账户的管理员角色。
+ 要从组织获取审核日志，您需要成为组织所有者。

### 速率限制注意事项
<a name="github-rate-limits"></a>

GitHub 对 GitHub API 施加速率限制。有关 GitHub API 速率限制的更多信息，请参阅 *GitHub 网站*上的 [API 请求限制和分配](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/rate-limits-for-github-apps)。如果您的现有 API 应用程序 AppFabric 和您的现有 GitHub API 应用程序的组合超过GitHub’s限制，则中显示的审核日志 AppFabric 可能会延迟。

### 数据延迟注意事项
<a name="github-data-delay"></a>

审计事件发送到目标位置的时间可能会延迟多达 30 分钟。这是应用程序提供的审核事件延迟或为减少数据丢失而采取的预防措施所致。不过，这可以在账户级别进行自定义。如需帮助，请联系 [支持](https://aws.amazon.com/contact-us/)。

## 正在 AppFabric 连接您的GitHub账户
<a name="github-appfabric-connecting"></a>

在 AppFabric 服务中创建应用程序包后，必须 AppFabric使用进行授权GitHub。要查找授权所需的信息 GitHub AppFabric，请使用以下步骤。

### 创建 OAuth 应用程序
<a name="github-create-oauth"></a>

AppFabric 与GitHub使用集成 OAuth。使用以下步骤在中创建 OAuth 应用程序GitHub。有关更多信息，请参阅*GitHub网站*上的[创建 GitHubs 应用程序](https://docs.github.com/en/apps/creating-github-apps)。

1. 选择页面右上角的个人头像，然后选择**设置**。

1. 在左侧导航窗格中，选择**开发人员设置**。

1. 在左侧导航窗格中选择**OAuth 应用程序**。

1. 选择 “**新建 OAuth 应用程序**”。
**注意**  
如果您之前没有创建过**应用程序，则此按钮将被标记为 “注册新** OAuth应用程序”。

1. 在**应用程序名称**文本框中输入您的应用程序的名称。

1. 在**主页 URL** 文本框中输入完整的应用程序实例 URL。

1. （可选）在**应用程序描述**文本框中输入应用程序描述。用户将看到此描述。

1. 在**授权回调 URL** 文本框中输入以下格式的 URL。

   ```
   https://<region>.console.aws.amazon.com/appfabric/oauth2
   ```

   此 URL 中*<region>*是您在其中配置 AppFabric 应用程序包的代码。 AWS 区域 例如，美国东部（弗吉尼亚州北部）区域的代码为 `us-east-1`。对于该区域，重定向 URL 为 `https://us-east-1.console.aws.amazon.com/appfabric/oauth2`。

1. 如果您的 OAuth 应用程序将使用**设备流来识别和授权用户，请选择启用**设备流。有关设备流程的更多信息，请参阅在*GitHub网站上*[对 OAuth 应用程序进行授权](https://docs.github.com/en/enterprise-cloud@latest/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow)。

1. 选择**注册应用程序**。

### 应用程序授权
<a name="github-app-authorizations"></a>

#### 租户编号
<a name="github-tenant-id"></a>

AppFabric 将请求您的租户 ID。应使用以下任一格式提供租户 ID：

**企业审核日志：**

如果您想了解企业账户拥有的所有组织的汇总操作，请使用企业的审核日志。

使用企业审核日志时，租户 ID 就是您账户的企业 ID。您可以在浏览器的地址栏中找到企业 ID。例如，`exampleenterprise` 是以下 URL `https://github.com/settings/enterprises/examplenterprise` 中的企业 ID。

为企业审核日志指定租户 ID 时，前缀必须为 `enterprise:`。因此，将前面的示例指定为 `enterprise:examplenterprise`。

**组织审核日志：**

如果您想了解组织成员执行的操作，请以组织管理员的身份使用组织审核日志。它包括谁执行了操作、操作是什么以及何时执行等详细信息。

使用组织审核日志时，租户 ID 就是您的组织 ID。您可以在浏览器的地址栏中找到组织 ID。例如，`exampleorganization` 是以下 URL `https://github.com/settings/organizations/exampleorganization` 中的组织 ID。

在为组织审核日志指定租户 ID 时，前缀必须为 `organization:`。因此，将前面的示例指定为 `organization:exampleorganization`。

#### 租户名称
<a name="github-tenant-name"></a>

输入标识此唯一GitHub企业或组织的名称。 AppFabric 使用租户名称来标记应用程序授权和通过应用程序授权创建的任何摄取。

#### 客户端 ID
<a name="github-client-id"></a>

AppFabric 将请求客户端 ID。使用以下步骤在 GitHub 中查找您的客户端 ID，

1. 选择页面右上角的个人头像，然后选择**设置**。

1. 在左侧导航窗格中，选择**开发人员设置**。

1. 在左侧导航窗格中选择**OAuth 应用程序**。

1. 选择特定的 OAuth 应用程序，然后查找**客户端 ID** 值。

#### 客户端密钥
<a name="github-client-secret"></a>

AppFabric 将请求客户机密钥。使用以下步骤在 GitHub 中查找您的客户端密钥。

1. 选择页面右上角的个人头像，然后选择**设置**。

1. 在左侧导航窗格中，选择**开发人员设置**。

1. 在左侧导航窗格中选择**OAuth 应用程序**。

1. 选择特定的 OAuth 应用程序，然后查找 “**客户端密钥**” 值。如果您找不到现有的客户端密钥，则可能需要生成一个新的客户端密钥。

#### 批准授权
<a name="github-approve-authorization"></a>

在中创建应用程序授权后 AppFabric，您将收到一个GitHub用于批准授权的弹出窗口。要批准 AppFabric 授权，请选择**允许**。

如果启用了 OAuth 应用程序[访问限制，请确保您的组织已授予](https://docs.github.com/en/organizations/managing-oauth-access-to-your-organizations-data/approving-oauth-apps-for-your-organization)[对OAuth 应用程序的访问权限](https://docs.github.com/en/organizations/managing-oauth-access-to-your-organizations-data/about-oauth-app-access-restrictions)。