返回介绍

14.3. Flowable IDM 应用

发布于 2023-09-17 23:40:35 字数 4697 浏览 0 评论 0 收藏 0

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时,会显示如下用户总览界面:

flowable idm startup screen

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

flowable idm privilege screen

暂时还不能定义新的权限。但是可以为用户与组添加及删除已有的四个权限。

下表是IDM UI应用的专用参数。

Table 7. IDM UI应用参数
参数名原参数默认值描述
flowable.idm.app.bootstrapidm.bootstrap.enabledtrue是否为IDM应用启用bootstrap。
flowable.idm.app.rest-enabledrest.idm-app.enabledtrue启用REST API(指的是使用基础身份认证的API,而不是UI使用的REST API)。
flowable.idm.app.admin.emailadmin.email-admin用户的邮箱。
flowable.idm.app.admin.first-nameadmin.firstname-admin用户的名字。
flowable.idm.app.admin.last-nameadmin.lastname-admin用户的姓。
flowable.idm.app.admin.passwordadmin.password-admin用户的密码。
flowable.idm.app.admin.user-idadmin.userid-admin用户的ID。
flowable.idm.app.security.remember-me-keysecurity.rememberme.keytestKeySpring Security对密码加密时所用的哈希值。请一定要修改这个参数。
flowable.idm.app.security.user-validity-periodcache.users.recheck.period30000对于可缓存的CustomUserDetailsService服务,缓存用户的时间。
flowable.idm.app.security.cookie.domainsecurity.cookie.domain-cookie的域。
flowable.idm.app.security.cookie.max-agesecurity.cookie.max-age2678400cookie的存活时间,以秒记。默认为31天。
flowable.idm.app.security.cookie.refresh-agesecurity.cookie.refresh-age86400cookie的刷新周期,以秒记。默认为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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文