

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 設定 Box 的 OAuth 2.0 身分驗證
<a name="kb-managed-box-oauth2-setup"></a>

OAuth 2.0 身分驗證 (`OAUTH2`) 會使用 OAuth 2.0 (3LO) 流程，代表特定使用者以 Box 應用程式身分進行身分驗證。連接器會編目使用者可存取的內容。OAuth 2.0 身分驗證是使用者特定的，不支援文件層級存取控制 (ACLs)；只在用戶端登入資料授予身分驗證無法運作時使用。使用者必須手動登入才能產生字符。

**重要**  
若要依使用者許可篩選查詢結果，請改用用戶端登入資料授予身分驗證。請參閱 [設定用戶端登入資料 授予 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 重新導向 URIs**下，輸入重新導向 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，並將{{隨機字串}}取代為任意值：

   ```
   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)。