

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

# 設定服務登入資料
<a name="sharepoint-kb-admin-config"></a>

在 Amazon Quick 中建立知識庫之前，請先完成 AWS 和 Microsoft Entra ID 中的下列組態步驟。您可以建立 KMS 簽署金鑰、產生憑證、在 Entra 中註冊應用程式，以及授予 Amazon Quick 使用該金鑰的許可。

此設定涉及多個系統，可能需要組織中不同管理員之間的協調。下表摘要說明每個步驟和完成步驟所需的角色。


**設定步驟和角色**  

| 步驟 | 您執行的動作 | 所需的角色 | 
| --- | --- | --- | 
| 1. KMS 金鑰 | 在 AWS KMS 中建立非對稱簽署金鑰。 | AWS 管理員 (KMS 和 IAM 主控台存取） | 
| 2. 憑證 | 使用 KMS 公有金鑰產生自我簽署憑證。 | 與步驟 1 相同 （需要AWS CLI 和 OpenSSL) | 
| 3. Entra 應用程式 | 在 Microsoft Entra 中註冊應用程式、指派 API 許可，以及上傳憑證。 | Microsoft 365 全域管理員或特殊權限角色管理員 | 
| 3b. Sites.Selected （選用） | 建立臨時管理員應用程式，並透過 Microsoft Graph API 授予每個站台的許可。 | Microsoft 365 全球管理員 （與步驟 3 相同） | 
| 4. KMS 金鑰存取 | 授予 Amazon Quick 許可，以使用 KMS 金鑰進行簽署。 | Amazon Quick Administrator (Admin Pro) | 
| 5. 建立 KB | 使用先前步驟中的登入資料在 Amazon Quick 中建立知識庫。 | 任何 Amazon Quick 使用者 (Author Pro 或 Admin Pro) | 

**提示**  
在許多組織中，具有 AWS 和 Microsoft 365 管理員存取權的單一人員可以完成所有步驟。如果責任跨團隊分割，請共用此資料表來協調設定。

## 先決條件
<a name="sharepoint-kb-admin-config-prerequisites"></a>

開始前，請確定您有下列項目：
+ 具有作用中 Amazon Quick 執行個體 AWS 的帳戶。
+ 存取 AWS KMS 主控台 （用於建立簽署金鑰）。
+ 授予 KMS 金鑰許可的 Amazon Quick Administrator 存取 (Admin Pro 角色）。
+ 具有 SharePoint Online 的 Microsoft 365 租用戶。
+ Microsoft Entra ID 中的全域管理員或特殊權限角色管理員存取權。
+ OpenSSL 3.0 或更新版本，並在本機安裝 AWS CLI。
+  AWS 帳戶和 Amazon Quick 執行個體必須位於相同的區域。

## 許可
<a name="sharepoint-kb-admin-config-permissions"></a>

您指派的許可取決於兩個選擇：
+ 您是否計劃啟用文件層級存取控制 (ACL 爬取）。
+ 無論您想要授予對所有 SharePoint 網站或僅特定網站的存取權。

### 選擇您的許可範圍
<a name="sharepoint-kb-admin-config-permission-scope"></a>

根據預設，Entra 應用程式註冊會使用 `Sites.Read.All`或 `Sites.FullControl.All`，這會授予您租用戶中所有 SharePoint 網站的存取權。如果您的組織需要最低權限的存取，您可以`Sites.Selected`改為使用 。透過 `Sites.Selected`，應用程式只能存取您明確授予許可的網站。


**許可範圍比較**  

| Scope (範圍) | 存取 | 其他步驟 | 
| --- | --- | --- | 
| 所有網站 （預設） | 應用程式可以讀取租用戶中的所有 SharePoint 網站。 | — | 
| Sites.Selected | 應用程式只能存取您明確授予的網站。 | 需要每個網站的臨時管理員應用程式和 Microsoft Graph API 呼叫。請參閱 [步驟 3b：授予網站層級許可 （僅限 Sites.Selected)](#sharepoint-kb-admin-sites-selected)。 | 

**注意**  
如果您使用 `Sites.Selected`，則必須個別授予每個網站的存取權。未來新增至知識庫的任何新網站也需要單獨的許可授予。

**所有網站 – 僅限內容 （無 ACL)**


**僅限內容許可**  

| API | 權限 | Type | 
| --- | --- | --- | 
| Microsoft Graph | Sites.Read.All | 應用程式 | 
| SharePoint REST | Sites.Read.All | 應用程式 | 

**所有網站 – 使用 ACL 爬取**


**ACL 爬取許可**  

| API | 權限 | Type | 
| --- | --- | --- | 
| Microsoft Graph | Sites.Read.All | 應用程式 | 
| Microsoft Graph | User.Read.All | 應用程式 | 
| Microsoft Graph | GroupMember.Read.All | 應用程式 | 
| SharePoint REST | Sites.FullControl.All | 應用程式 | 

**重要**  
選擇上述資料表中的所有站台許可或下表中的`Sites.Selected`許可。請勿合併兩者。如果您不確定，請從所有網站開始。如有需要，您可以`Sites.Selected`稍後使用 建立新的 Entra 應用程式註冊。

**Sites.Selected – 僅限內容 （無 ACL)**


**Sites.Selected 內容限定許可**  

| API | 權限 | Type | 
| --- | --- | --- | 
| Microsoft Graph | Sites.Selected | 應用程式 | 
| SharePoint REST | Sites.Selected | 應用程式 | 

**Sites.Selected – 使用 ACL 爬取**


**Sites.Selected ACL 爬取許可**  

| API | 權限 | Type | 
| --- | --- | --- | 
| Microsoft Graph | Sites.Selected | 應用程式 | 
| Microsoft Graph | User.Read.All | 應用程式 | 
| Microsoft Graph | GroupMember.Read.All | 應用程式 | 
| SharePoint REST | Sites.Selected | 應用程式 | 

**注意**  
管理員受管設定不支援 OneNote 爬取 (`Notes.Read.All`)。Microsoft 已於 2025 年 3 月 31 日淘汰 OneNote APIs 的應用程式限定權杖。針對 OneNote 內容[使用者受管設定](sharepoint-kb-user-managed.md)使用 。

## 在設定期間收集的值
<a name="sharepoint-kb-admin-config-values"></a>

下表摘要說明您在設定期間建立或收集的值，以及您使用這些值的位置。


**值參考**  

| Value | 在步驟 中建立 | 用於步驟 | 
| --- | --- | --- | 
| KMS 金鑰 ARN | 1 (KMS) | 2 （憑證）、4 (IAM)、快速設定 | 
| 憑證檔案 (certificate.cer) | 2 （憑證） | 3 （額外上傳） | 
| 憑證指紋 (base64url) | 2 （憑證） | 快速設定 | 
| 應用程式 （用戶端） ID | 3 (Entra) | 快速設定 | 
| 目錄 （租戶） ID | 3 (Entra) | 快速設定 | 
| SharePoint 網域 URL | 您的 M365 租用戶 | 快速設定 | 

## 步驟 1：建立 AWS KMS 非對稱簽署金鑰
<a name="sharepoint-kb-admin-step1-kms"></a>

使用 Microsoft Entra ID 驗證時，Amazon Quick 會使用 AWS KMS 非對稱金鑰簽署 OAuth 聲明。私有金鑰永遠不會離開 KMS。只有公有金鑰會匯出並內嵌在上傳到 Entra 應用程式註冊的憑證中。

### 建立 KMS 金鑰
<a name="sharepoint-kb-admin-kms-create"></a>

1. 開啟 [AWS KMS 主控台](https://console.aws.amazon.com/kms)。

1. 在左側導覽列中，選擇**客戶自管金鑰**。

1. 選擇**建立金鑰**。

### 設定金鑰
<a name="sharepoint-kb-admin-kms-configure"></a>

在**設定金鑰**頁面上，設定下列值：


**KMS 金鑰組態**  

| 設定 | Value | 
| --- | --- | 
| Key type | 非對稱 | 
| 金鑰用途 | 簽署和驗證 | 
| 金鑰規格 | RSA\$12048 | 
| 金鑰資料來源 | KMS （建議） | 
| 區域性 | 單一區域金鑰 （預設）。不支援多區域金鑰。 | 

### 新增標籤
<a name="sharepoint-kb-admin-kms-labels"></a>

在**新增標籤**頁面上，輸入金鑰的別名。例如：`quick-sharepoint-service-auth`。

**注意**  
以下頁面上的金鑰管理員和金鑰使用許可是選用的。預設值足以進行此設定。您可以在步驟 4 中分別授予 Amazon Quick 對金鑰的存取權。

選擇**略過以檢閱**，然後選擇**完成**以建立金鑰。

### 記錄金鑰 ARN
<a name="sharepoint-kb-admin-kms-arn"></a>

建立金鑰後，開啟金鑰詳細資訊頁面並記錄**金鑰 ARN**。ARN 採用下列格式：

```
arn:aws:kms:us-west-2:123456789012:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
```

當您在 Quick 中建立知識庫時，您需要在步驟 2、4 和 中使用此值。

## 步驟 2：產生自我簽署憑證
<a name="sharepoint-kb-admin-step2-certificate"></a>

Microsoft Entra ID 需要 X.509 憑證來驗證已簽署的聲明。由於 KMS 私有金鑰永遠不會離開 AWS KMS，因此您無法直接將其與 OpenSSL 搭配使用。反之，您會產生臨時本機金鑰對並建立憑證簽署請求。然後，使用 OpenSSL `-force_pubkey`選項將 KMS 公有金鑰插入最終憑證。結果是自我簽署的憑證，其公有金鑰符合 KMS 金鑰對。

### 先決條件
<a name="sharepoint-kb-admin-cert-prereqs"></a>
+ AWS 已安裝並設定 CLI。
+ OpenSSL 3.0 或更新版本。
+ 步驟 1 中的 KMS 金鑰 ARN。

### 產生憑證
<a name="sharepoint-kb-admin-cert-generate"></a>

在終端機中執行下列命令。將*預留位置*值取代為您自己的值。

**驗證 OpenSSL 版本**

```
openssl version
```

確認輸出顯示 3.0 版或更新版本。

**匯出 KMS 公有金鑰**

```
aws kms get-public-key \
    --key-id KMS_KEY_ARN \
    --region REGION \
    --output text \
    --query PublicKey | base64 --decode > public_key.der
```

**注意**  
在 macOS 上，`base64 -D`根據您的 shell 環境使用 `base64 --decode`或 。

**將公有金鑰轉換為 PEM 格式**

```
openssl rsa -pubin -inform DER -in public_key.der -outform PEM -out kms_public_key.pem
```

**產生臨時本機金鑰對**

```
openssl genrsa -out temp_private_key.pem 2048
```

**建立憑證簽署請求**

```
openssl req -new \
    -key temp_private_key.pem \
    -out cert.csr \
    -subj "/CN=QuickSharePointServiceAuth/O=YourOrganization/C=US"
```

**使用 KMS 公有金鑰產生憑證**

```
openssl x509 -req \
    -in cert.csr \
    -signkey temp_private_key.pem \
    -out certificate.pem \
    -days 730 \
    -force_pubkey kms_public_key.pem
```

**注意**  
OpenSSL 會顯示警告 `Signature key and public key of cert do not match`。這是預期的，因為憑證是以臨時本機金鑰簽署，但包含 KMS 公有金鑰。憑證有效且能正確搭配 Microsoft Entra 使用。

**轉換為 DER 格式以進行 Entra 上傳**

```
openssl x509 -in certificate.pem -outform DER -out certificate.cer
```

**清除暫存檔案**

```
rm -f temp_private_key.pem cert.csr public_key.der kms_public_key.pem certificate.pem
```

**重要**  
保留 `certificate.cer` 檔案。您可以在步驟 3 中將其上傳至 Microsoft Entra ID。

### 計算憑證指紋
<a name="sharepoint-kb-admin-cert-thumbprint"></a>

執行下列命令來計算憑證的 base64url 編碼 SHA-1 指紋：

```
openssl dgst -sha1 -binary certificate.cer | base64 | tr '+/' '-_' | tr -d '='
```

記錄此值。當您在 Quick 中建立知識庫時，請輸入它。

**注意**  
base64url 編碼的指紋與 Microsoft Entra 入口網站中顯示的十六進位指紋不同。Quick 需要 base64url 格式。

## 步驟 3：在 Microsoft Entra ID 中註冊應用程式
<a name="sharepoint-kb-admin-step3-entra"></a>

無論您是否使用全站許可或 ，都需要此步驟`Sites.Selected`。唯一的差別是您在 [設定 API 許可](#sharepoint-kb-admin-entra-permissions)區段中指派的 API 許可。

### 註冊應用程式
<a name="sharepoint-kb-admin-entra-register"></a>

1. 登入 [Microsoft Entra 管理中心](https://entra.microsoft.com/)。

1. 在左側導覽中，展開 **Entra ID**，然後選擇**應用程式註冊**。

1. 選擇**新增註冊**。

1. 對於**名稱**，輸入 `QuickSharePointServiceAuth`。

1. 對於**支援的 帳戶類型**，**僅選取此組織目錄中的帳戶 （單一租戶）**。

1. 將**重新導向 URI** 保留空白。不需要重新導向 URI，因為應用程式使用用戶端登入資料流程，而不是互動式登入流程。

1. 選擇**註冊**。

### 記錄應用程式詳細資訊
<a name="sharepoint-kb-admin-entra-record"></a>

在應用程式**概觀**頁面上，記錄下列值：


**應用程式詳細資訊**  

| Value | Location | 
| --- | --- | 
| 應用程式 (用戶端) ID | 顯示在 Essentials 下的概觀頁面上。 | 
| 目錄 （租戶） ID | 顯示在 Essentials 下的概觀頁面上。 | 

### 設定 API 許可
<a name="sharepoint-kb-admin-entra-permissions"></a>

新增符合您使用案例的許可。從 [許可](#sharepoint-kb-admin-config-permissions)區段中的資料表選擇許可。根據許可範圍 （所有網站或 Site.Selected) 以及是否啟用 ACL 爬取來選擇。

**僅限內容 – Microsoft Graph**
+ `Sites.Read.All`

**僅限內容 – SharePoint**
+ `Sites.Read.All`

**ACL 爬取 – Microsoft Graph （額外）**
+ `Sites.Read.All`
+ `User.Read.All`
+ `GroupMember.Read.All`

**ACL 爬取 – SharePoint**
+ `Sites.FullControl.All`

**注意**  
`Sites.FullControl.All` ACL 爬取需要 ，因為 SharePoint REST API 需要完全控制許可才能讀取網站層級和項目層級許可指派。如果您使用的是 `Sites.Selected`，請參閱 [步驟 3b：授予網站層級許可 （僅限 Sites.Selected)](#sharepoint-kb-admin-sites-selected) 以取得替代許可集。

1. 在應用程式註冊的左側導覽中，選擇 **API 許可**。

1. 選擇**新增許可**。

1. 選擇 **Microsoft 圖形**。

1. 選擇**應用程式許可**。

1. 搜尋並選擇使用案例所需的 Microsoft Graph 許可，然後選擇**新增許可**。

1. 再次選擇**新增許可**。

1. 選擇 **SharePoint** （在 Microsoft APIs下）。

1. 選擇**應用程式許可**。

1. 搜尋並選擇使用案例所需的 SharePoint 許可，然後選擇**新增許可**。

**重要**  
選取**應用程式許可**索引標籤，而非**委派許可**。管理員受管設定使用用戶端登入資料流程，這需要應用程式許可。

### 授予管理員同意
<a name="sharepoint-kb-admin-entra-consent"></a>

1. 在 **API 許可**頁面上，選擇**授予 【您的組織】 的管理員同意**。

1. 出現提示時確認同意。

**重要**  
應用程式許可需要管理員同意。如果沒有它，應用程式就無法存取 SharePoint 資料。

### 上傳憑證
<a name="sharepoint-kb-admin-entra-cert-upload"></a>

1. 在應用程式註冊的左側導覽中，選擇**憑證和秘密**。

1. 選擇 **Certificates (憑證)** 索引標籤。

1. 選擇**上傳憑證**。

1. 選取您在步驟 2 中產生的`certificate.cer`檔案。

1. 選擇**新增**。

**注意**  
Entra 入口網站會以十六進位格式顯示憑證指紋。這與您在步驟 2 中計算的 base64url 編碼指紋不同。當您在 Quick 中設定知識庫時，請使用 base64url 值。

## 步驟 3b：授予網站層級許可 （僅限 Sites.Selected)
<a name="sharepoint-kb-admin-sites-selected"></a>

如果您選擇 `Sites.Selected`作為許可範圍，則必須明確授予 Amazon Quick Entra 應用程式存取每個 SharePoint 網站的權限。這需要具有呼叫 Microsoft Graph API `Sites.FullControl.All`許可的臨時管理員應用程式。

如果您使用全站台許可範圍 (`Sites.Read.All` 或 )，請略過此步驟`Sites.FullControl.All`。

### 取得每個 SharePoint 網站的網站 ID
<a name="sharepoint-kb-admin-sites-selected-siteid"></a>

您需要要授予存取權的每個 SharePoint 網站的網站 ID。若要取得站台 ID：

1. 在您的瀏覽器中，導覽至 SharePoint 網站 （例如 `https://yourcompany.sharepoint.com/sites/SiteName`)。

1. 附加`/_api/site/id`至 URL 並按下 Enter。例如：`https://yourcompany.sharepoint.com/sites/SiteName/_api/site/id`

1. 此頁面會顯示包含站台 ID (GUID) 的 XML 回應。記錄此值。

針對您要包含在知識庫中的每個網站重複此步驟。

### 建立臨時管理員應用程式
<a name="sharepoint-kb-admin-sites-selected-admin-app"></a>

管理員應用程式僅用於將網站層級許可授予您的 Amazon Quick 應用程式。您可以在完成此步驟後將其刪除。

1. 在 [Microsoft Entra 管理中心](https://entra.microsoft.com/)，前往**應用程式註冊**並選擇**新增註冊**。

1. 針對**名稱**，輸入描述性名稱，例如 `Quick-SharePoint-PermissionGranter`。

1. 對於**支援的 帳戶類型**，**僅選取此組織目錄中的帳戶 （單一租戶）**。

1. 將**重新導向 URI** 保留空白，然後選擇**註冊**。

1. 從概觀頁面記錄**應用程式 （用戶端） ID**。

1. 選擇 **API 許可**，然後選擇**新增許可**。

1. 選擇 **Microsoft Graph**，然後選擇**應用程式許可**。搜尋並選取 `Sites.FullControl.All`。選擇**新增許可**。

1. 選擇**授予 【您的組織】 的管理員同意**並確認。

1. 選擇**憑證和秘密**，然後選擇**新用戶端秘密**。輸入描述，選擇過期期間，然後選擇**新增**。

1. 立即記錄秘密**值**。此值只會顯示一次。

**重要**  
複製秘密**值**，而不是秘密 ID。值是用於身分驗證的較長字串。

### 取得存取字符
<a name="sharepoint-kb-admin-sites-selected-token"></a>

使用管理員應用程式登入資料從 Microsoft Entra 擷取 OAuth 權杖。將*預留位置*值取代為管理員應用程式的用戶端 ID、秘密值和租用戶 ID。

**macOS 和 Linux (bash)**

```
curl -s --location "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "grant_type=client_credentials" \
  --data-urlencode "client_id=ADMIN_APP_CLIENT_ID" \
  --data-urlencode "client_secret=ADMIN_APP_SECRET_VALUE" \
  --data-urlencode "scope=https://graph.microsoft.com/.default"
```

**Windows (PowerShell)**

```
$tokenResponse = Invoke-RestMethod `
  -Uri "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token" `
  -Method Post `
  -ContentType "application/x-www-form-urlencoded" `
  -Body @{
    grant_type    = "client_credentials"
    client_id     = "ADMIN_APP_CLIENT_ID"
    client_secret = "ADMIN_APP_SECRET_VALUE"
    scope         = "https://graph.microsoft.com/.default"
  }
$adminToken = $tokenResponse.access_token
```

回應包含 `access_token` 欄位。記錄下一個步驟的此值。

### 授予網站層級許可
<a name="sharepoint-kb-admin-sites-selected-grant"></a>

使用 管理員字符授予 Amazon Quick Entra 應用程式`fullcontrol`存取每個 SharePoint 網站的權限。將*預留位置*值取代為您的站台 ID、管理員字符，以及來自步驟 3 的用戶端應用程式 ID 和顯示名稱。

**macOS 和 Linux (bash)**

```
curl -s --location "https://graph.microsoft.com/v1.0/sites/SITE_ID/permissions" \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer ADMIN_TOKEN" \
  --data '{
    "roles": ["fullcontrol"],
    "grantedToIdentities": [{
      "application": {
        "id": "CLIENT_APP_ID",
        "displayName": "CLIENT_APP_NAME"
      }
    }]
  }'
```

**Windows (PowerShell)**

```
$body = @{
    roles = @("fullcontrol")
    grantedToIdentities = @(
        @{
            application = @{
                id          = "CLIENT_APP_ID"
                displayName = "CLIENT_APP_NAME"
            }
        }
    )
} | ConvertTo-Json -Depth 10

Invoke-RestMethod `
  -Uri "https://graph.microsoft.com/v1.0/sites/SITE_ID/permissions" `
  -Method Post `
  -Headers @{
    "Content-Type"  = "application/json"
    "Authorization" = "Bearer $adminToken"
  } `
  -Body $body
```

成功的回應包含 `"roles": ["fullcontrol"]`和 `grantedToIdentities` 欄位中的用戶端應用程式 ID。

**重要**  
針對您要包含在知識庫中的每個 SharePoint 網站重複此命令。未來新增的任何新網站也需要單獨的許可授予。

### 清除
<a name="sharepoint-kb-admin-sites-selected-cleanup"></a>

授予所有必要網站的許可後，您可以從 Microsoft Entra 管理中心刪除臨時管理員應用程式。您授予的網站層級許可會獨立於管理員應用程式保持有效。

**注意**  
暫時管理員應用程式僅用於您的本機環境，以呼叫 Microsoft Graph API。Amazon Quick 永遠不會看到或存取管理員應用程式或其登入資料。建立知識庫時，只會將用戶端應用程式登入資料提供給 Amazon Quick。

## 步驟 4：授予 Amazon Quick 許可給 KMS 金鑰
<a name="sharepoint-kb-admin-step4-iam"></a>

Amazon Quick 需要許可，才能使用 KMS 金鑰簽署 OAuth 聲明。您可以從 Amazon Quick admin 主控台授予此許可。

**注意**  
此步驟需要 Amazon Quick 管理員存取權 (Admin Pro 角色）。如果您不是管理員，請要求 Amazon Quick admin 使用步驟 1 的 KMS 金鑰 ARN 完成此步驟。

**重要**  
如果您的組織管理自己的 Amazon Quick IAM 服務角色，則可能不適用下列主控台步驟。反之，請確保角色具有步驟 1 中 KMS 金鑰 ARN 的`kms:Sign`許可。

1. 在 Amazon Quick 中，從左側導覽窗格中選擇**管理帳戶**。

1. 在**許可**下，選擇**AWS 資源**。

1. 在 AWS 資源頁面上，捲動至 **AWS Key Management Service** 並選取核取方塊。

1. 選擇**選取金鑰**。

1. 在**選取 KMS 金鑰**對話方塊中，輸入您在步驟 1 中記錄的 KMS 金鑰 ARN，然後選擇**新增**。

1. 金鑰 ARN 會出現在清單中。選擇**完成**。

1. 選擇資源頁面底部的 AWS **儲存**。

## 後續步驟
<a name="sharepoint-kb-admin-config-next-steps"></a>

完成設定後，請在 Amazon Quick 中建立 SharePoint Online 知識庫連線。如需說明，請參閱[在 Amazon Quick 中建立知識庫](sharepoint-kb-admin-connection.md)。