# op-idp **Repository Path**: liyuncc/op-idp ## Basic Information - **Project Name**: op-idp - **Description**: OP-IDP 是一个基于 Spring Authorization Server 自研的 OAuth2/OIDC 身份认证平台(对标 Auth0/Keycloak),提供统一登录、单点登录(SSO)、统一登出(SLO)、多因素认证(MFA)与管理后台,定位私有化单租户交付,开箱即用。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: https://liyuncong.cn - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2023-11-29 - **Last Updated**: 2026-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OP-IDP - 身份认证平台 > 版本:v1.0.0 > 最后更新:2026-09-12 > OAuth2 / OIDC 统一身份认证平台(Identity Provider) ## 项目概述 **op-idp = 身份认证中心(Identity Provider)**,负责 **认证(Authentication)** 与 **身份(Identity)**,不负责业务权限(Authorization)。 核心使命: 1. **确认用户是谁(Who you are)** 2. **安全地发放 Token(ID Token / Access Token / Refresh Token)** 定位为**私有化单租户交付**的授权服务器,不做 SaaS 多租户。 ### 核心特性 - 标准合规:基于 Spring Authorization Server 完整实现 OAuth2.0 / OIDC 核心规范 - 安全可靠:Token 安全、密钥安全、会话安全、审计可追溯 - 单点登录(SSO):auth-ui 与 console 共享 AS Session,支持统一登出(OIDC RP-Initiated Logout + Front-Channel SLO) - 可扩展:支持多种登录方式(密码 / MFA / 第三方联邦登录)、Token 策略 - 专业体验:对标 Authing / Okta / Keycloak 的用户体验 --- ## 项目结构 ``` op-idp/ ├── op-idp-server # OAuth2/OIDC 授权服务器(后端,DDD 分层) ├── op-idp-auth-ui # 用户门户(登录、注册、授权确认、账号中心) ├── op-idp-console # 管理后台(用户、客户端、策略、RBAC 管理) ├── op-idp-shared # 共享包(API 封装、工具、常量、类型) └── docs/ # 项目文档(架构 / API / 产品 / 安全 / 运维) ``` --- ## 模块说明 ### op-idp-server(后端授权服务器) **定位**:身份认证中心的核心引擎(Identity Provider Core / Authorization Server) **技术栈**: - Spring Boot 3.5.5 + Spring Authorization Server 1.5.2(JDK 21) - Spring Security 6.5.3 / Spring Data JPA / Spring Data Redis - Spring Session Data Redis(会话持久化,支持多副本共享与 SLO 广播) - MySQL 8.0+ / Redis 7.0+ - JWT(RS256),Thymeleaf(服务端错误页) **核心功能**: - 协议层:`/authorize`、`/token`、`/userinfo`、`/connect/logout`(OIDC RP-Initiated Logout)、`/oauth2/jwks`、`/.well-known/openid-configuration` - 认证与会话:密码登录(Username/Email/Phone)、MFA(TOTP)、第三方登录(Gitee 已集成)、Session 持久化(Redis) - 单点登出:Front-Channel Logout 广播(iframe 通知各 RP),Back-Channel Logout 待实施 - Token 策略:`idp_token_policy` 命名策略,客户端经 `token_policy_id` 引用,运行时动态覆盖 - 用户与身份:四表 IdP 架构(`idp_user` / `idp_user_account` / `idp_user_credentials` / `idp_federated_identity`) - RBAC:`idp_user_role` / `idp_user_permission` 角色权限体系,管理员由 `IDP_ADMIN` 角色判定 - 管理 API:提供给 op-idp-console 的 `/api/v1/*` REST 接口 **部署**:Docker 容器,端口 `9000` **详细文档**:[op-idp-server 产品蓝图](./docs/product/OP_IDP_SERVER_PRODUCT_BLUEPRINT.md) | [op-idp-server README](./op-idp-server/README.md) --- ### op-idp-auth-ui(用户认证门户) **定位**:身份认证中心的用户侧产品层(Identity Experience Layer) **技术栈**: - Vue 3 + Vite + TypeScript(`