Spring 云数据流本地模式限制和 LDAP 安全

Spring cloud dataflow local mode limitations and LDAP security

我正在尝试在本地模式下将 Spring 云数据流 (SCDF) 设置为 运行 以及可以帮助我确定它是否适合我的要求的平台的问题有多少。

  1. 尽管建议使用 Cloud Foundry、Kubernetes 等作为任务执行环境,但我更喜欢 运行 生产中的东西是本地模式,主要是因为我没有很多工作量,无法处理所有额外的复杂性。现在在本地模式下,我可以 运行 所有类型的 SCDF 应用程序,即无限制的流、作业和任务吗?文档的某些部分提到在本地模式下只有 Jobs 可以 运行。

  2. 安全性 - 我希望围绕应用程序的部署和对工具(仪表板)的操作访问进行控制,并且确实看到了对 LDAP 的支持,角色作为一个选项,但整个概念使用 Cloudfoundry UAA,另一种驱动用户管理的产品似乎有点矫枉过正。没有办法使用现有的 LDAP 服务器配置该工具吗?在 Github 中的一个 LDAP 问题中发现以下内容,但不清楚它是否在其 docker 图像中使用了 UAA。最坏的情况我不介意仪表板是否可以 运行 仅 view/read 模式。

https://github.com/spring-cloud/spring-cloud-dataflow/issues/2871

从v2.0开始,我们委托给UAA进行认证授权。关于这个问题有各种各样的文章;一个更全面的例子是关于如何在本地将所有这些放在一起的端到端示例。你不需要 CF 或 K8s,这一切都可以 运行 在本地也可以。我们依靠 UAA 作为网关来标准化所有客户端工具的端到端 SSO,包括 shell、仪表板、RESTful API、CTR 等,

示例:参考文献中的 SCDF Security with UAA + LDAP. For further reading, please refer to the security section。指南.

最后,我们不建议将 Local 用于生产安装,但据我所知,某些工作负载不需要应用程序在故障情况下的弹性 and/or 可重启性。

如果 Spring Cloud Data Flow 是一个纯粹的单体应用程序,那么将安全的所有方面直接集成到应用程序中肯定更容易让人放心。这就是 Spring Cloud Data Flow 最初从安全角度出发的方式,因此,Spring Cloud Dataflow <2.0.0 的版本支持我们标记的 传统安全性 .

然而,甚至在 2.0.x Spring 云数据流之前:

  • 必须与外部平台集成,例如 Cloud Foundry
  • 变得越来越面向微服务(例如通过使用 Skipper

因此出现了 2 种并行的安全架构,一种使用 传统安全,另一种由 OAuth2/OpenID Connect.

驱动

这开始变得越来越难以维护,对于 2.0.x 我们决定专注于 OAuth2/OpenID 连接。但是,我们仍然必须支持一组丰富的企业功能,例如角色、LDAP 集成等。因此,我们发现开源、生产就绪 CloudFoundry User Account and Authentication (UAA) Server 是一个极好的选择。它的 LDAP 支持和功能实际上超过了 Spring Cloud Dataflow <2.0.0.

提供的功能

所以是的,为了在本地为 Spring 云数据流设置安全性,您需要 运行 UAA。 UAA 还将提供 LDAP 支持。从技术上讲,Spring Cloud Data Flow 根本不知道 LDAP 设置。

我希望这提供了有关 Spring 云数据流安全架构如何出现的一些背景知识。请查看参考文档和前面提到的 SCDF Security with UAA + LDAP example。如有其他问题,请随时联系我们!

免责声明:我是该项目的提交者。