uliyach45/CTI-Lab-Keycloak-IAM-Integration

GitHub: uliyach45/CTI-Lab-Keycloak-IAM-Integration

面向网络威胁智能课程的Keycloak集中式IAM实验指南,系统讲解SSO、OAuth 2.0、OpenID Connect与LDAP集成及安全加固实践。

Stars: 0 | Forks: 0

# CTI-Lab-Keycloak-IAM 集成 网络威胁智能 (CTI) 实验 3 — 配置 Keycloak 作为集中式身份与访问管理 (IAM) 解决方案,并将 SSO、OAuth 2.0 和 OpenID Connect 集成到现有企业环境中 # CTI 实验 3 — Keycloak IAM 集成指南 **学生:** Uliya Fatima | **学号:** 232098 **课程:** 网络威胁智能 (CTI) | **实验:** 03 **日期:** 2026年3月6日 ## 概述 本实验涵盖了将 **Keycloak** 配置为集中式身份与访问管理 (IAM) 解决方案,并将其集成到现有企业环境中。Keycloak 提供单点登录 (SSO)、OAuth 2.0 和 OpenID Connect 功能,用于跨多个应用程序进行集中式身份验证和授权。 ## 前置条件 | 组件 | 要求 | |-----------|-------------| | Java 运行时 | Java 17 或更高版本(推荐使用 OpenJDK) | | 网络访问 | 端口 8080 (HTTP) 和 8443 (HTTPS) 已开放 | | 数据库 | PostgreSQL、MySQL 或 MariaDB(开发环境可使用 H2) | | DNS | 在网络中可解析的有效主机名或 FQDN | | 访问权限 | 目标服务器上的 Root 或 sudo 权限 | ## 第一部分 — Keycloak 安装与初始设置 ### 步骤 **1. 访问管理控制台** - 导航到 Keycloak 管理控制台 URL - 使用管理员凭据登录 **2. 配置 Realm 设置** - 创建或配置一个 realm 作为顶层 IAM 容器 - 该 realm 包含所有客户端、用户和角色 **3. 客户端注册与配置** - 将目标应用程序注册为客户端 - 配置身份验证协议和重定向 URI ## 第二部分 — 集成配置 ### 4.1 身份提供者配置 配置外部身份提供者(Active Directory、LDAP 或社交提供者)以启用联合身份验证。 ### 4.2 身份验证流程设置 定义自定义身份验证流程以符合组织安全策略——控制用户完成身份验证必须经历的步骤顺序。 ### 4.3 用户联合与 LDAP 集成 从外部目录(Active Directory / LDAP)同步用户,以避免重复的账户管理。 ### 4.4 角色与组管理 定义 realm 级别的角色、客户端特定的角色和复合角色,以实现精细化的访问控制。 ## 第三部分 — 高级配置 ### Token 配置 配置访问 token、刷新 token 和会话超时值: - 推荐:**访问 Token** — 5–15 分钟 - 使用刷新 token 以最大限度地减少 token 泄露的影响 ### Protocol Mapper 配置 配置 protocol mapper,将用户属性和角色信息转换为集成应用程序所需的 token claims。 ## 第四部分 — 验证与测试 ### SSO 登录流程 - 通过配置的客户端测试端到端身份验证 - 检查 token 响应以确认所有预期的 claims 都存在 ### Token 内省 ``` # 示例 token 内省请求 curl -X POST https:///realms//protocol/openid-connect/token/introspect \ -d "token=" \ -u ":" ``` ### 用户身份验证测试 - 使用测试凭据执行端到端登录 - 验证会话建立和正确的授权 claims ## 第五部分 — 事件监控与审计日志 ### 事件日志配置 - 启用 Keycloak 事件监听器以捕获: - 登录事件 - 失败的身份验证尝试 - Token 交换 - 管理变更 - 通过自定义事件监听器将事件转发到外部 SIEM(例如 Elastic Stack) ### 管理员审计追踪 - 审查管理员审计日志,了解 realm 变更、用户创建和角色分配情况 ## 安全建议 | # | 建议 | |---|---------------| | 1 | **启用 TLS/HTTPS** — 使用带有有效 TLS 证书的反向代理(Nginx/Apache);在生产环境中切勿通过纯 HTTP 暴露 | | 2 | **限制管理控制台** — 将访问权限限制在内部 IP;禁用公共管理控制台暴露 | | 3 | **暴力破解保护** — 启用内置检测,在多次失败后锁定账户 | | 4 | **缩短 Token 有效期** — 访问 token:5–15 分钟;使用刷新 token | | 5 | **启用审计日志** — 将所有事件转发到中央 SIEM | | 6 | **定期更新** — 监控 Keycloak 安全公告并及时应用补丁 | ## 结论 本实验成功演示了: - 将 Keycloak 安装和配置为集中式 IAM 平台 - 使用 OAuth 2.0 / OpenID Connect / SAML 2.0 与现有企业环境集成 - 用户联合、角色管理和身份验证流程自定义 - 事件监控和审计日志设置 - 安全加固最佳实践 ## 参考 - [Keycloak 官方文档](https://www.keycloak.org/documentation) - [Keycloak 安全公告](https://www.keycloak.org/security) ## 工具与技术 `Keycloak` `IAM` `SSO` `OAuth2` `OpenID-Connect` `SAML` `LDAP` `Active-Directory` `Identity-Management` `Access-Control` `CTI` `Cybersecurity` `Java`
标签:Checkov, IAM, IdP, Keycloak, LDAP, MIT许可证, OAuth 2.0, OIDC, OpenID Connect, PostgreSQL, SSO, Terraform 安全, 企业安全架构, 单点登录, 实验报告, 授权管理, 教学资料, 活动目录, 测试用例, 网络威胁情报, 网络安全, 网络安全实验, 身份与访问管理, 身份提供商, 隐私保护, 集中式认证