用于Spring Cloud数据流的LDAP AuthN和AuthZ

问题描述 投票:0回答:1

适用于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

等等,对于所有端点授权。

但是,在成功验证后我仍然收到一条消息,说我没有相应的角色,我需要和管理员联系。

我错误配置了什么,或者我在此设置中缺少什么?

更新

我从这里下载了Spring云数据流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。

我不得不权衡我是否真的想这样做。

spring-security spring-cloud-dataflow
1个回答
0
投票

我们还没有LDAP AD Groups < - > SCDF Roles的直接映射。但是,我们没有社区中的任何人或客户要求进行此集成。到目前为止,UAA支持OAuth成为PCF的热门选择。

也就是说,我创建了spring-cloud/spring-cloud-dataflow#2084来跟踪对组映射的支持。实现它可能是微不足道的(YAML中的Group vs. ROLE映射和后端代码中的解析逻辑);我把它标记为1.5,但我们可能会在下周发布的1.4版本中更快地将其标记出来。

不过,我建议不要冒险直接调整UI代码。在本地分叉上太多了,你必须维护它。

© www.soinside.com 2019 - 2024. All rights reserved.