

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

# 为 Box 设置 OAuth 2.0 身份验证
<a name="kb-managed-box-oauth2-setup"></a>

OAuth 2.0 身份验证 (`OAUTH2`) 使用 OAuth 2.0 (3LO) 流程代表特定用户作为 Box 应用程序进行身份验证。连接器抓取用户可以访问的内容。OAuth 2.0 身份验证是特定于用户的，不支持文档级访问控制 (ACL)；仅在客户凭据授予身份验证不可行时使用。用户必须手动登录才能生成令牌。

**重要**  
要按用户权限筛选查询结果，请改用 “客户端凭据授权” 身份验证。请参阅[为 Box 设置客户端凭据授予身份验证](kb-managed-box-ccg-setup.md)。

## 第 1 步：创建 OAuth 应用程序
<a name="kb-managed-box-oauth2-step1"></a>

1. 导航到 [ Box 开发者控制台](https://app.box.com/developers/console)。

1. 选择 “**创建新应用程序” **。

1. 选择**用户身份验证 (OAuth 2.0) ** — 应用程序类型：**用户。**

1. 命名应用程序，然后选择 “**创建” **。

## 第 2 步：配置重定向 URI
<a name="kb-managed-box-oauth2-step2"></a>

在 ** OAuth 2.0 重定向 URI 下**，输入重定向 URL。如果您已有重定向端点，请使用它。否则，请使用以下测试端点：

```
https://httpbin.org/anything
```

**重要**  
`httpbin.org`是一个测试重定向端点，可以生成凭据。请勿在生产中使用它。

## 第 3 步：配置内容操作
<a name="kb-managed-box-oauth2-step3"></a>

启用以下两个内容操作：
+ 读取所有文件和文件夹
+ 写入所有文件和文件夹

不要启用 OAuth 2.0 的管理操作或用户身份标头。无需其他设置。

## 第 4 步：生成访问令牌
<a name="kb-managed-box-oauth2-step4"></a>

1. 登录要抓取的用户的 Box 账户（在浏览器中）。

1. 导航到授权 URL，{{your-client-id}}替换为您的应用程序客户端 ID 和{{random-string}}任意值：

   ```
   https://account.box.com/api/oauth2/authorize?response_type=code&client_id={{your-client-id}}&state={{random-string}}
   ```

1. 授权后，您将被重定向到 httpbin。从 URL 中复制`code`值：

   ```
   https://httpbin.org/anything?state={{your-state}}&code={{auth-code}}
   ```

1. 运行以下命令将代码交换为令牌：

   ```
   curl -i -X POST "https://api.box.com/oauth2/token" \
     -H "content-type: application/x-www-form-urlencoded" \
     -d "client_id={{your-client-id}}" \
     -d "client_secret={{your-client-secret}}" \
     -d "code={{code-from-above}}" \
     -d "grant_type=authorization_code"
   ```

1. 响应包含`access_token`和`refresh_token`。两者都复制。

## 第 5 步：创建 Secrets Manager 密钥
<a name="kb-managed-box-oauth2-step5"></a>

使用以下键值对将凭证存储在 AWS Secrets Manager 机密中：

```
{
    "clientId": "{{your-client-id}}",
    "clientSecret": "{{your-client-secret}}",
    "accessToken": "{{your-access-token}}",
    "refreshToken": "{{your-refresh-token}}"
}
```

使用以下命令创建密钥 AWS Command Line Interface：

```
aws secretsmanager create-secret \
  --name {{bedrock-box-oauth2-creds}} \
  --secret-string file://secret.json
```

记录响应中的秘密 ARN。您可以将其用作数据源`secretArn`。

## 后续步骤
<a name="kb-managed-box-oauth2-next"></a>

存储密钥后，创建`authType`设置为的数据源`OAUTH2`。请参阅[连接 Box 数据源](kb-managed-ds-box-connect.md)。