边缘界面和 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 可以通过端口 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 模块的网址: