UI はローカライズ済みです。スキルの紹介と説明文書は選択した言語へ AI が自動翻訳し、コード・コマンド・パス・専門用語は原文のままです。原作者の文書が優先されます。
スキルを探す
生産性・共同作業 · SKILL.md

implementing-saml-sso-with-okta

implementing-saml-sso-with-okta

使用 Okta 作为身份提供商(IdP)实施 SAML 2.0 单点登录(SSO)。涵盖 SAML 认证流程的端到端配置、属性映射、证书管理,以及企业 SSO 部署的安全加固。

Independent GitHub snapshot · Automated classification · Original documentation governs

スキルの説明

GitHub

name: implementing-saml-sso-with-okta description: 使用 Okta 作为身份提供商(IdP)实施 SAML 2.0 单点登录(SSO)。涵盖 SAML 认证流程的端到端配置、属性映射、证书管理,以及企业 SSO 部署的安全加固。 domain: cybersecurity subdomain: identity-access-management tags: [iam, identity, access-control, authentication, saml, sso, okta] version: "1.0" author: mahipal license: Apache-2.0

使用 Okta 实施 SAML SSO

概述

使用 Okta 作为身份提供商(IdP)实施 SAML 2.0 单点登录(SSO)。涵盖 SAML 认证流程的端到端配置、属性映射、证书管理,以及企业 SSO 部署的安全加固。

目标

  • 将 Okta 配置为 SAML 2.0 身份提供商
  • 实现 SP 发起和 IdP 发起的 SSO 流程
  • 映射 SAML 属性并配置断言加密
  • 强制使用 SHA-256 签名并安全轮换证书
  • 使用 SAML tracer 工具测试 SSO 流程
  • 实现单点注销(SLO)处理

关键概念

SAML 2.0 认证流程

  1. SP 发起流程:用户访问服务提供商 -> SP 生成 AuthnRequest -> 重定向到 Okta IdP -> 用户认证 -> Okta 发送 SAML Response -> SP 验证断言 -> 授予访问权限
  2. IdP 发起流程:用户在 Okta 认证 -> 选择应用程序 -> Okta 发送主动 SAML Response -> SP 验证 -> 授予访问权限

关键安全要求

  • SHA-256 签名:所有 SAML 断言必须使用 SHA-256(不使用 SHA-1)进行数字签名
  • 断言加密:使用 AES-256 加密 SAML 断言,保护传输中的属性值
  • 受众限制:配置受众 URI,防止断言在不同 SP 之间被重放
  • NotBefore/NotOnOrAfter:强制执行时间有效性窗口,防止使用过期断言
  • InResponseTo 验证:验证断言与原始 AuthnRequest 的对应关系

Okta 应用程序配置

  • 单点登录 URL:SP 上的 ACS(断言消费者服务)端点
  • 受众 URI(SP Entity ID):SP 的唯一标识符
  • Name ID 格式:EmailAddress、Persistent 或 Transient
  • 属性声明:将 Okta 用户配置文件属性映射到 SAML 断言属性
  • 组属性声明:包含用于 RBAC 的组成员资格

实施步骤

第 1 步:在 Okta 中创建 SAML 应用程序

  1. 导航至"Applications > Create App Integration"
  2. 选择 SAML 2.0 作为登录方法
  3. 配置通用设置(应用名称、Logo)
  4. 设置单点登录 URL(ACS URL)
  5. 设置受众 URI(SP Entity ID)
  6. 配置 Name ID 格式和应用程序用户名

第 2 步:配置属性映射

  • 将 user.email 映射到 email 属性
  • 将 user.firstName 和 user.lastName 映射到姓名属性
  • 添加组属性声明以支持基于角色的访问
  • 配置属性值格式(Basic、URI Reference、Unspecified)

第 3 步:下载并安装 IdP 元数据

  • 下载 Okta IdP 元数据 XML
  • 提取 IdP SSO URL、IdP Entity ID 和 X.509 证书
  • 在 SP 端安装证书用于签名验证
  • 使用 ACS URL 和 Entity ID 配置 SP 元数据

第 4 步:实现 SP 端 SAML 处理

  • 解析并验证 SAML Response XML
  • 使用 IdP 证书验证数字签名
  • 检查受众限制、时间条件和 InResponseTo
  • 提取经过认证的用户身份和属性
  • 基于断言数据创建应用程序会话

第 5 步:安全加固

  • 强制所有签名操作使用 SHA-256
  • 使用 AES-256-CBC 启用断言加密
  • 配置会话超时和重新认证策略
  • 为敏感部署实现 SAML 工件绑定
  • 在证书过期前设置证书轮换程序

第 6 步:测试和验证

  • 使用 SAML Tracer 浏览器扩展进行调试
  • 验证 SP 发起和 IdP 发起的流程
  • 使用多个用户账户和组成员进行测试
  • 验证 SLO 功能
  • 在不停机的情况下测试证书轮换

安全控制

控制项NIST 800-53描述
认证IA-2通过 Okta 进行多因素认证
会话管理SC-23SAML 会话生命周期控制
审计日志AU-3记录所有 SSO 认证事件
证书管理SC-17PKI 证书生命周期管理
访问执行AC-3基于 SAML 属性的访问控制

常见误区

  • 使用 SHA-1 而非 SHA-256 进行 SAML 签名
  • 未验证 SAML 响应中的 InResponseTo(重放攻击)
  • IdP 和 SP 之间的时钟偏差导致断言被拒绝
  • 未限制受众 URI 导致断言可被转发
  • 未在证书到期前实施轮换导致服务中断

验证清单

  • 通过 SP 发起流程成功完成 SAML SSO 登录
  • IdP 发起流程正确认证用户
  • SAML 断言使用 SHA-256 签名
  • 属性映射正确填充用户配置文件
  • 会话超时强制重新认证
  • SLO 正确终止 IdP 和 SP 上的会话
  • 证书轮换测试无服务中断
保存したスキル