- 1. 简介
- 2. 开始
- 3. 配置
- 4. Flowable API
- 5. 集成 Spring
- 6. 部署
- 7. BPMN 2.0 介绍
- 8. BPMN 2.0 结构
- 9. 表单
- 10. JPA
- 11. 历史
- 12. 身份管理
- 13. Eclipse Designer
- 14. Flowable UI 应用
- 15. REST API
- 16. 集成 CDI
- 17. 集成 LDAP
- 18. 高级
- 19. 工具
14.3. Flowable IDM 应用
Flowable IDM应用,用于其他三个Flowable web应用的认证与授权。因此如果你想要运行Modeler,Task或者Admin应用,就需要运行IDM应用。Flowable IDM应用是一个简单的身份管理应用,目标是为Flowable web应用提供单点登录能力,并提供定义用户、组与权限的能力。
IDM应用在启动时启动IDM引擎,并按照配置参数中定义的数据源创建IDM引擎所需的身份表。
当Flowable IDM应用部署及启动时,将检查是否在ACT_ID_USER表中有用户。如果没有,将在表中使用 flowable.common.app.idm-admin.user
参数创建默认管理员用户。 同时也会为新创建的管理员用户添加Flowable项目中的所有权限:
access-idm: 提供管理用户、组与权限的权限
access-admin: 使用户可以登录Flowable Admin应用,管理Flowable引擎,以及访问所有应用的Actuator Endpoint。
access-modeler: 提供访问Flowable Modeler应用的权限
access-task: 提供访问Flowable Task应用的权限
access-rest-api: 提供调用REST API的权限。否则调用会返回403(无权限)HTTP状态码。请注意需要将flowable.rest.app.authentication-mode设置为verify-privilege,即默认设置。
第一次使用admin/test登录http://localhost:8080/flowable-idm时,会显示如下用户总览界面:

在这个界面中,可以添加、删除与更新用户。组页签用于创建、删除与更新组。在组详情界面中,可以向组添加与删除用户。权限界面为用户与组添加及删除权限:

暂时还不能定义新的权限。但是可以为用户与组添加及删除已有的四个权限。
下表是IDM UI应用的专用参数。
参数名 | 原参数 | 默认值 | 描述 |
---|---|---|---|
flowable.idm.app.bootstrap | idm.bootstrap.enabled | true | 是否为IDM应用启用bootstrap。 |
flowable.idm.app.rest-enabled | rest.idm-app.enabled | true | 启用REST API(指的是使用基础身份认证的API,而不是UI使用的REST API)。 |
flowable.idm.app.admin.email | admin.email | - | admin用户的邮箱。 |
flowable.idm.app.admin.first-name | admin.firstname | - | admin用户的名字。 |
flowable.idm.app.admin.last-name | admin.lastname | - | admin用户的姓。 |
flowable.idm.app.admin.password | admin.password | - | admin用户的密码。 |
flowable.idm.app.admin.user-id | admin.userid | - | admin用户的ID。 |
flowable.idm.app.security.remember-me-key | security.rememberme.key | testKey | Spring Security对密码加密时所用的哈希值。请一定要修改这个参数。 |
flowable.idm.app.security.user-validity-period | cache.users.recheck.period | 30000 | 对于可缓存的CustomUserDetailsService服务,缓存用户的时间。 |
flowable.idm.app.security.cookie.domain | security.cookie.domain | - | cookie的域。 |
flowable.idm.app.security.cookie.max-age | security.cookie.max-age | 2678400 | cookie的存活时间,以秒记。默认为31天。 |
flowable.idm.app.security.cookie.refresh-age | security.cookie.refresh-age | 86400 | cookie的刷新周期,以秒记。默认为1天。 |
除了使用默认的身份表之外,IDM应用也可以使用LDAP服务。 在application.properties文件中(或使用其他配置方式)加入下列配置:
#
# LDAP
#
flowable.idm.ldap.enabled=true
flowable.idm.ldap.server=ldap://localhost
flowable.idm.ldap.port=10389
flowable.idm.ldap.user=uid=admin, ou=system
flowable.idm.ldap.password=secret
flowable.idm.ldap.base-dn=o=flowable
flowable.idm.ldap.query.user-by-id=(&(objectClass=inetOrgPerson)(uid={0}))
flowable.idm.ldap.query.user-by-full-name-like=(&(objectClass=inetOrgPerson)(|({0}=*{1}*)({2}=*{3}*)))
flowable.idm.ldap.query.all-users=(objectClass=inetOrgPerson)
flowable.idm.ldap.query.groups-for-user=(&(objectClass=groupOfUniqueNames)(uniqueMember={0}))
flowable.idm.ldap.query.all-groups=(objectClass=groupOfUniqueNames)
flowable.idm.ldap.attribute.user-id=uid
flowable.idm.ldap.attribute.first-name=cn
flowable.idm.ldap.attribute.last-name=sn
flowable.idm.ldap.attribute.group-id=cn
flowable.idm.ldap.attribute.group-name=cn
flowable.idm.ldap.cache.group-size=10000
flowable.idm.ldap.cache.group-expiration=180000
flowable.idm.ldap.enabled
参数设置为true时,需要同时填入其他的LDAP参数。 在这个示例配置中使用Apache Directory的服务器配置 + LDAP查询。 其他LDAP服务器如Active Directory使用不同的配置值。
配置LDAP后将通过LDAP服务器进行认证及从组中获取用户,但仍然从Flowable身份表中获取权限。因此需要确保每一个LDAP用户都在IDM应用中定义了正确的权限。
如果IDM应用配置为使用LDAP,则启动时将检查Flowable身份表中是否存在权限。 (第一次启动时)如果没有权限,则会创建4个默认权限,并为ID为(application.properties或其他配置环境中的) flowable.common.app.idm-admin.user
参数的用户赋予这4个权限。 因此请确保 flowable.common.app.idm-admin.user
参数设置为有效的LDAP用户,否则将没有人能够登录任何Flowable UI应用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论