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

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 搭配使用,您不仅可以支持 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 的端口使用情况

您可以将 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 的支持

如上所述,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 for Private Cloud 中的 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 模块的网址:

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