当我们在使用 ElasticJob UI 时,可能想要在管理控制台里添加 SSO 单点登录,本篇文章将使用 ElasticJob UI 的内置 Casdoor 来解决用户管理的难题。
合作背景
ElasticJob UI 是 ElasticJob 的可视化管控端,是一个面向开发、运维人员的应用,并非一个直接对用户提供服务的应用程序,正常情况下仅部署在内部环境。因此 ElasticJob UI 的研发人员更专注于对功能的研发。
作为开源项目,难免会被从事安全领域的人员作为研究对象。先前安全研究人员因为没有考虑 ElasticJob UI 的实际使用场景,向 Apache ShardingSphere 社区提交了许多安全报告,ShardingSphere 社区没有过多精力处理许多不切实际的安全漏洞报告,因此发起了考虑停止 ElasticJob UI 维护的讨论。
此前,ShardingSphere 的可视化管控端 ShardingSphere UI 也因同样的原因停止了维护。
Casdoor 社区的成员在注意到 ShardingSphere 社区关于停止 ElasticJob UI 维护的讨论后,认为因为不切实际的安全报告而停用 ElasticJob UI 是一件非常可惜的事情。如果 ElasticJob UI 接入 Casdoor,在认证安全、功能等方面都将得到提升。因此,Casdoor 社区与 Apache ShardingSphere 社区达成了本次合作。
ElasticJob UI 接入 Casdoor 使用指南
步骤一:部署 Casdoor
Casdoor 的源代码托管在 GitHub 上,启动模式有开发模式和生产模式,此处以开发模式为例,更多详细信息请参考:https://casdoor.org/docs/basic/server-installation。
后端启动方式
go run main.go
前端启动方式
cd web
yarn install
yarn start
步骤二:配置 Casdoor 并得到所需的数据
用红线指出的是后端配置需要用到的,其中 Redirect URLs 取决于你要 callback 的地址。
我们还需要根据所选 cert 到 cert 选项中找到对应的 cert,如本例为 cert-built-in,其中 certificate 也是我们所需要用到的。
更多 casdoor 文档请参考:https://casdoor.org/docs/overview
步骤三:在 ElasticJob UI 中进行配置
在 shardingsphere-elasticjob-ui(https://github.com/apache/shardingsphere-elasticjob-ui)中的 application.properties 进行配置。
将我们在 Casdoor 获取的数据粘贴到相应位置即可如:
这样我们就可以在 ElasticJob UI 中使用 Casdoor 了!
写在最后
ElasticJob 的管理控制台接入 Casdoor 后,将会支持 OAuth 2.0、OIDC 和 SAML 的 UI 优先集中式身份验证/单点登录,用户不必再为此独立开发,方便了用户的使用。
感谢 Casdoor 和 Apache ShardingSphere 社区的开发者们,从 Casdoor 社区的开发者 jakiuncle 提出 issue,提交 PR,到 ShardingSphere 社区的开发者 TeslaCN 与 tristaZero 积极 review PR,这个跨社区的合作友好而有序地向前推进,响应 open source makes world better。
-
关于 ElasticJob UI
ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,通过弹性调度、资源管控、作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。它的各个产品使用统一的作业 API,开发者仅需一次开发,即可随意部署。
ElasticJob-UI 是 ElasticJob 的可视化管理控制台,包含了动态配置、作业管控、作业历史记录检索等功能。
-
Casdoor
Casdoor 是一个基于 OAuth 2.0 / OIDC 的 UI 优先集中认证 / 单点登录(SSO)平台。简单来说,Casdoor 可以帮你解决用户管理的难题,无需开发用户登录注册等与用户鉴权相关的一系列功能,只需几个步骤简单配置,与主应用配合,便可完全托管用户模块。简单省心,功能强大。
🔗 GitHub 地址:https://github.com/casdoor/casdoor