View a markdown version of this page

設定 SharePoint 的 OAuth 2.0 身分驗證 - Amazon Bedrock

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

設定 SharePoint 的 OAuth 2.0 身分驗證

OAuth 2.0 身分驗證 (OAUTH2_APP) 會使用 OAuth 2.0 資源擁有者密碼登入資料 (ROPC) 流程,使用應用程式用戶端 ID 和秘密以及 Microsoft 365 使用者帳戶的使用者名稱和密碼進行身分驗證。連接器以該使用者身分登入以讀取內容。

重要

我們建議您設定 SharePoint 的 Microsoft Entra ID 僅限應用程式身分驗證改用 。OAuth 2.0 身分驗證有兩個限制:

  • 由於它使用使用者名稱和密碼登入,因此無法完成多重要素驗證 (MFA) 挑戰或滿足需要的條件式存取政策。如果帳戶強制執行 MFA 或條件式存取,身分驗證會失敗,且資料來源無法同步。許多組織需要 MFA 來提供您在這裡使用的帳戶類型。

  • 它不支援文件層級存取控制 (ACLs)。若要依使用者許可篩選查詢結果,請使用 Microsoft Entra ID 僅限應用程式身分驗證。

先決條件

  • 一個 Microsoft 365 使用者帳戶,其使用者名稱和密碼由連接器用來登入。帳戶必須能夠存取您要抓取的 SharePoint 網站,而且登入時不需要 MFA 或條件式存取。

  • Microsoft Entra ID 管理員存取以註冊應用程式並建立用戶端秘密。

  • 您的 Microsoft 365 租用戶 ID。

步驟 1:在 Microsoft Entra ID 中註冊應用程式

  1. 登入 Microsoft Entra 管理中心

  2. 在左側導覽中,展開 Entra ID,然後選擇應用程式註冊

  3. 選擇新增註冊

  4. 針對名稱,輸入描述性名稱,例如 bedrock-sharepoint-oauth2

  5. 對於支援的 帳戶類型僅選取此組織目錄中的帳戶 (單一租戶)

  6. 重新導向 URI 保留空白,然後選擇註冊

  7. 在應用程式概觀頁面上,記錄應用程式 (用戶端) ID目錄 (租戶) ID

步驟 2:新增 API 許可並授予管理員同意

OAuth 2.0 身分驗證需要兩個許可:Microsoft Graph 應用程式列舉網站的許可,以及 SharePoint 委派讀取內容的許可。指派下列兩項。

OAuth 2.0 身分驗證的許可
API 權限 Type 用途
Microsoft Graph Sites.Read.All 應用程式 列舉 SharePoint 網站。
SharePoint AllSites.Read 委派 透過 SharePoint REST API 讀取網站內容。需要管理員同意 (請參閱下列備註)。
  1. 在您的應用程式註冊中,選擇 API 許可,然後選擇新增許可

  2. 選擇 Microsoft Graph,然後選擇應用程式許可。搜尋並選取 Sites.Read.All,然後選擇新增許可

  3. 再次選擇新增許可。選擇 SharePoint (在 Microsoft APIs下),然後選擇委派許可。選取 AllSites.Read(讀取所有網站集合中的項目),然後選擇新增許可

  4. API 許可頁面上,選擇授予 【您的組織】 的管理員同意並確認。

重要

即使 Entra 入口網站顯示需要管理員同意,您仍必須授予管理員同意:SharePoint 委派許可為否。 SharePoint AllSites.Read 該欄表示使用者通常可以在互動式登入期間同意 - 但資源擁有者密碼登入資料流程沒有互動式表面,因此無法在登入時同意許可,並且必須在 【您的組織】 的授予管理員同意下預先授予整個組織。如果沒有它,SharePoint 字符請求會失敗 AADSTS65001(使用者或管理員尚未同意使用應用程式),且資料來源無法同步。

注意

如果您的租戶已啟用安全預設值,資源擁有者密碼登入資料流程可能會遭到封鎖。您可能需要管理員來調整租戶的安全預設值或條件式存取政策,因此這裡使用的 帳戶無需 MFA 即可登入。如需詳細資訊,請參閱 Microsoft 有關安全預設值的文件。

步驟 3:建立用戶端秘密

  1. 在您的應用程式註冊中,選擇憑證和秘密,然後選擇用戶端秘密,然後選擇新用戶端秘密

  2. 輸入描述,選擇過期,然後選擇新增

  3. 立即記錄秘密 — 只會顯示一次。記錄 ,而不是秘密 ID

步驟 4:建立 Secrets Manager 秘密

使用下列鍵值對將登入資料存放在 AWS Secrets Manager 秘密中:

  • clientId — 步驟 1 中的應用程式 (用戶端) ID。

  • clientSecret — 步驟 3 中的用戶端秘密值。

  • userName — Microsoft 365 使用者帳戶的使用者名稱 (UPN)。

  • password — 該帳戶的密碼。

{ "clientId": "your-client-id", "clientSecret": "your-client-secret", "userName": "user@yourdomain.onmicrosoft.com", "password": "your-account-password" }

使用 建立秘密 AWS Command Line Interface:

aws secretsmanager create-secret \ --name bedrock-sharepoint-oauth2-creds \ --secret-string file://secret.json

從回應記錄秘密 ARN。您可以使用它做為資料來源 secretArn

注意

帳戶密碼會存放在秘密中,並用於每次同步。如果密碼變更,請更新秘密。由於連接器使用此帳戶登入,請將秘密視為高度敏感,並限制其存取。

疑難排解

如果資料來源無法同步,請將錯誤與下列簽章比對。

OAuth 2.0 同步錯誤
錯誤 原因和解決方法
AADSTS65001 (使用者或管理員尚未同意使用應用程式) SharePoint AllSites.Read委派許可尚未經過管理員同意。在您的應用程式註冊中,選擇 API 許可,然後授予 【您的組織】 的管理員同意。請參閱步驟 2。
Rest API token request failed with status: 400 資源擁有者密碼登入資料在身分驗證時失敗,通常是因為帳戶需要 MFA 或流程無法滿足的條件式存取政策。使用不需要 MFA 的帳戶,並確認秘密password中的 userName和 正確無誤。
SharePoint app is missing required scopes 尚未授予 (或同意) Microsoft Graph Sites.Read.All 應用程式許可。連接器會在爬取之前檢查此範圍的圖形應用程式字符。新增 Microsoft Graph Sites.Read.All 應用程式許可並授予管理員同意。請參閱步驟 2。

後續步驟

存放秘密之後,請建立將 authType 設為 的資料來源OAUTH2_APP。您不提供此方法的憑證。請參閱連接 SharePoint 資料來源