使用 Microsoft Entra ID 和 SAML 配置控制台 SSO
单点登录 (SSO) 允许用户使用一组凭证访问多个应用程序,从而简化身份验证过程。在 API7 企业版中,SSO 支持多种协议,并提供了从现有身份提供商 (IdP) 导入并管理用户的能力。
本指南将引导你通过 SAML 协议使用 Microsoft Entra ID (Azure AD) 作为身份提供商,为 API7 企业版控制台配置单点登录 (SSO),并为导入的用户设置角色和权限边界映射。
设置 SSO 集成
本节将指导你使用 Microsoft Entra ID (Azure AD) 作为身份提供商为 API7 企业版控制台配置单点登录 (SSO)。
配置 Microsoft Entra ID
本节描述在 Microsoft Entra ID (Azure AD) 中的示例配置。如果你使用的是其他的身份提供商 (IdP),请参阅你 IdP 的文档并相应地调整配置。
- 在 Azure Portal(Azure 门户)中,导航至 Microsoft Entra ID。
- 创建一个 enterprise application(企业应用程序)。选择 create your own application(创建你自己的应用程序)选项:
- 填写应用程序的名称,例如
API7。 - 选择 Integrate any other application you don't find in the gallery (Non-gallery)(集成你在库中找不到的任何其他应用程序 (非库))选项。
- 填写应用程序的名称,例如
- 在该应用程序中,选择 users and groups(用户和组)选项卡以添加所有必要的用户和组。只有被添加的用户和组才能通过 SSO 登录 API7。
- 在该应用程序中,导航至 single sign-on(单点登录)选项卡并启用 SAML 。启用 SAML 后,为你的应用找到以下信息:
- App Federation Metadata URL(应用联合元数据 URL):公开 SAML 配置详细信息的 URL,例如
https://login.microsoftonline.com/<TENANT_ID>/federationmetadata/2007-06/federationmetadata.xml?appid=<APP_ID>。 - Claim Names(声明名称):SAML 令牌中用户属性的唯一标识符,用于将身份提供商的数据映射到服务提供商中的相应字段。找到 username(用户名)和 email(电子邮件)的声明名称,例如
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name和http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress。
- App Federation Metadata URL(应用联合元数据 URL):公开 SAML 配置详细信息的 URL,例如
- 完成下面的创建控制台登录选项说明,因为后续配置需要来自 API7 的信息。
- 在该应用程序中,导航至 single sign-on(单点登录)选项卡并编辑 Basic SAML Configuration(基本 SAML 配置):
- Identifier (Entity ID)(标识符 (实体 ID)):用于在 SAML 联合中表示特定实体的唯一标识符。此标识符必须在 API7 和 IdP 之间保持唯一且一致。建议使用 API7 控制台 URL,例如
https://dashboard.your-company.com,尽管可以使用任何唯一的字符串。 - Reply URL (Assertion Consumer Service URL)(回复 URL (断言消费者服务 URL)):用户成功登录后,身份提供商向其发送 SAML 身份验证响应的服务提供商端点,例如
https://dashboard.your-company.com/api/saml/<LOGIN_OPTION_ID>/acs。
- Identifier (Entity ID)(标识符 (实体 ID)):用于在 SAML 联合中表示特定实体的唯一标识符。此标识符必须在 API7 和 IdP 之间保持唯一且一致。建议使用 API7 控制台 URL,例如
配置现已完成。你现在应该能够使用新的登录选项登录 API7 控制台了。
创建控制台登录选项
- 从顶部导航栏选择 组织 (Organization),然后选择 设置 (Settings)。
- 点击 添加登录选项 (Add Login Option)。
- 填写配置:
- 名称 (Name):唯一的登录名称。该名称应易于用户识别。例如,如果你将名称配置为
Employee Account,你将在控制台登录页面看到Login with Employee Account(使用员工账号登录)选项。 - 提供商 (Provider):选择
SAML。 - 身份提供商元数据 URL (Identity Provider Metadata URL):身份提供商的元数据 URL,例如
https://login.microsoftonline.com/<TENANT_ID>/federationmetadata/2007-06/federationmetadata.xml?appid=<APP_ID>。 - 服务提供商根 URL (Service Provider Root URL):你的服务提供商的根 URL。通常是 API7 控制台的地址,例如
https://dashboard.your-company.com。 - 实体 ID (Entity ID):用于在 SAML 联合中表示特定实体的唯一标识符。此标识符必须在 API7 和 IdP 之间保持唯一且一致。建议使用 API7 控制台 URL,例如
https://dashboard.your-company.com,尽管可以使用任何唯一的字符串。 - 属性映射 (Attributes Mapping):API7 用户字段映射到 SAML 声明。例如:
- username:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name - email:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress - name:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
- username:
- 注销时终止 IdP 会话 (Terminates IdP Session on Logout):你可以选择性地启用在注销时终止 IdP 会话。
- 点击 添加 (Add)。
- 在新的 SAML 登录选项中,找到 服务提供商 ACS URL (Service Provider ACS URL),例如
https://dashboard.your-company.com/api/saml/<LOGIN_OPTION_ID>/acs。 - 返回到上面的配置 Microsoft Entra ID,步骤 6。
如果完成了上述所有步骤,API7 控制台登录页面上现在应该出现一个新的登录选项,允许你使用在 IdP 中创建的用户进行身份验证。 用户登录后,以管理员用户身份登录,导航至顶部导航栏中的 组织 (Organization),然后选择 用户 (Users) 以查看该用户。
请注意,该用户尚未分配任何角色,因此缺乏在控制台中管理资源的权限。
important
在控制台中删除用户会移除其在 API7 控制台中分配的所有角色和权限边界,但该用户仍然可以作为新用户登录。若要完全撤销对 API7 控制台的访问权限,必须从 IdP 中移除该用户。