Skip to content

On-Security/on-security

Repository files navigation

On-Security:安全的构建应用服务

Ci-Builder License: GPL v3

On-Security是一款集身份认证(Identity Authentication)、访问管理(Access Management)和SSO单点登录(Single Sign On)的安全服务开源框架,支持基于角色(RBAC)、基于属性(ABAC)来灵活控制资源的访问权限,框架基于Spring Security进行编写,支持OpenID Connect1.0OAuth2.1SAML2.0等协议。

特性功能基线

  • 授权方式(Grant Type)
    • 授权码(Authorization Code)
      • 用户同意授权(User Consent)
    • 客户端认证(Client Credentials)
    • 刷新令牌(Refresh Token)
    • 用户名密码(Username Password)
  • 令牌格式(Token Format)
    • JWT
    • Opaque
  • 客户端认证方式(Client Authentication)
    • client_secret_basic
    • client_secret_post
    • client_secret_jwt
    • private_key_jwt
    • none (public clients)
  • 支持外部身份供应商(Identity Provider)
    • Gitee
    • GitHub
    • FaceBook
    • Google
    • ...
  • 应用服务依赖(Application Service)
  • 资源访问控制(Resource Access Control)
    • 基于角色(RBAC)
    • 基于属性(ABAC)
  • 支持SAML2.0认证协议
  • 支持CSA协议
  • 支持单点登录(Single Sign On)
  • 支持使用外部用户
  • 支持用户组织架构概念
  • 提供OpenApi
  • 提供UI管理端
  • 提供会话管理(Session Management)
  • 数据分析
    • 提供用户行为分析
    • 提供用户登录分布分析
    • ...
  • ...

开始使用

On-Security发布的每个版本都已上传到Maven Central,当然如果您想要使用快照版本(Snapshot Version)也可以通过Maven Central中找到,快照版本会通过GitHub Actions自动发布。

Maven方式:

<dependencies>
  <!--添加认证服务器依赖-->
  <dependency>
    <groupId>org.minbox.framework</groupId>
    <artifactId>on-security-authorization-server</artifactId>
  </dependency>
  //...
</dependencies>
<!--定义OnSecurity的统一版本依赖-->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.minbox.framework</groupId>
      <artifactId>on-security-bom</artifactId>
      <version>${on-security.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

${on-security.version}是一个属性定义,可以再properties内指定版本号,也可以替换该占位符,

最新版本on-security-bom依赖请访问OnSecurity Versions查看。

示例

我们提供了使用示例源代码,可以访问on-security-samples查看,也可以通过下面命令直接将源码clone到本地:

git clone https://github.com/On-Security/on-security-samples.git

注意:

  1. 示例运行环境JDK版本为17,可以通过sdkamn来同时管理多个版本的JDK环境
  2. 需要在本机MySQL数据库中创建on-security数据库,初始化SQL脚本

遇到问题

如果您在使用过程中遇到了问题,可以通过提交issues的方式来寻求帮助,作者以及相关贡献者看到问题会做出解答。

开源许可

On-Security 是在 GPL-3.0 许可下发布的开源软件。

About

基于Spring Security编写,支持OpenID Connect 1.0、OAuth 2.1协议规范的统一身份认证、联合身份认证、SSO单点登录框架

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published