

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 设置服务凭证
<a name="onedrive-kb-admin-config"></a>

在 Amazon Quick 中创建知识库之前，请在 Microsoft Entra ID 中Amazon完成以下配置步骤。您可以创建 KMS 签名密钥、生成证书、在 Entra 中注册应用程序，然后授予 Amazon Quick 使用该密钥的权限。

此设置涉及多个系统，可能需要组织中不同管理员之间的协调。下表汇总了每个步骤以及完成该步骤所需的角色。


**设置步骤和角色**  

| 步骤 | 你做什么 | 需要角色 | 
| --- | --- | --- | 
| 1. KMS 密钥 | 在 KMS 中创建非对称签名密Amazon钥。 | Amazon管理员（KMS 和 IAM 控制台访问权限） | 
| 2. 证书 | 使用 KMS 公钥生成自签名证书。 | 与步骤 1 相同（需要Amazon CLI 和 OpenSSL） | 
| 3. 进入应用程序 | 在 Microsoft Entra 中注册应用程序，分配 API 权限，然后上传证书。 | 微软 365 全球管理员或特权角色管理员 | 
| 4. KMS 密钥访问权限 | 向 Amazon Quick 授予使用 KMS 密钥进行签名的权限。 | Amazon Quick 管理员（管理员专业版） | 
| 5. 创建 KB | 使用前面步骤中的凭证在 Amazon Quick 中创建知识库。 | 任何 Amazon Quick 用户（作者专业版或管理员专业版） | 

**提示**  
在许多组织中，一个同时拥有这两种权限Amazon和 Microsoft 365 管理员权限的人就可以完成所有步骤。如果职责按团队分配，请共享此表格以协调设置。

## 先决条件
<a name="onedrive-kb-admin-config-prerequisites"></a>

开始之前，请确保您拥有：
+ 一个拥有处于活动状态的 Amazon Quick 实例的Amazon账户。
+ 访问Amazon KMS 控制台（用于创建签名密钥）。
+ Amazon Quick 管理员访问权限（Admin Pro 角色），用于授予 KMS 密钥权限。
+ 微软 365 租户有 OneDrive。
+ 使用 Microsoft Entra ID 访问全局管理员或特权角色管理员。
+ OpenSSL 3.0 或更高版本并在本地安装了Amazon CLI。
+ 该Amazon账户和 Amazon Quick 实例必须位于同一区域。

## Permissions
<a name="onedrive-kb-admin-config-permissions"></a>

Admin-managed setup 会抓取组织中每个用户的 OneDrive 内容，并始终强制执行文档级访问控制。注册 Entra 应用程序需要以下 Microsoft Graph 应用程序权限。


**Admin-managed 设置权限**  

| 权限 | Type | 用途 | 
| --- | --- | --- | 
| Files.Read.All | 应用程序 | 读取所有用户 OneDrive 内容中的文件。 | 
| Sites.Read.All | 应用程序 | 枚举并读取租户中的 OneDrive 驱动器。 OneDrive for Business 托管在 SharePoint，因此访问每个用户的云端硬盘都需要此权限。 | 
| User.Read.All | 应用程序 | 阅读用户配置文件以解决文档级访问控制问题。 | 
| Group.Read.All | 应用程序 | 读取群组对象以解决基于群组的访问控制问题。 | 
| GroupMember.Read.All | 应用程序 | 阅读群组成员资格以解决文档级访问控制问题。 | 

**重要**  
在 Entra 中分配这些**权限时，选择 “应用程序****权限**” 选项卡，而不是 “委托权限”。 Admin-managed 安装程序使用客户端凭证流程，这需要应用程序权限。

**注意**  
OneNote 管理员管理的`Notes.Read.All`设置不支持抓取 ()。微软于 2025 年 3 月 31 日停用了 OneNote API 的仅限应用程序的代币。[User-managed 设置](onedrive-kb-user-managed.md)用于 OneNote 内容。

## 设置期间收集的值
<a name="onedrive-kb-admin-config-values"></a>

下表汇总了您在设置过程中创建或收集的值以及使用这些值的位置。


**值参考**  

| 值 | 在步骤中创建 | 在步骤中使用 | 
| --- | --- | --- | 
| KMS 密钥 ARN | 1 (千米) | 2（证书）、4（IAM）、快速设置 | 
| 证书文件 (certificate.cer) | 2（证书） | 3（上传入口） | 
| 证书指纹 (base64url) | 2（证书） | 快速设置 | 
| 应用程序（客户端）ID | 3 (Entra) | 快速设置 | 
| 目录（租户）ID | 3 (Entra) | 快速设置 | 

## 步骤 1：创建一个Amazon KMS 非对称签名密钥
<a name="onedrive-kb-admin-step1-kms"></a>

在使用微软 Entra ID 进行身份验证时，Amazon Quick 使用Amazon KMS 非对称密钥签署 OAuth 断言。私钥永远不会离开 KMS。只有公钥会被导出并嵌入到上传到您的 Entra 应用程序注册的证书中。

### 创建 KMS 密钥
<a name="onedrive-kb-admin-kms-create"></a>

1. 打开 [Amazon KMS 控制台](https://console.amazonaws.cn/kms)。

1. 在左侧导航中，选择**客户管理的密钥**。

1. 选择**创建密钥**。

### 配置密钥
<a name="onedrive-kb-admin-kms-configure"></a>

在**配置密钥**页面上，设置以下值：


**KMS 密钥配置**  

| 设置 | 值 | 
| --- | --- | 
| 密钥类型 | 非对称 | 
|  密钥用法 | 签名和验证 | 
|  密钥规范 | RSA\_2048 | 
|  密钥材料源 | KMS（推荐） | 
| 区域性 | Single-Region 密钥（默认）。 Multi-Region 不支持密钥。 | 

### 添加标签
<a name="onedrive-kb-admin-kms-labels"></a>

在**添加标签**页面上，输入密钥的别名。例如：`quick-onedrive-service-auth`。

**注意**  
以下页面上的密钥管理员和密钥使用权限是可选的。对于此设置，默认值就足够了。在步骤 4 中，您分别授予 Amazon Quick 访问密钥的权限。

选择 “**跳过查看**”，然后选择 “**完成**” 创建密钥。

### 记录密钥 ARN
<a name="onedrive-kb-admin-kms-arn"></a>

创建密钥后，打开密钥详情页面并记录**密钥 ARN**。ARN 有以下格式：

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

在步骤 2、4 以及在 Quick 中创建知识库时，你需要这个值。

## 步骤 2：生成自签名证书
<a name="onedrive-kb-admin-step2-certificate"></a>

Microsoft Entra ID 需要 X.509 证书才能验证签名的断言。由于 KMS 私钥永远不会离开Amazon KMS，因此您不能将其直接与 OpenSSL 一起使用。相反，您可以生成临时的本地 key pair 并创建证书签名请求。然后，使用 OpenSSL `-force_pubkey` 选项将 KMS 公钥注入到最终证书中。结果是一个自签名证书，其公钥与 KMS key pair 匹配。

### 先决条件
<a name="onedrive-kb-admin-cert-prereqs"></a>
+ Amazon已安装并配置 CLI。
+ OpenSSL 3.0 或更高版本。
+ 步骤 1 中的 KMS 密钥 ARN。

### 生成证书
<a name="onedrive-kb-admin-cert-generate"></a>

在终端中运行以下命令。用您自己的{{placeholder}}值替换这些值。

**验证 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
```

**生成临时本地密钥 pair**

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

**创建证书签名请求**

```
openssl req -new \
    -key temp_private_key.pem \
    -out cert.csr \
    -subj "/CN=QuickOneDriveServiceAuth/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 中将其上传到微软 Entra ID。

### 计算证书指纹
<a name="onedrive-kb-admin-cert-thumbprint"></a>

运行以下命令计算证书的 base64url 编码 SHA-1指纹：

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

记录这个值。当你在 Quick 中创建知识库时，你需要输入它。

**注意**  
base64url 编码的指纹与 Microsoft Entra 门户中显示的十六进制指纹不同。快速需要使用 base64url 格式。

## 第 3 步：在 Microsoft Entra ID 中注册应用程序
<a name="onedrive-kb-admin-step3-entra"></a>

### 注册应用程序
<a name="onedrive-kb-admin-entra-register"></a>

1. 登录微软网站上的[微软 Entra 管理中心](https://entra.microsoft.com/)。

1. 在左侧导航栏中，展开 **Entra ID**，然后选择**应用程序注册**。

1. 选择 “**新注册**”。

1. 对于**名称**，请输入 `QuickOneDriveServiceAuth`。

1. 对于**支持的帐户类型**，请选择 “**仅限此组织目录中的帐户（单租户）**”。

1. **将重定向 URI** 留空。不需要重定向 URI，因为应用程序使用的是客户端凭证流，而不是交互式登录流程。

1. 选择**注册**。

### 记录申请详情
<a name="onedrive-kb-admin-entra-record"></a>

在应用程序**概述**页面上，记录以下值：


**应用程序详细信息**  

| 值 | 位置 | 
| --- | --- | 
| 应用程序（客户端）ID | 显示在 “概述” 页面的 “基本信息” 下。 | 
| 目录（租户）ID | 显示在 “概述” 页面的 “基本信息” 下。 | 

### 配置 API 权限
<a name="onedrive-kb-admin-entra-permissions"></a>

添加该[Permissions](#onedrive-kb-admin-config-permissions)部分中列出的 Microsoft Graph 应用程序权限。

1. 在应用程序注册的左侧导航栏中，选择 **API 权限**。

1. 选择**添加权限**。

1. 选择**微软 Graph**。

1. 选择**应用程序权限**。

1. 搜索并选择`Files.Read.All`、`Sites.Read.All`、`User.Read.All``Group.Read.All`、和`GroupMember.Read.All`，然后选择**添加权限**。

**重要**  
选择 “**应用程序权限**” 选项卡，而不是 “**委派权限**”。 Admin-managed 安装程序使用客户端凭证流程，这需要应用程序权限。

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

1. 在 **API 权限**页面上，**为 [您的组织] 选择授予管理员同意**。

1. 出现提示时确认同意。

**重要**  
应用程序权限需要获得管理员同意。没有它，应用程序就无法访问 OneDrive 数据。

### 上传证书
<a name="onedrive-kb-admin-entra-cert-upload"></a>

1. 在应用程序注册的左侧导航栏中，选择 “**证书和机密**”。

1. 选择 **Certificates (证书)** 选项卡。

1. 选择**上传证书**。

1. 选择您在步骤 2 中生成的`certificate.cer`文件。

1. 选择**添加**。

**注意**  
Entra 门户以十六进制格式显示证书指纹。这与您在步骤 2 中计算的 base64url 编码指纹不同。在 Quick 中配置知识库时，请使用 base64url 值。

## 第 4 步：向 Amazon Quick 授予 KMS 密钥的权限
<a name="onedrive-kb-admin-step4-iam"></a>

Amazon Quick 需要获得使用 KMS 密钥签署 OAuth 断言的权限。您可以通过 Amazon Quick 管理控制台授予此权限。

**注意**  
此步骤需要 Amazon Quick 管理员访问权限（管理员专业版角色）。如果您不是管理员，请您的 Amazon Quick 管理员使用步骤 1 中的 KMS 密钥 ARN 完成此步骤。

**重要**  
如果您的组织管理自己的 Amazon Quick IAM 服务角色，则以下控制台步骤可能不适用。相反，请确保该角色拥有步骤 1 中的 KMS 密钥 ARN 的`kms:Sign`权限。

1. 在 Amazon Quick 中，从左侧导航窗格中选择 “**管理账户**”。

1. 在 “**权限**” 下，选择**Amazon资源**。

1. 在Amazon资源页面上，滚动到**Amazon密钥管理服务**并选中复选框。

1. 选择**选择密钥**。

1. **在**选择 KMS 密钥**对话框中，输入您在步骤 1 中记录的 KMS 密钥 ARN，然后选择添加。**

1. 密钥 ARN 出现在列表中。选择**结束**。

1. 选择Amazon资源页面底部的**保存**。

## 后续步骤
<a name="onedrive-kb-admin-config-next-steps"></a>

完成设置后，在 Amazon Quick 中创建 OneDrive 知识库连接。有关说明，请参阅[在 Amazon Quick 中创建知识库](onedrive-kb-admin-connection.md)。