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

Edge for Private Cloud v4.19.01

Edge 界面和 Edge Management API 通过向 Edge Management Server 发出请求来运行,其中 Management Server 支持以下类型的身份验证:

  • 基本身份验证:通过传递用户名和密码登录 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 的单点登录。

为 Edge for Private Cloud 添加了对 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 单点登录模块 apigee-sso。下图显示了 Edge for Private Cloud 安装中的 Edge SSO:

您可以将 Edge SSO 模块安装在与 Edge 界面和管理服务器相同的节点上,也可以安装在自己的节点上。确保 Edge SSO 可以通过端口 8080 访问 Management Server。

必须在 Edge SSO 节点上打开端口 9099,才能支持从浏览器、外部 SAML IDP 以及管理服务器和 Edge 界面访问 Edge 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

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

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

  • DEFAULT - 默认配置支持端口 9099 上的 HTTP 请求。
  • SSL_TERMINATION - 在您选择的端口上启用了对 Edge 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 模块的网址: