使用 SAML 配置 SSO
本指南介绍如何使用 SAML 2.0 协议为 API7 控制台配置单点登录(SSO)。SAML SSO 允许用户通过企业身份提供商(IdP)进行认证,并在无需维护单独账户的情况下访问 控制台。
工作原理
- 用户在控制台登录页选择 SAML 登录选项。
- 控制台向 IdP 发送 SAML AuthnRequest。
- 认证完成后,IdP 会将 SAMLResponse POST 到控制台的断言消费服务(ACS)URL。
- 控制台验证 SAML 断言,提取用户属性,并创建或更新用户账户。
- 如果配置了角色和权限边界映射,这些映射会在每次登录时应用。
前置条件
开始前,请确保你已具备:
- 正在运行且可访问控制台的 API7 网关部署。
- 符合 SAML 2.0 标准的身份提供商,例如 Microsoft Entra ID、Okta 或 Ping Identity。
- 来自 IdP 的以下信息:
- IdP Metadata URL:提供 IdP SAML 元数据 XML 的 URL。
- 属性名称:
username、email以及所有角色相关属性的声明名称。
第 1 步:创建 SAML 登录选项
首先在 API7 中创建登录选项,以生成服务提供商(SP)元数据 URL,后续配置 IdP 时需要使用这些 URL。
- 在 API7 控制台中,进入 Organization > Settings。
- 点击 Add Login Option。
- 填写配置:
| 字段 | 描述 | 示例 |
|---|---|---|
| Name | 登录页显示的名称,格式为 "Login with {Name}" | Corporate SAML |
| Provider | 选择 SAML | — |
| Identity Provider Metadata URL | IdP SAML 元数据 XML 的 URL | https://login.microsoftonline.com/{tenant}/federationmetadata/... |
| Service Provider Root URL | 用户访问控制台的 URL | https://dashboard.example.com |
| Entity ID | SAML 联邦中 SP 的唯一标识。建议使用控制台 URL。 | https://dashboard.example.com |
| Attributes Mapping | 将 SAML 断言属性映射到 API7 用户字段 | 见下方提供商专用部分 |
| Terminate IdP Session on Logout | 退出时是否重定向到 IdP 进行 Single Logout(SLO) | false |
- 点击 Add。
创建后,登录选项会显示以下自动生成的 URL:
| URL | 用途 |
|---|---|
| ACS URL | https://<DASHBOARD_URL>/api/saml/<LOGIN_OPTION_ID>/acs——IdP POST SAML 响应的端点 |
| SLO URL | https://<DASHBOARD_URL>/api/saml/<LOGIN_OPTION_ID>/slo——Single Logout 回调端点 |
| SP Metadata URL | https://<DASHBOARD_URL>/api/saml/<LOGIN_OPTION_ID>/metadata——可导入 IdP 的 SP 元数据 XML |
备注
如果你没有提供自定义证书,API7 会自动生成自签名证书和私钥用于 SAML 请求签名。你也可以在登录选项配置中提供自定义 SP 证书和私钥。
第 2 步:配置 IdP
使用第 1 步中的 ACS URL 和 Entity ID,在身份提供商中将 API7 控制台注册为服务提供商。
关于特定 IdP 的详细说明,请参阅下方提供商专用配置部分。
第 3 步:验证 SSO 登录
- 退出 API7 控制台。
- 在登录页,你应看到一个新选项:Login with {Name}。
- 点击该选项,通过 IdP 完成认证。
- 认证成 功后,你会被重定向回控制台。
SSO 用户会出现在 Organization > Users 下。默认情况下,该用户未分配任何角色。
important
在控制台中删除用户会移除其角色和权限边界,但该用户仍可再次作为新用户登录。若要完全撤销访问权限,请从 IdP 中移除该用户。
配置角色映射
角色映射会根据 SAML 断言属性自动为 SSO 用户分配 API7 角色。请配置 IdP,使其在 SAML 响应中包含角色相关属性,然后在 API7 中设置映射规则。
信息
自动角色映射优先于手动角色分配。启用映射后,用户下次登录时会覆盖任何手动更改。