当前位置: 首页 > news >正文

UI 优先的统一身份认证系统 Casdoor

Casdoor 是一个基于 OAuth 2.0 / OIDC 的 UI 优先集中认证 / 单点登录 (SSO) 平台,简单点说,就是 Casdoor 可以帮你解决 用户管理 的难题,你无需开发用户登录注册等与用户鉴权相关的一系列功能,只需几个步骤,简单配置,与你的主应用配合,便可完全托管你的用户模块,简单省心,功能强大。

仓库地址: GitHub - casbin/casdoor: An open-source UI-first Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA and RADIUS

演示地址: https://door.casbin.com/

官网文档: Casdoor · An Open Source UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform supporting OAuth 2.0, OIDC, SAML and CAS | Casdoor · An Open Source UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform supporting OAuth 2.0, OIDC, SAML and CAS

Casdoor 目前作为 Casbin 社区项目统一使用的鉴权平台,项目已开源,希望得到大家的一些建议和 Star~,我们会及时跟进反馈并改正问题哒。

为什么要用 Casdoor ?

用户管理一直是项目中非常令人头疼的一个问题,不仅要确保安全性,功能是否完整,方便使用也十分重要。目前大多数应用已从过去单一的账号密码登录,逐渐升级为允许通过第三方平台登录,例如 GitHub 、微信、QQ 等。但是这一套逻辑依然需要开发者去实现,大多数功能偏离了业务。

Casdoor 就是替开发者们解决这个难题,即 提供一套统一的鉴权平台,只需要简单配置便可完全托管用户模块

使用的理由也非常简单,总结概括为三句话:

  • 功能完备,操作简单。作为一个需要完全托管用户模块的项目,功能完备必不可少,Casdoor 支持常见用户模块所需要的各种功能。并且配置简单,上手难度低。

  • 开源可控,社区活跃。能否快速得到社区的反馈,解决实际应用中出现的问题也十分重要,否则出了 Bug 没人管岂不是尴尬? Casdoor 有自己的讨论社区 Casnode,也有 QQ 群,均可及时活跃地解决实际应用中的问题。

  • 性能强大,耦合良好。采用 Golang 开发,并发性支持良好,并且内部模块耦合度低,代码易懂,热插拔性好。

Casdoor 又有哪些特性?

  • 支持普通的账户密码注册登录,也支持各种常见的第三方认证,例如 GitHub 、Facebook 、Google 、Wechat 、QQ 、LinkedIn 等等,截止目前共 9 个平台,并在不断听取用户建议对更多的平台提供支持。

  • 管理方便。Casdoor 内部将模块分为了 5 大类,Organization 、User 、Application 、Token 和 Provider 。可以同时接入多个组织,组织下有不同应用,用户可以通过应用或组织分类,单独管理任何组织、应用或用户的 Token 令牌,轻松管理复杂系统,目前已部署在 Casbin 社区各种系统当作鉴权平台。

  • 自定义程度高。Casdoor 可以随意修改登录方式,例如是否允许密码或第三方登录,自定义应用的注册项数量,是否启用两步验证,以及是否允许各个 Provider 登录、注册等等,高度可插拔。

  • 具备 Swagger API 文档。清晰的 API 介绍,无需阅读源代码即可直接方便调用各个 API 接口,提供定制化功能。

  • 前后端分离架构,部署简单。作为统一认证平台,除了性能,稳定性,新特性之外,易用性也是考量的重要标准,Casdoor 后端使用 Golang 语言开发,前端使用 React.js 框架,使用者只需启动后端服务,并将前端工程文件打包,即可直接使用,操作简单,上手难度低。

  • ...欢迎补充

更多精彩内容👉:开发者网站--讨论社区

http://www.lryc.cn/news/258978.html

相关文章:

  • Realme X7 Pro Root 刷机教程
  • postgresql自带指令命令系列三
  • Java_mybatis-结果集映射-ResultTypeResultMap
  • 【Java】MySQL存储 MD5 值应该用 VARCHAR 还是CHAR?
  • pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm
  • 2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)
  • Qt 面试指南
  • 开利网络的数字化技术加持下,加快扶贫和乡村振兴的效果和进程!
  • PR剪辑视频做自媒体添加字幕快速方式(简单好用的pr视频字幕模板)
  • 金融行业文件摆渡,如何兼顾安全和效率?
  • [足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System
  • 每日一题,杨辉三角
  • Java_Mybatis_缓存
  • C#基础面试题集
  • 可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案
  • ArkUI组件
  • C语言--动态内存【详细解释】
  • 施工现场安全管理系统
  • 电线电缆行业生产管理MES系统解决方案
  • 滑动窗口最大值和前K个高频元素
  • C语言实现在顺序表中找到最大值
  • 数字工厂管理系统建设层级分为哪几层
  • MySQL 8 update语句更新数据表里边的数据
  • 可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?
  • L1-039:古风排版
  • 树莓派新手装机指南
  • flink使用事件时间时警惕kafka不同分区的事件时间倾斜问题
  • 『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用
  • vscode插件webview和插件通信
  • 【STM32单片机】贪吃蛇游戏设计