

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Confluence の OAuth 2.0 認証を設定する
<a name="kb-managed-confluence-oauth2-setup"></a>

OAuth 2.0 認証 (`OAUTH2`) は、Atlassian OAuth 2.0 3 レッグ (3LO) アプリで認証します。Atlassian デベロッパーコンソールにアプリを登録し、1 回限りの承認フローを完了して更新トークンを取得し、認証情報を に保存します AWS。クロール時に、Amazon Bedrock は更新トークンを使用して、有効期間の短いアクセストークンを自動的に作成します。

**重要**  
OAuth 2.0 はドキュメントレベルのアクセスコントロール (ACLsをサポートしていません。クエリ結果をユーザーアクセス許可でフィルタリングするには、基本認証を使用します。「[Confluence の基本認証を設定する](kb-managed-confluence-basic-setup.md)」を参照してください。

## ステップ 1: OAuth 2.0 (3LO) アプリを登録する
<a name="kb-managed-confluence-oauth2-step1"></a>

1. [Atlassian デベロッパーコンソール](https://developer.atlassian.com/console/myapps/)にサインインします。

1. **作成**を選択し、次に **OAuth 2.0 統合**を選択します。

1. アプリの名前 ( など`bedrock-confluence-connector`) を入力し、**作成**を選択します。

1. アプリの**アクセス許可**ページで、**Confluence API** を追加します。以下のきめ細かなスコープ (またはアプリで使用されている場合は同等のクラシックスコープ) を設定します。
   + `read:content:confluence`
   + `read:content-details:confluence`
   + `read:space:confluence`
   + `read:space-details:confluence`
   + `read:user:confluence`
   + `read:attachment:confluence`
   + `read:page:confluence` — ページの列挙に必要
   + `read:blogpost:confluence` — ブログ投稿をクロールする場合に必要です
   + `read:custom-content:confluence` — ワークスペースにカスタムコンテンツが含まれている場合は必須です

   **認可** — **ユーザー ID API** アクセス許可`offline_access`に を追加します。 `offline_access`は、Atlassian が更新トークンを発行する原因です。

1. **認可**ページで、**コールバック URL** を、ステップ 3 で認可コードをキャプチャできる制御する URL に設定します (例: `https://localhost:8080/callback`)。

1. **設定**ページで、**クライアント ID** と**シークレット**をコピーします。これらは `confluenceAppKey`と です`confluenceAppSecret`。

## ステップ 2: アプリを承認する
<a name="kb-managed-confluence-oauth2-step2"></a>

ブラウザで次の URL を開き、プレースホルダーを値に置き換えます。コネクタが使用するアクセスを持つ Atlassian ユーザーでサインインします。ユーザーは、クロールする Confluence コンテンツにアクセスできる必要があります。

```
https://auth.atlassian.com/authorize?
audience=api.atlassian.com&
client_id={{your-client-id}}&
scope=read:content:confluence%20read:content-details:confluence%20read:space:confluence%20read:space-details:confluence%20read:user:confluence%20read:attachment:confluence%20read:page:confluence%20read:blogpost:confluence%20read:custom-content:confluence%20offline_access&
redirect_uri={{https://localhost:8080/callback}}&
response_type=code&
prompt=consent
```

同意プロンプトを承認します。Atlassian は、`code`クエリパラメータを使用してコールバック URL にリダイレクトします。その認可コードをコピーします。

## ステップ 3: コードをトークンと交換する
<a name="kb-managed-confluence-oauth2-step3"></a>

認可コードをアクセストークンと更新トークンと交換します。ターミナルから、以下を実行します。

```
curl -X POST https://auth.atlassian.com/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "client_id": "{{your-client-id}}",
    "client_secret": "{{your-client-secret}}",
    "code": "{{authorization-code-from-step-2}}",
    "redirect_uri": "{{https://localhost:8080/callback}}"
  }'
```

レスポンスには `access_token`と が含まれます`refresh_token`。両方の値を記録します。更新トークンは、定期的に使用されている限り期限切れになりません。

## ステップ 4: Secrets Manager シークレットを作成する
<a name="kb-managed-confluence-oauth2-step4"></a>

次のキーと値のペアを使用して、認証情報を AWS Secrets Manager シークレットに保存します。

```
{
    "confluenceAppKey": "{{your-client-id}}",
    "confluenceAppSecret": "{{your-client-secret}}",
    "confluenceAccessToken": "{{your-access-token}}",
    "confluenceRefreshToken": "{{your-refresh-token}}",
    "hostUrl": "{{https://your-instance.atlassian.net}}"
}
```

以下を使用してシークレットを作成します AWS Command Line Interface。

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

レスポンスからシークレット ARN を記録します。データソース として使用します`secretArn`。

## ステップ 5: シークレットを更新するアクセス許可をサービスロールに付与する
<a name="kb-managed-confluence-oauth2-step5"></a>

アトラシアンアクセストークンは 60 分後に期限切れになります。Amazon Bedrock は更新トークンを使用して新しいアクセストークンをミントし、新しい値を同じシークレットに書き込みます。シークレット`secretsmanager:PutSecretValue`の をナレッジベースサービスロールのアクセス許可ポリシーに追加します。

```
{
    "Effect": "Allow",
    "Action": "secretsmanager:PutSecretValue",
    "Resource": "{{arn:aws:secretsmanager:region:account-id:secret:bedrock-confluence-oauth2-creds-*}}"
}
```

このアクセス許可がないと、コネクタはローテーションされたアクセストークンを保持できず、その後の同期は失敗します。

## 次の手順
<a name="kb-managed-confluence-oauth2-next"></a>

シークレットを保存したら、 を `authType`に設定してデータソースを作成します`OAUTH2`。「[Confluence データソースを接続する](kb-managed-ds-confluence-connect.md)」を参照してください。