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

这篇具有很好参考价值的文章主要介绍了Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备需要:

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版本对照,要求keycloak为21.x, 22.x,我用过的版本为22.0.5

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

keycloak版本要求22.0.5,对应数据库版本,mysql8.0

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

开始集成

keyclock
  • 拉取keycloak镜像

    docker pull keycloak/keycloak:22.0.5
    
  • 创建数据库
    这里要注意,我使用的是mysql,因为字符集和排序规则的问题,需要设置为utf8/utf8_unicode_ci,否则会因为"行"字段长度过长,注意,是"行"字段长度问题
    不需要创建表,keycloak第一次启动时会自己创建表

  • 启动命令

    docker run -d -p 18080:8080 \
    --name keycloak -p 18443:8443 \
    -e KEYCLOAK_ADMIN=admin \
    -e KEYCLOAK_ADMIN_PASSWORD=admin \
    -e KC_HTTP_PORT=8080 \
    -e KEYCLOAK_DATABASE_VENDOR=mysql \
    -e KC_DB=mysql \
    -e KC_DB_DRIVER=com.mysql.cj.jdbc.Driver \
    -e KC_TRANSACTION_XA_ENABLED=false \
    -e KC_DB_USERNAME=root \
    -e KC_DB_PASSWORD=12345678 \
    -e KC_DB_URL='jdbc:mysql://192.168.2.205:3306/keycloak?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true&autoReconnect=true' \
    keycloak/keycloak:22.0.5 start-dev \
    
  • 注意事项
    18080是对外暴露的端口,给identity使用
    然后默认管理员密码
    设置mysql数据库,驱动,关闭 XA 事务(分布式事务)

    数据库配置链接
    https://www.keycloak.org/server/db

  • 配置权限
    camunda添加已存在keycloak服务的地址
    https://docs.camunda.io/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak/
    说明一下,identity官网的配置有问题,只能作为参考

    1. 首先创建一个名为camunda-platform的realm,realm可以看做是机构或者"工作空间"
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    2. 创建名为camunda-identity的client,下一步
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    3. 启用Client authentication,选择 Service accounts roles,下一步
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    4. 配置root url,也就是identity的地址,保存
      就配置一个就可以了,其他信息会有默认信息的,等到identity启动后会创建一些列的权限和配置
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    5. 选择Service account roles选项卡,点击Assign role ,在弹窗中修改Fileter by roles为Filter by clients,选中manage-realm,manage-users,manage-clients, 点击Assign
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    6. 点击Credentials,复制保存IDENTITY_CLIENT_SECRET,在下边启动identity使用
      坑人的部分来了,官网没有提到的地方,这个步骤可以在identity启动后设置

    7. 创建用户,这个是作为identity的管理用户,否则启动identity后没有用户进入不了
      我默认为camunda了,选择role mapping选项卡,根据client分配角色
      这里有个问题,可能有的权限还没有,这个可以在identity启动后再设置
      Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理,中间件,后端,低代码

    8. 添加identity providers(这个也是没有提到的地方)

       选择Keycloak OpenID Connect 或者OpenID Connect
       Discovery endpoint:
       http://192.168.2.106:18080/realms/camunda-platform/.well-known/openid-configuration
       Client ID: camunda-identity
       Client Secret: 这个就是上边保存的秘钥
      
identity
  • 拉取镜像

    默认最新版,或者自己指定版本也行
    docker pull camunda/identity
    

    这里默认其他camundaz组件都是按照官方配置默认接口启动的

  • 变量配置
    官方启动配置变量
    https://docs.camunda.io/docs/self-managed/identity/deployment/configuration-variables/
    这里要注意三个变量值,官网提供的有问题,没有/auth
    KEYCLOAK_URL
    IDENTITY_AUTH_PROVIDER_BACKEND_URL
    IDENTITY_AUTH_PROVIDER_ISSUER_URL

  • 启动命令

    docker run -d --name camunda-identity1 \
    -p 8080:8080 camunda/identity \
    java -jar /app/identity.jar \
    --KEYCLOAK_URL=http://192.168.2.106:18080 \
    --KEYCLOAK_REALM=camunda-platform \
    --KEYCLOAK_SETUP_CLIENT_ID=camunda-identity \
    --KEYCLOAK_SETUP_REALM=master \
    --KEYCLOAK_SETUP_USER=admin \
    --KEYCLOAK_SETUP_PASSWORD=admin \
    --IDENTITY_CLIENT_ID=camunda-identity \
    --IDENTITY_CLIENT_SECRET=3fZ15uFCODaMTiZbUx7vNfqz7FO6oDCV \
    --IDENTITY_DATABASE_HOST=192.168.2.205 \
    --IDENTITY_DATABASE_PORT=3306 \
    --IDENTITY_DATABASE_NAME=keycloak \
    --IDENTITY_DATABASE_USERNAME=root \
    --IDENTITY_DATABASE_PASSWORD=12345678 
    --IDENTITY_AUTH_PROVIDER_BACKEND_URL=http://192.168.2.106:18080/realms/camunda-platform \
    --IDENTITY_AUTH_PROVIDER_ISSUER_URL=http://192.168.2.106:18080/realms/camunda-platform \
    --IDENTITY_URL=http://192.168.2.106:8080
    

    注意:
    KEYCLOAK_REALM, 这个是realm的名字
    IDENTITY_CLIENT_ID, 这个是client的名字
    IDENTITY_CLIENT_SECRET, 这个是上边的秘钥
    IDENTITY_AUTH_PROVIDER_BACKEND_URL官方

  • 搞定
    访问identity,输入账号密码就好了,如果这里登录提示没有账号或密码,那就是上边的权限没配好,重新创建一个用户就好了

题外话

可以看看bitnami/keycloak,我一开始配置的有问题,一直以为是bitnami的问题

相关地址:

docker地址
https://hub.docker.com/r/keycloak/keycloak
github地址
https://github.com/bitnami/containers/tree/main/bitnami/keycloak
keycloak官网数据库配置
https://www.keycloak.org/server/db
keycloak启动docker
https://www.keycloak.org/getting-started/getting-started-docker
identity地址
https://docs.camunda.io/docs/self-managed/identity/what-is-identity/
identity添加keycloak独立服务
https://docs.camunda.io/docs/self-managed/identity/user-guide/configuration/connect-to-an-existing-keycloak/文章来源地址https://www.toymoban.com/news/detail-804603.html

到了这里,关于Camunda8微服务流程引擎搭建实战 -- camunda-identity接入keycloak,使用mysql数据库以OpenID Connect的方式实现用户的权限管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot整合Camunda工作流引擎实现审批流程实例

    环境:Spingboot2.6.14 + camunda-spring-boot-starter7.18.0 依赖配置 应用程序配置 通过上面的配置后访问控制台: http://localhost:8100/workflow/ 默认是没有上面的tasks中的内容,这里是我之前测试数据 环境准备好后,接下来就可以设计工作流程。 上面的 camunda-bpm-spring-boot-starter-rest依赖中定义

    2024年02月09日
    浏览(33)
  • 基于Docker和Springboot两种方式安装与部署Camunda流程引擎

    Camunda 相对于其他流程引擎的优势在于开源性、 BPMN 2.0 支持、可扩展性、轻量级和高性能,以及可观察性。并且 Camunda 支持独立平台的方式部署流程引擎,这更有利于分布式的项目。本文以 7.18.0 版本为例,介绍了: Docker Spring Boot 两种安装和部署 Camunda 流程引擎的方式。 D

    2024年03月16日
    浏览(33)
  • camunda工作流实战项目(表单设计器+流程编辑器,零代码创建流程)

    基于ruoyi平台和camunda工作流开发而成,结合bpmn.js流程编辑器和vform表单设计器,实现常规流程零代码创建。 具备流程中心的能力,支持外部任务,可协调多个业务系统协同工作 具备SaaS平台的能力,支持多租户,各业务系统可作为租户,创建自己的流程,通过外部任务与自身

    2024年02月12日
    浏览(34)
  • springboot集成Camunda审核流程(二):Camunda Modeler设计器设置BPMN流程

    ​ Camunda Modeler -为流程设置器(建模工具),用来构建我们的流程模型。Camunda Modeler流程绘图工具,支持三种协议类型流程文件分别为:BPMN、DMN、Form。 ​ Camunda Modeler下载地址:https://camunda.com/download/modeler/ 下载完成之后解压之后,打开Camunda Modeler.exe 即可使用。 下面分别简

    2024年02月03日
    浏览(24)
  • camunda撤销流程

    2024年02月09日
    浏览(30)
  • 微服务流程引擎:简单又灵活,实现流程全生命周期管理!

    伴随着日益激烈的市场竞争,传统的办公操作已经无法满足发展需要了。如果采用微服务流程引擎加油助力,就可以帮助企业更好地管理数据资源,高效做好各种表单制作,实现高效率办公。流辰信息以市场为导向,用心钻研低代码技术平台产品,帮助不同行业的客户朋友做

    2024年02月12日
    浏览(33)
  • Spring Boot整合Camunda打造高效工作流程

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是尘缘,一个在CSDN分享笔记的博主。📚📚 👉点击这里,就可以查看我的主页啦!👇👇 尘缘的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起学习,一起进步!💖💖 在现代的软件开发中,工作流管

    2024年04月13日
    浏览(36)
  • Camunda 7工作流引擎 API 以及与Springboot集成实现工作流配置全纪录

    项目中需要用到工作流引擎来设计部分业务流程,框架选型最终选择了 Camunda7,关于 Camunda以及 Activity 等其他工作流 引擎的介绍及对比不再介绍,这里只介绍与现有Springboot项目的集成以及具体使用及配置 流程(PROCESS): 通过工具建模最终生成的BPMN文件,里面有整个流程的定

    2024年02月10日
    浏览(40)
  • springboot集成Camunda,加前端bpmn页面流程编辑器

    搭建流程引擎后端的时候,主要注意springboot版本和Camunda版本之间的兼容性。此次springboot版本2.6.4,Camunda版本7.18.0。pom文件内容如下: pom文件配置好后,通过一般的注解入口@SpringBootApplication,即可启动Camunda流程引擎。 Camunda默认使用的数据库为自带的h2内存数据库,此时一般

    2023年04月18日
    浏览(26)
  • nodejs接口联动获取req的各种类型数据,搭建可视化流程引擎平台

    考虑跨域等性能,简易的工程化,采用express框架 接下来我们就来安装 body-parser express的中间件 body-parser 解析客户端请求的body中的内容,JSON编码处理和url编码处理 文件上传看我之前的博客内容 http://localhost:8080/?age=1 http://localhost:8080/12/url 当然也可以进行组合发送 链接数据库

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包