在边缘设备上为私有云支持 SAML

Edge for Private Cloud v4.18.05

边缘界面和 Edge Management API 通过向边缘管理服务器发出请求来运行。在边缘管理服务器中,管理服务器支持以下类型的身份验证:

  • 基本身份验证:登录 Edge 界面,或通过传递您的用户名和密码向 Edge Management API 发出请求。
  • OAuth2 将您的 Edge 基本身份验证凭据交换为 OAuth2 访问令牌和刷新令牌。通过在 API 调用的 Bearer 标头中传递 OAuth2 访问令牌来调用 Edge Management API。

Edge 还支持安全断言标记语言 (SAML) 2.0 作为身份验证机制。启用 SAML 后,对 Edge 界面和 Edge Management API 的访问仍使用 OAuth2 访问令牌。但是,现在您可以通过 SAML 身份提供方返回的 SAML 断言生成这些令牌。

SAML 支持单点登录 (SSO) 环境。通过将 SAML 与 Edge 搭配使用,除了您提供并支持 SAML 的任何其他服务外,您可以为 Edge 界面和 API 支持单点登录。

为 Private Cloud 在 Edge 中增加了对 OAuth2 的支持

如上所述,SAML 的 Edge 实现依赖于 OAuth2 访问令牌。因此,Edge for Private Cloud 新增了 OAuth2 支持。如需了解详情,请参阅 OAuth 2.0 简介

SAML 的优势

SAML 身份验证可提供很多优势。您可以使用 SAML 执行以下操作:

  • 完全掌控用户管理。当用户离开您的组织并集中取消预配时,系统会自动拒绝他们访问 Edge。
  • 控制用户访问 Edge 的身份验证方式。您可以为不同的 Edge 组织选择不同的身份验证类型。
  • 控制身份验证政策。您的 SAML 提供商可能支持更符合您的企业标准的身份验证政策。
  • 您可以监控 Edge 部署中的登录次数、退出次数、失败的登录尝试次数和高风险活动。

将 SAML 与 Edge 搭配使用

如需在 Edge 上支持 SAML,请安装 Edge SSO 模块 apigee-sso。下图显示了 Edge 中用于私有云安装的 Edge SSO:

您可以在边缘界面和管理服务器所在的节点上安装边缘 SSO 模块,也可以将其安装在它自己的节点上。确保边缘单点登录可以通过端口 8080 访问管理服务器。

必须在边缘 SSO 节点上打开端口 9099,以支持从浏览器、外部 SAML IDP 以及管理服务器和边缘界面访问边缘 SSO。在配置 Edge SSO 时,您可以指定外部连接使用 HTTP 或加密的 HTTPS 协议。

Edge SSO 使用可通过 Postgres 节点上的端口 5432 访问的 Postgres 数据库。通常,您可以使用通过 Edge 安装的同一 Postgres 服务器,可以是一台独立的 Postgres 服务器,也可以是在主/备用模式下配置的两台 Postgres 服务器。如果 Postgres 服务器的负载很高,您还可以选择为 Edge SSO 单独创建一个 Postgres 节点。

启用 SAML 后,对 Edge 界面和 Edge Management API 的访问会使用 OAuth2 访问令牌。这些令牌由 Edge SSO 模块生成,该模块接受 IDP 返回的 SAML 断言。

通过 SAML 断言生成后,OAuth 令牌的有效期为 30 分钟,刷新令牌的有效期为 24 小时。您的开发环境可能支持自动执行常见开发任务,例如测试自动化或持续集成/持续部署 (CI/CD),这些任务需要更长的令牌。如需了解如何为自动化任务创建特殊令牌,请参阅将 SAML 与自动化任务搭配使用

Edge 界面和 API 网址

您用于访问 Edge 界面和 Edge Management API 的网址与启用 SAML 之前使用的网址相同。对于 Edge 界面:

http://edge_ui_IP_DNS:9000
https://edge_ui_IP_DNS:9000

其中,edge_ui_IP_DNS 是托管 Edge 界面的机器的 IP 地址或 DNS 名称。在配置 Edge 界面时,您可以指定连接使用 HTTP 或加密的 HTTPS 协议。

对于 Edge Management API:

http://ms_IP_DNS:8080/v1
https://ms_IP_DNS:8080/v1

其中,ms_IP_DNS 是管理服务器的 IP 地址或 DNS 名称。在配置 API 时,您可以指定连接使用 HTTP 或加密的 HTTPS 协议。

在 Edge SSO 上配置 TLS

默认情况下,在托管 apigee-sso(Edge SSO 模块)的节点上,通过端口 9099 与 Edge SSO 的连接使用 HTTP。apigee-sso 中内置是一个处理 HTTP 和 HTTPS 请求的 Tomcat 实例。

Edge SSO 和 Tomcat 支持三种连接模式:

  • DEFAULT - 默认配置支持通过端口 9099 发出 HTTP 请求。
  • SSL_TERMINATION - 在所选端口上启用了对边缘 SSO 的 TLS 访问。您必须为此模式指定 TLS 密钥和证书。
  • SSL_PROXY - 在代理模式下配置 Edge SSO,这意味着您在 apigee-sso 前面安装了负载平衡器并在负载平衡器上终止了 TLS。您可以为来自负载平衡器的请求指定在 apigee-sso 上使用的端口。

为该门户启用 SAML 支持

为 Edge 启用 SAML 支持后,您可以选择为 Apigee Developer Services 门户(或简称门户)启用 SAML。门户支持在向 Edge 发出请求时进行 SAML 身份验证。请注意,这与开发者登录门户的 SAML 身份验证不同。您可以为开发者登录单独配置 SAML 身份验证。如需了解详情,请参阅配置门户以使用 SAML 与 Edge 通信

在配置门户时,您必须指定随 Edge 安装的 Edge SSO 模块的网址: