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

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

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

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

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

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

本部分启用外部 IDP 支持的说明与外部身份验证的不同之处体现在以下几个方面:

  • 本部分将介绍单点登录 (SSO) 支持
  • 本部分面向 Edge 界面(而非传统版界面)用户
  • 只有 4.19.06 及更高版本支持此部分

Apigee 单点登录简介

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

Apigee SSO 的端口用量

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

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

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

为 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 Management 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 中的身份验证方法和配置选项直接相关。

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

  • Search 和 Bind(间接绑定)
  • 简单绑定(直接绑定)

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

Edge 界面和 API 网址

用于访问 Edge 界面和 Edge Management 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 模块)的节点上,通过端口 9099 与 Apigee SSO 的连接使用 HTTP。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 身份验证。如需了解详情,请参阅将门户配置为使用 IDP

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

包含令牌的请求/响应流程