Skip to content

将 Okta 直连 Kiro Enterprise 需要四个阶段:创建 OIDC 应用用于用户登录、配置自定义 scopes 和访问策略、创建 Kiro Profile 并验证域名、以及创建 SCIM 预配应用同步用户和 group。Okta 需要两个独立应用分别处理登录和预配。

Kiro Enterprise:连接 Okta IdP

将 Okta 与 Kiro Profile 连接需要完成以下四个步骤:

  1. 创建 OIDC Okta 应用
  2. 设置 OIDC 应用的自定义 scopes
  3. 设置 Kiro Profile
  4. 创建 SCIM 预配应用

为什么需要两个应用

使用 Okta 时,需要创建两个应用:一个 OIDC 应用用于用户登录,一个 SCIM 预配应用(使用 Okta App Catalog 中的 AWS IAM Identity Center 集成)用于将用户和 group 同步到 Kiro。

第一步:创建 OIDC 应用

创建新应用集成

在 Okta Admin Console 中,进入 Applications → Applications,选择 "Create App integration"。

  • Sign-in method 选择 "OIDC - OpenID Connect"
  • Application type 选择 "Native Application"

设置描述性名称,例如 Kiro-OIDC,在 Grant type 中勾选 "Refresh Token",其余字段保持默认。

添加重定向 URI

首先添加 kiro://kiro.oauth/callback

然后添加以下 10 个 Sign-in redirect URI(格式为 http://localhost:{port}/oauth/callback,port 分别为):

  • 3128、4649、6588、8008、9091
  • 49153、50153、51153、52153、53153

确保勾选 "Skip group assignment for now",选择 "Save" 完成创建。

添加用户和 group

在应用的 "Assignments" 标签中,选择 "Assign" 按钮,按照指引添加应该有权访问 Kiro 的用户和 group。

第二步:设置自定义 scopes

创建 Kiro 专用 scopes

你需要创建两个 scope,定义用户身份访问 Kiro 所需的授权:

  • codewhisperer:completions:授权用户访问内联代码补全功能
  • codewhisperer:conversations:授权用户访问对话功能

只授予你的组织实际需要的 scopes。

在 Okta Admin Console 中,进入 Security → API,在 "Authorization Servers" 标签中选择 "Add Authorization Server",填写名称和描述后保存。

在 "Scopes" 标签中选择 "Add Scope",添加 codewhisperer:completions,将 "User content" 设为 "Implicit",其余字段保持默认,选择 "Create"。按同样步骤添加 codewhisperer:conversations

添加访问策略

在 "Access Policies" 标签中选择 "Add Policy",设置描述性名称,并将策略分配给你创建的 Kiro OIDC 应用(Kiro-OIDC)。

策略创建后,选择 "Add rule"。除了 "Scopes requested" 字段外保持默认——选择 "The following scopes:" 并添加:

  • codewhisperer:completions
  • codewhisperer:conversations
  • offline_access

选择 "Create rule" 完成。

验证配置:在 "Token Preview" 标签中,OAuth/OIDC client 选择 Kiro-OIDC,Grant type 选择 Authorization Code,Scopes 选择两个 codewhisperer scopes 和 offline_access,点击 "Preview Token"。如果配置正确,Payload 中会包含 issscp(含三个 scopes)字段。

第三步:设置 Kiro Profile

创建 Kiro Profile

在 Kiro console 中选择 "Sign up for Kiro",选择 "Set up application as Admin",再选择 "Connect an existing external Identity provider"。

在 Okta Admin Console 的 Security → API 中,选择你为 Kiro 创建的 Authorization Server,复制 Issuer URI,填入 Kiro Profile 的 Issuer URI 字段。

在 Applications 中打开 Kiro OIDC 应用,复制 Client ID,填入 Kiro Profile 的 Client ID 字段。选择 "Enable" 完成创建。

添加并验证域名

在 Kiro console 中选择 Settings,在 Identity management → Domains 中选择 "Add domain",添加公司域名。

系统会生成验证 token。在 DNS 提供商(如 Amazon Route53)中创建 TXT 记录,填入该 token。几分钟后状态变为 "Verified"。

生成 SCIM Access Token

在 Kiro console 中,进入 Settings → Identity Management → Access Tokens,选择 "Generate Token" 生成 SCIM 预配用的 access token。复制该 token,第四步配置预配时需要用到。

第四步:创建 SCIM 预配应用

创建应用集成

在 Okta Admin Console 中,进入 Applications → Applications,选择 "Browse App Catalog"。搜索 "AWS IAM Identity Center" 并选择 "Add Integration"。

默认 Application label 为 "AWS IAM Identity Center",可以修改或保持默认,选择 "Done"。

在 "Sign On" 标签中,SAML 设置(ACS URL、Issuer URL)保持默认即可——Kiro 使用 OIDC 应用登录,不使用 SAML。

配置 SCIM 预配

在应用的 "Provisioning" 标签中,选择 "Integration" 部分,点击 "Configure API integration"。

勾选 "Enable API integration",然后:

  • Base URL:填入 Kiro console 的 SCIM endpoint(Settings → Identity Management → SCIM Endpoint)
  • API Token:填入第三步生成的 access token
  • 选择 "Test API Credentials",确认成功
  • 选择 "Save"

在 Provisioning → To App → Edit 中,启用:

  • Create Users
  • Update User Attributes

选择 "Save"。

同步 Groups(可选)

如果要将 Okta groups 同步到 Kiro,需要先完成一个前置操作:

在 AWS IAM Identity Center 应用的 "Provisioning → To App" 中,滚动到 AWS IAM Identity Center Attribute Mappings 部分,移除 "department" 和 "employeeNumber" 两个属性。

然后分配 group:在 "Assignments" 标签中选择 "Assign" → "Assign to Groups",选择需要同步的 group 并完成步骤。

最后设置 group 同步:

  • 选择 "Push Groups" 标签
  • 点击 "Push Groups" 按钮,选择 "Find groups by name"
  • 选择要推送的 group,选择 "Save"
  • 确认 Group status 显示为 Active

完成后,按照 订阅指南 为用户创建 Kiro 订阅。

安全注意事项

Session 管理:Kiro 使用 OIDC refresh token 维持 session。你无法从 Kiro console 强制撤销活跃 session——移除 Okta OIDC 应用中的用户后,下次 token 刷新时访问会被拒绝(Applications → Kiro OIDC application → Assignments,选择用户旁的 × 移除)。

Profile 删除警告:删除 Kiro profile 后用同一 Okta 应用创建新 profile,group 成员关系不会同步,必须完整重新预配。

防止未授权访问:不要将不应访问 Kiro 的用户添加到 Kiro 应用。创建基于 group 的订阅后,在 Kiro console Subscriptions 标签中确认没有意外订阅的用户。

移除用户:从 Kiro OIDC 应用的 Assignments 中移除用户后,后续登录会被阻止,但现有 session 会在下次 token 刷新前保持有效。还需手动在 Kiro console 删除该用户订阅以释放席位。

故障排查

遗漏步骤表现修复方法
用户未加入 OIDC 应用用户无法登录在 OIDC 应用的 Assignments 标签中添加用户
未启用预配的 Create Users用户未同步到 Kiro在 SCIM 预配应用中,进入 Provisioning > To App,启用 "Create Users"
未移除 department/employeeNumber 属性Group 同步失败在 Provisioning → To App 的 Attribute Mappings 中移除这两个属性
OIDC 应用和 SCIM 应用中的用户不一致部分用户可以登录但未预配确保用户同时在 OIDC 应用和 SCIM 预配应用中

常见问题

Q: 为什么 Okta 需要两个独立应用?

A: OIDC 应用处理用户登录认证流程,SCIM 预配应用负责将用户和 group 同步到 Kiro 目录。两者功能不同,Okta 的设计需要分开配置。

Q: Group 变更多久同步到 Kiro?

A: Okta 会在 group 成员变更时立即推送到 Kiro,不像 Entra ID 有 40 分钟延迟。

Q: SCIM token 需要定期轮换吗?

A: 是的,SCIM token 是长期凭据,需按组织安全策略手动轮换。如果 token 泄露,立即在 Kiro console 撤销并生成新 token。