Appearance
将 Microsoft Entra ID 直连到 Kiro Enterprise 需要五个阶段:在 Entra 中创建应用、配置 API scopes 和重定向 URI、在 Kiro console 创建 Profile 并验证域名、配置 SCIM 自动预配、以及将用户和 group 同步到 Kiro。完成后即可为用户创建 Kiro 订阅。
Kiro Enterprise:连接 Microsoft Entra ID
将 Microsoft Entra ID 直连 Kiro,需要完成以下五个阶段:
- 在 Entra 中创建 Kiro 应用
- 配置 Entra 应用
- 创建 Kiro Profile
- 配置 Entra 应用预配(Provisioning)
- 添加用户和 group
第一步:在 Entra 中创建应用
在 Microsoft Entra 管理中心创建新应用:
进入 Enterprise applications → New application,在 Microsoft Entra App Gallery 中选择 "Create your own application"。
设置一个描述性名称,例如 Kiro-Entra。在 "What are you looking to do with your application?" 字段中选择 "Integrate any other application you don't find in the gallery (Non-gallery)",然后选择 "Create"。
第二步:配置 Kiro 应用
配置刚创建的 Entra 应用,让用户身份能以正确的授权访问 Kiro。
暴露 API endpoint
在 App registrations → All applications → Kiro-Entra 中,选择 "Expose an API",点击 Application ID URI 旁边的 "Add" 链接,保存默认值。
然后添加两个 scope:
codewhisperer:completions(授权用户访问代码补全功能):
| 字段 | 值 |
|---|---|
| Scope Name | codewhisperer:completions |
| Who can consent? | Admins and Users |
| Admin consent display name | codewhisperer:completions |
| Admin consent description | codewhisperer:completions |
| State | Enabled |
codewhisperer:conversations(授权用户使用对话功能):
| 字段 | 值 |
|---|---|
| Scope Name | codewhisperer:conversations |
| Who can consent? | Admins and Users |
| Admin consent display name | codewhisperer:conversations |
| Admin consent description | codewhisperer:conversations |
| State | Enabled |
只授予你的组织实际需要的 scopes。
添加重定向 URI
在 Kiro-Entra 应用中选择 "Authentication (Preview)",点击 "Add Redirect URI",平台选择 "Mobile and desktop application"。
需要添加两个重定向 URI:
kiro://kiro.oauth/callbackhttp://localhost/oauth/callback
设置 Access Token 版本
Entra ID 默认使用 OAuth 1.0,Kiro 要求 OAuth 2.0。在 Manifest 中将 api.requestedAccessTokenVersion 字段设为 2 并保存。
第三步:设置 Kiro Profile
创建 Kiro Profile
在 AWS console 的 Kiro console 中选择 "Get started",选择 "Connect an existing Identity provider"。
在 Entra 的 App registrations → All applications → Kiro-Entra Overview 页面中:
- 复制 "Application (client) ID",填入 Kiro Profile 的 Application ID 字段。
- 复制 "Directory (tenant) ID",填入 Kiro Profile 的 Tenant ID 字段。
- 选择 "Create" 完成创建。
添加并验证域名
在 Kiro console 中选择 Settings,在 Identity management → Domains 中选择 "Add domain",添加公司域名。
系统会生成一个验证 token。在你的 DNS 提供商(如 Amazon Route53)中创建 TXT 记录,填入该 token。几分钟后状态变为 "Verified"。
第四步:配置 Entra 应用预配
设置预配
在 Entra ID 管理控制台,进入 Enterprise Apps → Kiro-Entra → Provisioning,点击侧边栏 "Provisioning"。
将 Provisioning Mode 设为 Automatic,然后:
- 在 Kiro console 的 Settings → Identity Management → Access Tokens 中点击 "Generate Token",复制 token。
- 将 token 填入 Entra 预配配置的 "Secret Token" 字段。
- 从 Kiro profile Settings 页面复制 "SCIM Endpoint" 值,填入 Entra 预配配置的 "Tenant URL" 字段。
- 点击 "Test Connection" 验证,成功后选择 "Save"。
SCIM token 安全说明:SCIM access token 是长期凭据,请像密码一样对待。Token 不会自动轮换,需按组织的凭据轮换策略手动更新。如果 token 泄露,立即在 Kiro admin console(Settings → Identity Management → Access Tokens)撤销,生成新 token 并更新到 Entra 预配配置中。
添加属性映射
刷新 Entra 应用页面后,进入 "Attribute mapping (Preview)" 部分。选择 "Provision Microsoft Entra ID Users",点击 "Edit" 修改 externalId 属性,将 Source attribute 设为 objectId 并保存。
objectId 是用户/group 的稳定唯一标识,不会随时间变化,确保 Kiro 能正确识别和同步。
第五步:添加用户和 group
配置完成后,需要指定哪些用户和 group 会同步到此应用。
在 Entra ID 应用的 "Users and groups" 部分可以查看自动预配的用户。如需手动触发,进入 "Provisioning" 页面选择 "Provision On Demand"。
预配 group 时,确保选中 group 中所有用户,并重复以上步骤添加所有需要同步的用户和 group。
完成后,按照 订阅指南 为用户创建 Kiro 订阅。
安全注意事项
Session 管理:Kiro 使用 OIDC refresh token 维持用户 session。你无法从 Kiro console 强制撤销活跃 session——需要在 Entra 应用中移除用户,下次 token 刷新时访问会被拒绝。
Profile 删除警告:如果删除 Kiro profile 后用同一 Entra 应用创建新 profile,group 成员关系不会同步。必须完整重新预配应用。
防止未授权访问:不要将不应访问 Kiro 的用户添加到 Entra 应用。订阅创建后,在 Kiro console 的 Subscriptions 标签中确认没有意外订阅的用户。
移除用户:从 Entra 应用移除用户会阻止后续登录,但现有 session 会在下次 token 刷新前保持有效。移除 Entra 应用中的用户后,还需手动在 Kiro console 删除该用户的订阅以释放席位。
故障排查
| 遗漏步骤 | 表现 | 修复方法 |
|---|---|---|
| 未将 access token 版本设为 2 | 登录后 API 调用返回授权错误 | 在 App registrations 中编辑 Manifest,将 api.requestedAccessTokenVersion 设为 2 |
| 未在 Expose an API 中添加 scopes | 登录界面报错 | 添加 codewhisperer:completions 和 codewhisperer:conversations scopes |
| 未设置属性映射 | 登录后用户没有订阅,API 调用失败 | 在 Attribute Mapping 中将 externalId source attribute 设为 objectId,删除所有订阅后重新预配 |
| 未添加重定向 URI | 登录尝试显示错误页面 | 在 Authentication 设置中添加所需重定向 URI |
| 未手动触发预配 | 用户/group 不出现在 Kiro console | 进入 Provisioning 页面选择 "Provision on Demand" |
| 预配后删除 profile 并用同一应用创建新 profile | Group 成员关系不同步 | 生成新 SCIM token,从头完整重新预配应用 |
常见问题
Q: group 成员变更多久同步到 Kiro?
A: 大约每 40 分钟自动推送一次。管理员可以在 Entra console 使用 "Provision on Demand" 立即触发同步。
Q: 可以强制让用户立即下线吗?
A: 不能直接从 Kiro console 强制撤销 session。移除 Entra 应用中的用户后,现有 session 会在下次 token 刷新时自动失效。
Q: SCIM token 需要定期轮换吗?
A: 是的,SCIM token 是长期凭据,需按组织安全策略手动轮换。Kiro 不会自动轮换 token。