本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Confluence 的 OAuth 2.0 身分驗證
OAuth 2.0 身分驗證 (OAUTH2) 使用 Atlassian OAuth 2.0 三邊形 (3LO) 應用程式進行身分驗證。您可以在 Atlassian 開發人員主控台中註冊應用程式、完成一次性授權流程以取得重新整理權杖,以及將登入資料存放在其中 AWS。在爬蟲時,Amazon Bedrock 會使用重新整理權杖自動刪除短期存取權杖。
重要
OAuth 2.0 不支援文件層級存取控制 (ACLs)。若要依使用者許可篩選查詢結果,請使用基本身分驗證。請參閱 設定 Confluence 的基本身分驗證。
步驟 1:註冊 OAuth 2.0 (3LO) 應用程式
-
選擇建立,然後選擇 OAuth 2.0 整合。
-
輸入應用程式的名稱 (例如
bedrock-confluence-connector),然後選擇建立。 -
在應用程式的許可頁面上,新增 Confluence API。設定下列精細範圍 (或如果您的應用程式使用它們,則為同等傳統範圍):
read:content:confluenceread:content-details:confluenceread:space:confluenceread:space-details:confluenceread:user:confluenceread:attachment:confluenceread:page:confluence— 頁面列舉的必要項目read:blogpost:confluence— 如果您編目部落格文章,則為必要項目read:custom-content:confluence— 如果您的工作區包含自訂內容,則為必要
新增
offline_access授權 — 使用者身分 API 許可。offline_access是 Atlassian 發出重新整理權杖的原因。 -
在授權頁面上,將回呼 URL 設定為您可以在步驟 3 中擷取授權碼的控制 URL (例如
https://localhost:8080/callback)。 -
在設定頁面上,複製用戶端 ID 和秘密。這些是
confluenceAppKey和confluenceAppSecret。
步驟 2:授權應用程式
在瀏覽器中開啟下列 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:交換字符的程式碼
交換存取字符和重新整理字符的授權碼。從終端機執行:
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 秘密
使用下列鍵值對將登入資料存放在 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 \ --namebedrock-confluence-oauth2-creds\ --secret-string file://secret.json
從回應記錄秘密 ARN。您可以使用它做為資料來源 secretArn。
步驟 5:授予服務角色更新秘密的許可
Atlassian 存取字符會在 60 分鐘後過期。Amazon Bedrock 使用重新整理字符來挖掘新的存取字符,並將新值寫回相同的秘密。將 secretsmanager:PutSecretValue 的秘密新增至知識庫服務角色的許可政策:
{ "Effect": "Allow", "Action": "secretsmanager:PutSecretValue", "Resource": "arn:aws:secretsmanager:region:account-id:secret:bedrock-confluence-oauth2-creds-*" }
如果沒有此許可,連接器就無法保留輪換的存取權杖,且後續同步會失敗。
後續步驟
存放秘密之後,請建立將 authType 設為 的資料來源OAUTH2。請參閱連接 Confluence 資料來源。