View a markdown version of this page

设置服务凭证 - Amazon Quick

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

设置服务凭证

在 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.AllSites.FullControl.All,后者授予对租户中所有 SharePoint 网站的访问权限。如果您的组织需要最低权限访问权限,则可以改用Sites.Selected。使用后Sites.Selected,该应用程序只能访问您明确授予权限的网站。

权限范围比较
Scope 访问 其他步骤
所有站点(默认) 应用程序可以读取租户中的所有 SharePoint 站点。
Sites.Selected 应用程序只能访问您明确授权的网站。 每个站点都需要一个临时管理应用程序和一个 Microsoft Graph API 调用。请参阅步骤 3b:授予站点级权限(仅限)Sites.Selected
注意

如果您使用Sites.Selected,则必须单独授予每个站点的访问权限。将来添加到知识库中的任何新网站也需要单独授予权限。

所有网站 — 仅限内容(没有 ACL)

Content-only 权限
API 权限 Type
Microsoft Graph Sites.Read.All 应用程序
SharePoint 休息 Sites.Read.All 应用程序

所有站点-具有 ACL 爬行功能

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)

Sites.Selected 仅限内容的权限
API 权限 Type
Microsoft Graph Sites.Selected 应用程序
SharePoint 休息 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 休息 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 密钥

  1. 打开 AWS KMS 控制台

  2. 在左侧导航中,选择客户管理的密钥

  3. 选择创建密钥

配置密钥

配置密钥页面上,设置以下值:

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-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 中将其上传到微软 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 权限。

注册应用程序

  1. 登录 Microsoft Entra 管理中心

  2. 在左侧导航栏中,展开 Entra ID,然后选择应用程序注册

  3. 选择 “新注册”。

  4. 对于名称,请输入 QuickSharePointServiceAuth

  5. 对于支持的帐户类型,请选择 “仅限此组织目录中的帐户(单租户)”。

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

  7. 选择注册

记录申请详情

在应用程序概述页面上,记录以下值:

应用程序详细信息
位置
应用程序(客户端)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请参阅,了解备用权限集。

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

  2. 选择添加权限

  3. 选择微软 Graph

  4. 选择应用程序权限

  5. 搜索并选择您的用例所需的 Microsoft Graph 权限,然后选择添加权限

  6. 再次选择 “添加权限”

  7. 选择 SharePoint(在微软 API 下)。

  8. 选择应用程序权限

  9. 搜索并选择您的用例所需的 SharePoint 权限,然后选择添加权限

重要

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

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

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

重要

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

上传证书

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

  2. 选择 Certificates (证书) 选项卡。

  3. 选择上传证书

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

  5. 选择添加

注意

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

步骤 3b:授予站点级权限(仅限)Sites.Selected

如果您选择Sites.Selected作为权限范围,则必须明确授予您的 Amazon Quick Entra 应用程序访问每个 SharePoint网站的权限。这需要一个具有调用 Microsoft Graph API Sites.FullControl.All 权限的临时管理员应用程序。

如果您使用的是所有站点权限范围(Sites.Read.AllSites.FullControl.All),请跳过此步骤。

获取每个 SharePoint 网站的站点 ID

您需要为要授予访问权限的每个 SharePoint 网站提供站点 ID。要获取站点 ID,请执行以下操作:

  1. 在浏览器中,导航到该 SharePoint 站点(例如,https://yourcompany.sharepoint.com/sites/SiteName)。

  2. 追加/_api/site/id到网址并按回车键。例如:https://yourcompany.sharepoint.com/sites/SiteName/_api/site/id

  3. 该页面显示包含站点 ID(一个 GUID)的 XML 响应。记录这个值。

对要包含在知识库中的每个站点重复此操作。

创建临时管理员应用程序

管理应用程序仅用于向您的 Amazon Quick 应用程序授予网站级权限。完成此步骤后,您可以将其删除。

  1. Microsoft Entra 管理中心中,前往 “应用程序注册”,然后选择 “注册”。

  2. 在 “名称” 中,输入描述性名称,例如。Quick-SharePoint-PermissionGranter

  3. 对于支持的帐户类型,请选择 “仅限此组织目录中的帐户(单租户)”。

  4. 将 “重定向 URI” 留空,然后选择 “注册”。

  5. 从 “概述” 页面记录应用程序(客户端)ID

  6. 选择 API 权限,然后选择添加权限

  7. 选择 Microsoft Graph,然后选择应用程序权限。搜索并选择Sites.FullControl.All。选择添加权限

  8. 选择 [您的组织] 的 “授予管理员同意” 并确认。

  9. 选择 “证书和密钥”,然后选择 “新建客户机密钥”。输入描述,选择到期时间,然后选择添加

  10. 立即记录秘密。此值仅显示一次。

重要

复制密钥,而不是密钥 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: 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 站点重复此命令。将来添加的任何新网站也需要单独授予权限。

清理

在你授予所有必需站点的权限后,你可以从 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权限。

  1. 在 Amazon Quick 中,从左侧导航窗格中选择管理账户

  2. 在 “权限” 下,选择AWS 资源

  3. 在 AWS 资源页面上,滚动到AWS 密钥管理服务并选中复选框。

  4. 选择 “选择密钥”

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

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

  7. 选择 AWS 资源页面底部的保存

后续步骤

完成设置后,在 Amazon Quick 中创建 SharePoint 在线知识库连接。有关说明,请参阅在 Amazon Quick 中创建知识库