外部 IDP 身份验证概览(新版 Edge 界面)

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

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

Edge 支持使用以下外部身份提供方 (IDP) 进行身份验证:

  • 安全断言标记语言 (SAML) 2.0:通过 SAML 身份提供方返回的 SAML 断言生成 OAuth 访问权限。
  • 轻量级目录访问协议 (LDAP):使用 LDAP 的搜索和绑定或简单绑定身份验证方法生成 OAuth 访问令牌。

SAML 和 LDAP IDP 均支持单点登录 (SSO) 环境。将外部 IDP 与 Edge 搭配使用后,您不仅可以为 Edge 界面和 API 支持单点登录,还可以为您提供的任何其他服务(也支持您的外部 IDP)支持单点登录。

本部分中用于启用外部 IDP 支持的说明与外部身份验证存在以下差异:

  • 本部分添加了 SSO 支持
  • 本部分适用于 Edge 界面(而非经典版界面)的用户
  • 仅 4.19.06 及更高版本支持本部分

Apigee SSO 简介

如需在 Edge 上支持 SAML 或 LDAP,您需要安装 Apigee SSO 模块 apigee-sso。 下图显示了 Edge for Private Cloud 安装中的 Apigee SSO:

Apigee SSO 的端口用量

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

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

Apigee SSO 使用可通过 Postgres 节点上的端口 5432 访问的 Postgres 数据库。通常,您可以使用与 Edge 一起安装的 Postgres 服务器,即独立 Postgres 服务器或配置为主/备用模式的两个 Postgres 服务器。如果 Postgres 服务器上的负载较高,您还可以选择专门为 Apigee SSO 创建一个单独的 Postgres 节点。

为 Edge for Private Cloud 添加了对 OAuth2 的支持

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

SAML 简介

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

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

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

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

LDAP 简介

轻量级目录访问协议 (LDAP) 是一种开放式业界标准应用协议,用于访问和维护分布式目录信息服务。目录服务可以提供任何有序的记录集,通常采用分层结构,例如公司电子邮件目录。

Apigee SSO 中的 LDAP 身份验证使用 Spring Security LDAP 模块。因此,Apigee SSO 的 LDAP 支持的身份验证方法和配置选项与 Spring Security LDAP 中的选项直接相关。

适用于私有云的 Edge 与 LDAP 搭配使用时,支持针对与 LDAP 兼容的服务器使用以下身份验证方法:

  • 搜索和绑定(间接绑定)
  • 简单绑定(直接绑定)

Apigee SSO 会尝试检索用户的电子邮件地址,并使用该地址更新其内部用户记录,以便存档当前的电子邮件地址,因为 Edge 会使用此电子邮件地址进行授权。

Edge 界面和 API 网址

您访问 Edge 界面和 Edge 管理 API 所用的网址与您在启用 SAML 或 LDAP 之前所用的网址相同。对于 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 协议。

在 Apigee SSO 上配置 TLS

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

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

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

为门户启用外部 IDP 支持

为 Edge 启用外部 IDP 支持后,您可以选择为 Apigee Developer Services 门户(简称门户)启用此功能。 在向 Edge 发出请求时,该门户支持 SAML 和 LDAP 身份验证。请注意,这与开发者登录门户的 SAML 和 LDAP 身份验证不同。您需要单独为开发者登录配置外部 IDP 身份验证。如需了解详情,请参阅配置门户以使用 IDP

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

使用令牌的请求/响应流