

# GitHub
<a name="identity-idp-github"></a>

GitHub 可以配置为出站资源访问的 AgentCore 身份凭证提供者。这允许您的代理通过 GitHub的 OAuth2 服务对用户进行身份验证，并获取 GitHub API 资源的访问令牌。

## 出站
<a name="identity-idp-github-outbound"></a>

**注意**  
AgentCore Identity 会为您创建的每个凭据提供商发出唯一的 OAuth2 回调 URL。唯一的回调 URL 支持会话绑定，通过确保授权响应只能针对启动它的特定凭据提供商兑换，从而保护 OAuth2 授权码交换免受跨提供商重播和 CSRF-style 攻击。由于每个提供商的网址是唯一的，因此您要等到致电**后**才能知道`CreateOauth2CredentialProvider`。首先创建您的 GitHub OAuth2 客户端，然后在 Ident AgentCore ity 发布回传网址后返回 GitHub 开发者控制台注册回传网址。

 **步骤 1：创建 GitHub OAuth2 客户端** 

使用以下过程设置 GitHub OAuth2 应用程序并获取身份所需的客户端凭证。 AgentCore 在 Ident AgentCore ity 发出唯一回调 URL 之后，您将在步骤 3 中注册重定向 URI。

 **配置 GitHub OAuth2 应用程序** 

1. 选择你的 github 账户的头像，然后选择**设置**。

1. 选择**开发者设置**。

1. 选择 **OAuth 应用程序。**

1. 在 OAuth2 应用程序页面上，选择**新建 O** Auth 应用程序。

1. 输入特定于您的应用程序的必要详细信息。暂时将**授权回传 URL** 字段留空 — 您将在步骤 3 中添加唯一的回传 URL。

1. 选择**注册应用程序**来创建你的 Github OAuth 应用程序。

1. 在 Github 的 OAuth 应用程序页面上，前往你新创建的提供商。

1. 在 “客户机密钥” 部分下，选择 “**生成新的客户机密钥**”。

1. 记下新创建的客户端密钥。你需要它来配置你的 Github 应用程序的 AgentCore 身份。
**注意**  
Github 只有在创建时才会返回完整的密钥。如果您忘记了它，则需要重新创建客户端密钥以在 Ident AgentCore ity 中配置提供商。

有关更多详细信息，请参阅 Github 的文档[创建 OAuth 应用程序。](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app)

 **步骤 2：创建 AgentCore 身份凭证提供商** 

要配置出站 GitHub 资源提供器，请使用以下方法：

```
{
        "name": "NAME",
        "credentialProviderVendor": "GithubOauth2",
        "oauth2ProviderConfigInput": {
            "GithubOauth2ProviderConfigInput": {
                "clientId": "your-client-id",
                "clientSecret": "your-client-secret",
            }
        },
    }
```

[CreateOauth2CredentialProvider](https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOauth2CredentialProvider.html)响应中包含一个`callbackUrl`字段。此网址是该凭证提供商所独有的，看起来像:`https://bedrock-agentcore.us-east-1.amazonaws.com/identities/oauth2/callback/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX`. 保存此值以供下一步使用。

 **第 3 步：向注册唯一的回传网址 GitHub** 

返回 GitHub 开发者控制台，将唯一的回调 URL 添加到 OAuth2 应用程序的重定向 URI 列表中。

1. 登录 GitHub 开发者控制台并打开您在步骤 1 中创建的 OAuth2 应用程序。

1. 将返回的`callbackUrl`值添加到应用程序的重定向 URI 配置中。`CreateOauth2CredentialProvider`

1. 保存更改。