Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理

本文详细介绍了如何在Camunda8环境中部署Keycloak22.0.5,包括docker镜像拉取、数据库配置、身份验证设置和与CamundaPlatform的集成过程,以及解决遇到的网络通信问题和身份提供商设置等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备需要:

docker最新版,camunda官方建议使用容器且最好能使用k8s,而且jar包启动失败时不能停止
mysql8.0+,keycloak默认使用postgresql,我不会
提前启动好其他组件,es,tasklis,operate,zeebe,偷个懒,我使用的jar包运行,也可以容器
组件下载地址,版本8.3.4
因为容器通信的问题(应该是通信/网络的问题),我使用了局域网ip,而非localhost

identity是什么?

Identity是Camunda8部署负责身份验证和授权的标识组件,可以管理的有:

- Applications 
- APIs
- Permissions
- Roles

Identity不是comunda8必要的6个组件(官网列出来的,但是如果使用Self-Managed也那就是8个组件),我搭建身份认证系统是因为使用user-service创建表单时看到了用户授权的字段

什么是keycloak?

keycloak是一款开源的功能丰富、易用且灵活的身份和访问管理软件,为开发人员提供了快速集成身份认证、授权和用户管理的解决方案

特点和功能
  1. 单点登录(Single Sign-On,SSO):Keycloak支持SSO,用户只需登录一次,即可访问多个通过Keycloak保护的应用程序。
  2. 集中式身份认证和授权:Keycloak充当一个认证和授权服务器,负责在不同应用程序间验证用户身份和授权访问权限。
  3. 多种身份验证方式:Keycloak支持多种身份验证方式,如用户名/密码、LDAP、Active Directory、社交登录(Google、Facebook等)、OpenID Connect等。
  4. 用户管理和组织结构:Keycloak提供了用户管理和组织结构管理功能,包括用户创建、更新、删除,以及组织结构的定义和管理。
  5. 多因素身份验证(Multi-Factor Authentication,MFA):Keycloak支持多因素身份验证,增加了额外的安全层,如短信验证码、电子邮件验证码等。
  6. 客户端适配器:Keycloak提供了各种客户端适配器,使得应用程序能够与Keycloak进行无缝集成,实现身份认证和授权。
  7. 客户端角色和权限管理:Keycloak允许定义和管理客户端角色和权限,精确控制用户对特定资源的访问权限。
  8. 基于标准的协议支持:Keycloak支持OpenID Connect、OAuth 2.0、SAML2.0等开放标准协议,与其他标准兼容的应用程序进行集成。

准备需要

camunda8版本
Camunda 8Camunda 平台的一个重要版本,带来了许多新特性和改进,尤其是在架构设计、部署方式和扩展性方面。以下是关于 Camunda 8 的功能介绍、使用指南以及其新特性的详细说明。 ### 功能介绍 Camunda 8 提供了全面的业务流程管理(BPM)能力,支持从流程建模到执行再到监控的全生命周期管理。Camunda Modeler 是用于创建 BPMN 流程图的工具,而 Camunda Platform 则提供了流程执行的环境,并且可以通过 REST API 或 Java API 与外部系统集成[^2]。此外,Camunda 8 还引入了 Zeebe 引擎,这是一个为微服务编排优化的新一代工作流引擎,能够处理大规模分布式系统的复杂流程需求。 ### 使用指南 在使用 Camunda 8 时,用户可以利用 Camunda Modeler 创建 BPMN 文件,并将其部署到 Camunda Platform 中。一旦部署完成,流程实例就可以通过平台进行管理和监控。对于开发者来说,Camunda 提供了丰富的 API 接口,允许他们编写自定义逻辑来控制流程实例的启动、暂停、完成任务等操作。例如,在 Golang 环境中,有一个由 citilinkru 团队维护的 Camunda REST API 客户端库,它简化了与 Camunda 的交互过程,使得 Go 开发者能够轻松地将 Camunda 集成进他们的应用程序中[^4]。 ### 新特性 Camunda 8 的一些关键新特性包括: - **SaaS 模式**:Camunda 8 支持作为软件即服务 (SaaS) 提供,这意味着用户可以从任何地方访问 Camunda 服务,无需担心底层基础设施的配置和维护。 - **技术架构**:采用事件驱动架构,提高了系统的可伸缩性和响应能力;Zeebe 引擎的设计是为了更好地支持云原生应用,具有高可用性和容错机制。 - **授权许可**:Camunda 8 对于商业用途采用了不同的许可证模型,确保企业在使用过程中不会遇到法律问题。 - **扩展机制**:Camunda 8 提供了插件化的设计,允许用户根据需要添加新的功能模块,如连接器、监视工具等。 选择 Camunda 7 还是 Camunda 8 取决于具体的需求。如果项目需要最新的功能和支持,特别是对于现代云环境的支持,那么 Camunda 8 是更合适的选择。而对于那些已经基于 Camunda 7 构建的应用程序,迁移至 Camunda 8 需要评估现有流程是否兼容新的引擎特性。 ```go // 示例代码展示了如何使用 Golang 编写的 Camunda REST API 客户端来获取流程定义列表 package main import ( "context" "fmt" camundaclientgo "github.com/citilinkru/camunda-client-go/v3" ) func main() { client := camundaclientgo.NewClient(camundaclientgo.ClientOptions{ EndpointUrl: "http://localhost:8080/engine-rest", ApiUser: "demo", ApiPassword: "demo", }) processDefinitions, err := client.ProcessDefinition.GetList(context.Background(), nil) if err != nil { panic(err) } fmt.Printf("Found %d process definitions\n", len(processDefinitions)) } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值