Cloudfoundry的SCDF服务器:1.2.4.RELEASE
配置LDAP身份验证的安全属性,我的身份验证部分正常工作,但授权有点奇怪。
SCDF的安全实施似乎正在寻找这样的一些角色:
ROLE_CREATE, ROLE_MANAGE, ROLE_VIEW.
但对我来说,标准组名在AD中需要一些特定的命名约定,类似于以下内容:app_myapplication_authz_CREATE, app_myapplication_authz_MANAGE, and app_myapplication_authz_VIEW
当我通过SCDF身份验证输出进行调试时,我可以看到正确检索了经过身份验证的委托人的组成员身份。它们在DEBUG输出中显示为:ROLE_APP_MYAPPLICATION_AUTHZ_CREATE, ROLE_APP_MYAPPLICATION_AUTHZ_MANAGE, ROLE_APP_MYAPPLICATION_AUTHZ_VIEW
现在,我提供了一个如下所示的YML安全配置:
spring:
cloud:
dataflow:
security:
authorization:
enabled: true
rules:
- GET /metrics/streams => hasRole('ROLE_APP_MYAPPLICATION_AUTHZ_VIEW')
- POST /apps/** => hasRole('ROLE_APP_MYAPPLICATION_AUTHZ_CREATE')
- etc, etc, etc
依此类推,适用于所有端点授权。
但是,我在成功进行身份验证后仍然收到消息,但我没有相应的角色,我需要与管理员联系。
我错误配置了什么,或者我在此设置中缺少什么?
更新
我从这里下载了春天云数据流ui的1.2.1.RELEASE版本的源代码:GitHub spring-cloud-dataflow-ui
并发现在所有.html视图文件中,角色名称都是ROLE_VIEW, ROLE_CREATE, ROLE_MANAGE
的硬编码。因此,看起来我的配置将允许我根据我的LDAP组名自定义REST端点上的授权,但我将无法对实际的UI视图执行相同的操作。我想我在这里有一个选项,即构建/生成我自己的UI自定义版本,并将其与spring-cloud-dataflow-server JAR捆绑而不是使用OOTB ui。
我必须权衡我是否真的想这样做。
答案 0 :(得分:0)
我们还没有直接映射LDAP AD组< - > SCDF角色。我们还没有来自社区或客户的任何人。但要求这种整合。到目前为止,UAA支持OAuth成为PCF的热门选择。
也就是说,我创建了spring-cloud/spring-cloud-dataflow#2084来跟踪对组映射的支持。实现它可能是微不足道的(YAML中的Group vs. ROLE映射和后端代码中的解析逻辑);我把它标记为1.5,但我们可能会在下周的1.4版本中尽快拿起它。
我建议不要直接调整UI代码。当地的叉子太多了,你必须维护它。