本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置外部身份提供商 (IdP) 身份验证
外部身份提供商 (IdP) 身份验证允许您的组织使用与 OIDC 兼容的现有身份提供商(例如 Okta 或 Microsoft Entra ID)来管理用户对 Agent Space Web 应用程序的访问权限。 AWS DevOps 用户直接通过您的 IdP 使用其公司证书登录,无需 AWS 使用 IAM 身份中心。
先决条件
在设置外部 IdP 身份验证之前,请确保:
兼容 OIDC 的身份提供商(Okta 或 Microsoft Entra ID)
管理员对您的身份提供商的访问权限
访问 AWS DevOps 代理控制台的管理员权限
已配置或准备创建的代理空间
工作原理
配置外部 IdP 身份验证时:
用户导航到 Agent Space Web 应用程序 URL
它们会被重定向到您的身份提供商的登录页面
使用公司凭证进行身份验证后,他们会被重定向回 Web 应用程序
Web 应用程序将身份验证令牌交换为限于 Agent Space 的短期 AWS 凭证
会话的有效期最长为 8 小时。使用 OIDC 刷新令牌自动刷新凭证,无需用户重新进行身份验证。
配置外部 IdP 身份验证
步骤 1:在您的身份提供商中注册应用程序
选择您的身份提供商,然后按照相应的设置说明进行操作。
选项 A:Okta
在 Okta 管理员控制台中,导航到 “应用程序” > “应用程序”,然后选择 “创建应用程序集成”
选择 OIDC-OpenID Connect 作为登录方法,选择 Web 应用程序作为应用程序类型。选择下一步。
为应用程序设置描述性名称(例如,
AWS DevOps Agent)在 “拨款类型” 下,确保选中以下各项:
授权码(默认)
刷新令牌-这是会话刷新所必需的。如果未启用,用户将无法维护会话。
注意
默认情况下,Okta 不启用刷新令牌授权类型。您必须明确启用它。
暂时将登录重定向 URIs保留为默认值 — 您将在配置代理空间后对其进行更新
在 “分配” 下,分配应具有访问权限的用户或群组
选择保存
在应用程序的 “常规” 选项卡上,记下以下值:
客户端 ID
客户机密钥-选择 “复制” 以安全地保存此值
记下你的 Okta 域名 ——这是你的发行商网址(例如
https://dev-12345678.okta.com)。
注意
在 “登录” 选项卡上,确认颁发者已设置为 Okta URL(不是动态)。这样可以确保发行者 URL 稳定。
注意
请勿在授权服务器的 “声明” 选项卡中的 ID 令牌中添加群组声明。 AWS DevOps 代理不使用您的 IdP 的群组成员资格。
选项 B:微软 Entra ID
在 Azure 门户中,导航到微软 Entra ID > 应用程序注册 > 新注册
设置描述性名称(例如,
AWS DevOps Agent)在 “支持的账户类型” 下,选择适合您的组织的选项(通常仅限此组织目录中的帐户)
暂时将重定向 URI 留空。选择 “注册”
在应用程序概述页面上,记下以下值:
应用程序(客户端)ID — 在配置代理空间时用作客户端 ID
目录(租户)ID — 用于构造发行者 URL
导航到 “证书和密钥” > “新建客户机密”
设置描述和到期时间
选择 “添加” 并立即复制密钥值 — 它不会再次显示
Entra ID 的发行者网址遵循此格式。
{tenant-id}替换为步骤 5 中的目录(租户)ID:https://login.microsoftonline.com/{tenant-id}/v2.0
注意
请勿在令牌配置中启用群组的可选声明。 AWS DevOps 代理不使用您的 IdP 的群组成员资格。
步骤 2:启用带有 IdP 身份验证的操作员应用程序
在 AWS DevOps 代理控制台中,选择您的代理空间
前往 “访问权限” 选项卡
在 “用户访问权限” 下,选择 “外部身份提供商”
在配置表单中,配置以下内容:
身份提供商-选择您的身份提供商(Okta 或 Microsoft Entra ID)
颁发者网址-您的身份提供商提供的 OIDC 颁发者网址
客户端 ID — 来自您创建的 OIDC 应用程序的客户端 ID
客户端密钥 — 来自 OIDC 应用程序的客户端密钥
在 “身份提供商应用程序角色名称” 下,选择以下三个选项之一:
自动创建新的 DevOps 代理角色(推荐)-创建具有适当权限的新服务角色
分配现有角色-使用您已经创建的现有 IAM 角色
使用策略模板创建新的 DevOps 代理角色 — 使用提供的详细信息在 IAM 控制台中创建自己的角色
查看表单底部显示的回调 URL 警告提醒。复制此 URL — 您需要将其添加到身份提供商允许的重定向中, URIs 然后用户才能登录。
选择 Connect (连接)。
选择 Connect 后,控制台将显示包含以下详细信息的外部身份提供者配置:
提供商-您选择的身份提供商
颁发者网址-已配置的 OIDC 颁发者网址
客户端 ID-配置的客户端 ID
IAM 角色 ARN — 用于用户访问的 IAM 角色
回调 URL — 在您的身份提供商中将此 URL 配置为允许的重定向 URI
登录 URL — 使用此 URL 通过您的身份提供商访问 Web 应用程序
第 3 步:将回传 URL 添加到您的身份提供商
Okta
在 Okta 管理员控制台中,导航到应用程序的 “常规” 选项卡
在 “登录” 下,选择 “编辑”
将回调 URL 添加为登录重定向 URI:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/callback
(可选)设置启动登录 URI 以启用 IdP 从 Okta 控制面板启动的登录:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/login
(推荐)添加注销重定向 URI,以便在注销后将用户重定向回 Web 应用程序。否则,用户在注销时可能会看到错误页面:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome
选择保存
Microsoft Entra ID
在 Azure 门户中,导航到应用程序的身份验证页面
在平台配置下,选择添加平台 > Web
输入回传 URL 作为重定向 URI:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/callback
(可选)添加注销重定向 URI,以便在注销后将用户重定向回 Web 应用程序:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome
选择 “配置”
步骤 4:验证配置
导航到控制台中显示的登录 URL:
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/idp/login
您应该被重定向到身份提供商的登录页面
使用您的公司凭证登录
成功进行身份验证后,您将被重定向回 Agent Space Web 应用程序
更新 IdP 配置
你可以在不断开连接的情况下轮换客户端密钥:
在 AWS DevOps 代理控制台中,选择您的代理空间
前往 “访问权限” 选项卡
在 “外部身份提供商配置” 下,选择 “轮换客户端密钥”
输入新的客户密钥
选择保存
要更改任何其他 IdP 配置字段(例如颁发者 URL、客户端 ID 或身份提供者),必须断开现有 IdP 的连接并配置一个新的 IdP。
用户如何访问 Agent Space Web 应用程序
配置外部 IdP 身份验证后:
与授权用户共享 Agent Space Web 应用程序 URL
当用户导航到该 URL 时,他们会被重定向到您的身份提供商的登录页面
输入他们的凭证(如果由你的 IdP 配置,则完成 MFA)后,他们将被重定向回 Agent Space 网络应用程序
会话会自动刷新 — 有关详细信息,请参阅会话管理
会话管理
Agent Space Web 应用程序的外部 IdP 会话具有以下特征:
会话时长-浏览器会话持续长达 8 小时。这在 AWS DevOps 代理中不可配置。如果您的 IdP 会话生命周期超过 8 小时,则可以在用户下次访问时自动重新进行身份验证,而无需输入凭据。根据组织的安全要求配置 IdP 的会话和令牌生命周期。
凭据刷新 — 使用 OIDC 刷新令牌自动刷新会话,无需用户重新进行身份验证
多重身份验证-在您的身份提供商中配置时支持。IdP 在登录期间处理 MFA — 无需在代理中进行其他配置 AWS DevOps
注销行为
当用户在 Web 应用程序中单击 “注销” 时:
所有会话 cookie 都会立即被清除
用户被重定向到身份提供商的 OIDC 注销端点以终止 SSO 会话
如果配置了注销重定向 URI,则用户将被重定向回 Web 应用程序欢迎页面
撤消用户访问权限
要立即撤消用户的访问权限,您可以直接在身份提供商的管理门户中撤消他们的会话:
Okta — 在 Okta 管理员控制台中,导航到 “目录” > “人员”,选择用户,选择 “更多操作” > “清除用户会话”
Microsoft Entra ID — 在 Azure 门户中,导航到 “用户”,选择用户,然后选择 “撤消会话”
安全注意事项
客户端密钥存储 — 如果您在创建代理空间时提供了客户管理的 KMS 密钥,则使用客户管理的 KMS 密钥进行加密,否则使用服务拥有的密钥进行加密。初始配置后,它永远不会在 API 响应中返回,也不会显示在控制台中。
客户端密钥轮换 — Entra 客户端密钥具有可配置的过期时间。使用 AWS DevOps 代理控制台中的 “轮换客户端密钥” 选项设置提醒,以便在密钥到期之前轮换密钥。如果密钥过期,则在轮换密钥之前,用户将无法登录。
令牌生命周期管理 — 身份提供商颁发的令牌(访问令牌、刷新令牌)的生命周期由您的 IdP 的配置控制。我们建议在您的 IdP 中配置适当的令牌生命周期:
Okta — 在 “安全” > “API” > “授权服务器” > “访问策略” 下配置令牌生命周期
Microsoft Entra ID — 使用令牌生命周期策略配置令牌
生命周期
群组声明 — 请勿在身份提供商的令牌配置中启用群组声明。 AWS DevOps 代理目前不使用您的 IdP 的群组成员资格。
用户标识符- AWS DevOps 代理使用特定于提供商的声明来唯一识别用户:
Okta — 使用 ID 令牌中的
sub声明Microsoft Entra ID — 使用 ID 令牌中的
oid(对象标识符)声明
这些标识符是不可变的,会出现在 CloudTrail 日志中以供审计。
断开外部 IdP 的连接
在 AWS DevOps 代理控制台中,选择您的代理空间
前往 “访问权限” 选项卡
在 “用户访问权限” 下,选择断开连接
查看确认对话框中列出的影响并确认
断开连接将:
从代理空间中删除 IdP 配置
阻止用户通过外部身份提供商登录
移除与 IdP 用户帐户关联的个人聊天和构件历史记录
活跃的用户会话将持续到其过期或下一次凭据刷新失败。
问题排查
重定向到 IdP 失败 — 验证颁发者网址是否与您的 IdP 的 OIDC 发现端点相匹配。对于 Okta,请确保在 “登录” 选项卡上将发行者设置为 Okta URL(不是动态)。对于 Entra,请使用格式
https://login.microsoftonline.com/{tenant-id}/v2.0。访问被拒绝或策略错误 (Okta)-在 “分配” 下验证用户或其组已分配给应用程序。选中 “登录” > “登录政策” 规则。
登录后出现 IdP 配置错误-您的身份提供商未返回刷新令牌。确保已启用
offline_access范围和刷新令牌授予类型:Okta — 前往应用程序的 “常规” 选项卡并启用 “授权类型” 下的 “刷新令牌” 复选框
Entra — 前往 API 权限并确保列
offline_access在委托权限下
身份验证成功但网络应用显示错误 — 验证您的 IdP 中的重定向 URI 与代理控制台中 AWS DevOps 显示的回调 URL 完全匹配。
身份验证失败-如果您的 IdP 中启用了群组可选声明,请将其禁用。 AWS DevOps 代理不使用团体索赔。
IdP 身份验证后登录失败 — 对于 Entra,应用程序清单
null中未将 verrequestedAccessTokenVersionify 设置为。对于 Okta,请验证发行者网址是否正确。单击 “注销” 后出现错误页面 (Okta) — 如果您在注销后看到
post_logout_redirect_uri错误,请在 Okta 应用程序的 “常规” 选项卡中添加https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome为注销重定向 URI。用户在注销后会留在身份提供者页面上 (Entra) — 要在注销后将用户重定向回 Web 应用程序,请在您的 Entra 应用程序的身份验证页面中添加
https://{agentSpaceId}.aidevops.global.app.aws/authorizer/welcome为重定向 URI。