本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置服务凭证
在 Amazon Quick 中创建知识库之前,请在 Microsoft Entra ID 中 AWS 完成以下配置步骤。您可以创建 KMS 签名密钥、生成证书、在 Entra 中注册应用程序,然后授予 Amazon Quick 使用该密钥的权限。
此设置涉及多个系统,可能需要组织中不同管理员之间的协调。下表汇总了每个步骤以及完成该步骤所需的角色。
| 步骤 | 你在做什么 | 需要角色 |
|---|---|---|
| 1. KMS 密钥 | 在 KMS 中创建非对称签名密 AWS 钥。 | AWS 管理员(KMS 和 IAM 控制台访问权限) |
| 2. 证书 | 使用 KMS 公钥生成自签名证书。 | 与步骤 1 相同(需要AWS CLI 和 OpenSSL) |
| 3. 进入应用程序 | 在 Microsoft Entra 中注册应用程序,分配 API 权限,然后上传证书。 | 微软 365 全球管理员或特权角色管理员 |
| 3b。 Sites.Selected (可选) | 创建临时管理应用程序并通过 Microsoft Graph API 授予每个站点的权限。 | 微软 365 全球管理员(与步骤 3 相同) |
| 4. KMS 密钥访问权限 | 向 Amazon Quick 授予使用 KMS 密钥进行签名的权限。 | Amazon Quick 管理员(管理员专业版) |
| 5. 创建 KB | 使用前面步骤中的凭证在 Amazon Quick 中创建知识库。 | 任何 Amazon Quick 用户(作者专业版或管理员专业版) |
提示
在许多组织中,一个人同时拥有两者 AWS 兼有 Microsoft 365 管理员访问权限即可完成所有步骤。如果职责按团队分配,请共享此表格以协调设置。
先决条件
开始之前,请确保您拥有:
-
一个拥有处于活动状态的 Amazon Quick 实例的 AWS 账户。
-
访问 AWS KMS 控制台(用于创建签名密钥)。
-
Amazon Quick 管理员访问权限(Admin Pro 角色),用于授予 KMS 密钥权限。
-
微软 365 租户在 SharePoint 线。
-
使用 Microsoft Entra ID 访问全局管理员或特权角色管理员。
-
OpenSSL 3.0 或更高版本并在本地安装了 AWS CLI。
-
该 AWS 账户和 Amazon Quick 实例必须位于同一区域。
Permissions
您分配的权限取决于两个选择:
-
是否计划启用文档级访问控制(ACL 抓取)。
-
是要授予对所有 SharePoint 网站的访问权限还是仅授予对特定网站的访问权限。
选择您的权限范围
默认情况下,Entra 应用程序注册使用Sites.Read.All或Sites.FullControl.All,后者授予对租户中所有 SharePoint 网站的访问权限。如果您的组织需要最低权限访问权限,则可以改用Sites.Selected。使用后Sites.Selected,该应用程序只能访问您明确授予权限的网站。
| Scope | 访问 | 其他步骤 |
|---|---|---|
| 所有站点(默认) | 应用程序可以读取租户中的所有 SharePoint 站点。 | — |
Sites.Selected |
应用程序只能访问您明确授权的网站。 | 每个站点都需要一个临时管理应用程序和一个 Microsoft Graph API 调用。请参阅步骤 3b:授予站点级权限(仅限)Sites.Selected。 |
注意
如果您使用Sites.Selected,则必须单独授予每个站点的访问权限。将来添加到知识库中的任何新网站也需要单独授予权限。
所有网站 — 仅限内容(没有 ACL)
| API | 权限 | Type |
|---|---|---|
| Microsoft Graph | Sites.Read.All |
应用程序 |
| SharePoint 休息 | Sites.Read.All |
应用程序 |
所有站点-具有 ACL 爬行功能
| API | 权限 | Type |
|---|---|---|
| Microsoft Graph | Sites.Read.All |
应用程序 |
| Microsoft Graph | User.Read.All |
应用程序 |
| Microsoft Graph | GroupMember.Read.All |
应用程序 |
| SharePoint 休息 | Sites.FullControl.All |
应用程序 |
重要
选择前面表格中的所有站点权限或下表中的Sites.Selected权限。不要将两者合并。如果您不确定,请从所有站点开始。如果需要,您可以Sites.Selected稍后再创建一个新的 Entra 应用程序注册。
Sites.Selected — 仅限内容(没有 ACL)
| API | 权限 | Type |
|---|---|---|
| Microsoft Graph | Sites.Selected |
应用程序 |
| SharePoint 休息 | Sites.Selected |
应用程序 |
Sites.Selected — 使用 ACL 爬行
| API | 权限 | Type |
|---|---|---|
| Microsoft Graph | Sites.Selected |
应用程序 |
| Microsoft Graph | User.Read.All |
应用程序 |
| Microsoft Graph | GroupMember.Read.All |
应用程序 |
| SharePoint 休息 | Sites.Selected |
应用程序 |
注意
OneNote 管理员管理的Notes.Read.All设置不支持抓取 ()。微软于 2025 年 3 月 31 日停用了 OneNote API 的仅限应用程序的代币。User-managed 设置用于 OneNote 内容。
设置期间收集的值
下表汇总了您在设置过程中创建或收集的值以及使用这些值的位置。
| 值 | 在步骤中创建 | 在步骤中使用 |
|---|---|---|
| KMS 密钥 ARN | 1 (千米) | 2(证书)、4(IAM)、快速设置 |
证书文件 (certificate.cer) |
2(证书) | 3(上传入口) |
| 证书指纹 (base64url) | 2(证书) | 快速设置 |
| 应用程序(客户端)ID | 3 (Entra) | 快速设置 |
| 目录(租户)ID | 3 (Entra) | 快速设置 |
| SharePoint 域名网址 | 你的 M365 租户 | 快速设置 |
步骤 1:创建 AWS KMS 非对称签名密钥
使用微软 Entra ID 进行身份验证时,Amazon Quick 使用 AWS KMS 非对称密钥签署 OAuth 断言。私钥永远不会离开 KMS。只有公钥会被导出并嵌入到上传到您的 Entra 应用程序注册的证书中。
创建 KMS 密钥
-
打开 AWS KMS 控制台
。 -
在左侧导航中,选择客户管理的密钥。
-
选择创建密钥。
配置密钥
在配置密钥页面上,设置以下值:
| 设置 | 值 |
|---|---|
| 密钥类型 | 非对称 |
| 密钥用法 | 签名和验证 |
| 密钥规范 | RSA_2048 |
| 密钥材料源 | KMS(推荐) |
| 区域性 | Single-Region 密钥(默认)。 Multi-Region 不支持密钥。 |
添加标签
在添加标签页面上,输入密钥的别名。例如:quick-sharepoint-service-auth。
注意
以下页面上的密钥管理员和密钥使用权限是可选的。对于此设置,默认值就足够了。在步骤 4 中,您分别授予 Amazon Quick 访问密钥的权限。
选择 “跳过查看”,然后选择 “完成” 创建密钥。
记录密钥 ARN
创建密钥后,打开密钥详情页面并记录密钥 ARN。ARN 有以下格式:
arn:aws:kms:us-west-2:123456789012:key/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
在步骤 2、4 以及在 Quick 中创建知识库时,你需要这个值。
步骤 2:生成自签名证书
Microsoft Entra ID 需要 X.509 证书才能验证签名的断言。由于 KMS 私钥永远不会离开 AWS KMS,因此您不能将其直接与 OpenSSL 一起使用。相反,您可以生成临时的本地 key pair 并创建证书签名请求。然后,使用 OpenSSL -force_pubkey 选项将 KMS 公钥注入到最终证书中。结果是一个自签名证书,其公钥与 KMS key pair 匹配。
先决条件
-
AWS 已安装并配置 CLI。
-
OpenSSL 3.0 或更高版本。
-
步骤 1 中的 KMS 密钥 ARN。
生成证书
在终端中运行以下命令。用您自己的placeholder值替换这些值。
验证 OpenSSL 版本
openssl version
确认输出显示版本 3.0 或更高版本。
导出 KMS 公钥
aws kms get-public-key \ --key-idKMS_KEY_ARN\ --regionREGION\ --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 中将其上传到微软 Entra ID。
计算证书指纹
运行以下命令计算证书的 base64url 编码 SHA-1指纹:
openssl dgst -sha1 -binary certificate.cer | base64 | tr '+/' '-_' | tr -d '='
记录这个值。在 Quick 中创建知识库时可以输入它。
注意
base64url 编码的指纹与 Microsoft Entra 门户中显示的十六进制指纹不同。快速需要使用 base64url 格式。
第 3 步:在 Microsoft Entra ID 中注册应用程序
无论您使用的是所有站点权限还是,都需要执行此步骤。Sites.Selected唯一的区别是您在配置 API 权限本节中分配了哪些 API 权限。
注册应用程序
-
在左侧导航栏中,展开 Entra ID,然后选择应用程序注册。
-
选择 “新注册”。
-
对于名称,请输入
QuickSharePointServiceAuth。 -
对于支持的帐户类型,请选择 “仅限此组织目录中的帐户(单租户)”。
-
将重定向 URI 留空。不需要重定向 URI,因为应用程序使用的是客户端凭证流,而不是交互式登录流程。
-
选择注册。
记录申请详情
在应用程序概述页面上,记录以下值:
| 值 | 位置 |
|---|---|
| 应用程序(客户端)ID | 显示在 “概述” 页面的 “基本信息” 下。 |
| 目录(租户)ID | 显示在 “概述” 页面的 “基本信息” 下。 |
配置 API 权限
添加与您的用例相匹配的权限。从该Permissions部分的表格中选择权限。根据您的权限范围(所有网站或 Sites.Selected)以及是否启用 ACL 抓取进行选择。
仅限内容 — 微软 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请参阅,了解备用权限集。
-
在应用程序注册的左侧导航栏中,选择 API 权限。
-
选择添加权限。
-
选择微软 Graph。
-
选择应用程序权限。
-
搜索并选择您的用例所需的 Microsoft Graph 权限,然后选择添加权限。
-
再次选择 “添加权限”。
-
选择 SharePoint(在微软 API 下)。
-
选择应用程序权限。
-
搜索并选择您的用例所需的 SharePoint 权限,然后选择添加权限。
重要
选择 “应用程序权限” 选项卡,而不是 “委派权限”。 Admin-managed 安装程序使用客户端凭证流程,这需要应用程序权限。
授予管理员同意
-
在 API 权限页面上,为 [您的组织] 选择授予管理员同意。
-
出现提示时确认同意。
重要
应用程序权限需要获得管理员同意。没有它,应用程序就无法访问 SharePoint 数据。
上传证书
-
在应用程序注册的左侧导航栏中,选择 “证书和机密”。
-
选择 Certificates (证书) 选项卡。
-
选择上传证书。
-
选择您在步骤 2 中生成的
certificate.cer文件。 -
选择添加。
注意
Entra 门户以十六进制格式显示证书指纹。这与您在步骤 2 中计算的 base64url 编码指纹不同。在 Quick 中配置知识库时,请使用 base64url 值。
步骤 3b:授予站点级权限(仅限)Sites.Selected
如果您选择Sites.Selected作为权限范围,则必须明确授予您的 Amazon Quick Entra 应用程序访问每个 SharePoint网站的权限。这需要一个具有调用 Microsoft Graph API Sites.FullControl.All 权限的临时管理员应用程序。
如果您使用的是所有站点权限范围(Sites.Read.All或Sites.FullControl.All),请跳过此步骤。
获取每个 SharePoint 网站的站点 ID
您需要为要授予访问权限的每个 SharePoint 网站提供站点 ID。要获取站点 ID,请执行以下操作:
-
在浏览器中,导航到该 SharePoint 站点(例如,
https://)。yourcompany.sharepoint.com/sites/SiteName -
追加
/_api/site/id到网址并按回车键。例如:https://yourcompany.sharepoint.com/sites/SiteName/_api/site/id -
该页面显示包含站点 ID(一个 GUID)的 XML 响应。记录这个值。
对要包含在知识库中的每个站点重复此操作。
创建临时管理员应用程序
管理应用程序仅用于向您的 Amazon Quick 应用程序授予网站级权限。完成此步骤后,您可以将其删除。
-
在 Microsoft Entra 管理中心
中,前往 “应用程序注册”,然后选择 “新注册”。 -
在 “名称” 中,输入描述性名称,例如。
Quick-SharePoint-PermissionGranter -
对于支持的帐户类型,请选择 “仅限此组织目录中的帐户(单租户)”。
-
将 “重定向 URI” 留空,然后选择 “注册”。
-
从 “概述” 页面记录应用程序(客户端)ID。
-
选择 API 权限,然后选择添加权限。
-
选择 Microsoft Graph,然后选择应用程序权限。搜索并选择
Sites.FullControl.All。选择添加权限。 -
选择 [您的组织] 的 “授予管理员同意” 并确认。
-
选择 “证书和密钥”,然后选择 “新建客户机密钥”。输入描述,选择到期时间,然后选择添加。
-
立即记录秘密值。此值仅显示一次。
重要
复制密钥值,而不是密钥 ID。该值是用于身份验证的较长字符串。
获取访问令牌
使用管理应用程序凭据从 Microsoft Entra 检索 OAuth 令牌。将这些placeholder值替换为管理应用程序的客户端 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字段。记录此值以供下一步使用。
授予站点级权限
使用管理员令牌授予您的 Amazon Quick Entra 应用程序fullcontrol访问每个 SharePoint 网站的权限。将这些placeholder值替换为步骤 3 中的站点 ID、管理员令牌以及客户端应用程序 ID 和显示名称。
macOS 和 Linux (bash)
curl -s --location "https://graph.microsoft.com/v1.0/sites/SITE_ID/permissions" \ --header "Content-Type: application/json" \ --header "Authorization: BearerADMIN_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 站点重复此命令。将来添加的任何新网站也需要单独授予权限。
清理
在你授予所有必需站点的权限后,你可以从 Microsoft Entra 管理中心删除临时管理应用程序。您授予的站点级权限独立于管理员应用程序仍然有效。
注意
临时管理应用程序仅在你的本地环境中用于调用 Microsoft Graph API。Amazon Quick 从来没有看到也无法访问管理应用程序或其凭证。创建知识库时,只有客户端应用程序凭证才会提供给 Amazon Quick。
第 4 步:向 Amazon Quick 授予 KMS 密钥的权限
Amazon Quick 需要获得使用 KMS 密钥签署 OAuth 断言的权限。您可以通过 Amazon Quick 管理控制台授予此权限。
注意
此步骤需要 Amazon Quick 管理员访问权限(管理员专业版角色)。如果您不是管理员,请您的 Amazon Quick 管理员使用步骤 1 中的 KMS 密钥 ARN 完成此步骤。
重要
如果您的组织管理自己的 Amazon Quick IAM 服务角色,则以下控制台步骤可能不适用。相反,请确保该角色拥有步骤 1 中的 KMS 密钥 ARN 的kms:Sign权限。
-
在 Amazon Quick 中,从左侧导航窗格中选择管理账户。
-
在 “权限” 下,选择AWS 资源。
-
在 AWS 资源页面上,滚动到AWS 密钥管理服务并选中复选框。
-
选择 “选择密钥”。
-
在选择 KMS 密钥对话框中,输入您在步骤 1 中记录的 KMS 密钥 ARN,然后选择添加。
-
密钥 ARN 出现在列表中。选择结束。
-
选择 AWS 资源页面底部的保存。
后续步骤
完成设置后,在 Amazon Quick 中创建 SharePoint 在线知识库连接。有关说明,请参阅在 Amazon Quick 中创建知识库。