外部 IDP 身份验证概览

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

  • 基本身份验证:通过传递用户名和密码登录 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 搭配使用,除了您提供的也支持外部 IDP 的任何其他服务之外,您还可以支持 Edge 界面和 API 的 SSO。

本部分中用于启用外部 IDP 支持的说明与外部身份验证的不同之处如下:

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

Apigee SSO 简介

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

Apigee SSO 的端口使用情况

您可以将 Apigee SSO 模块安装在与 Edge 界面和管理服务器相同的节点上,也可以安装在自己的节点上。确保 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 支持

如上所述,SAML 的 Edge 实现依赖于 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 管理 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 的连接使用 HTTP 协议,通过托管 apigee-sso(Apigee SSO 模块)的节点上的端口 9099 进行。apigee-sso 内置了一个处理 HTTP 和 HTTPS 请求的 Tomcat 实例。

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

  • 默认:默认配置支持端口 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 身份验证以供开发者登录。如需了解详情,请参阅将门户配置为使用身份提供方。

在配置门户的过程中,您必须指定通过 Edge 安装的 Apigee SSO 模块的网址:

使用令牌的请求/响应流程