使用 Microsoft Entra ID 配置控制台 SSO
Microsoft Entra ID (原名为 Azure AD) 是 Microsoft 基于云的身份和访问管理服务。它允许组织安全地管理和认证用户及设备,确保合适的人员拥有对公司资源的适当访问权限。Microsoft Entra ID 提供诸如单点登录 (SSO)、多因素身份验证 (MFA) 以及与各种第三方应用程序集成等功能。
本指南将向你展示如何将 API7 企业版与 Microsoft Entra ID 集成以实现 SSO 并配置所需的访问控制。
以下是一个交互式演示,提供了将 Microsoft Entra ID 与 API7 企业版集成的动手实践介绍。
前提条件
- 安装 API7 企业版。
- 在你的网关组中至少有一个网关实例。
- 拥有一个具有活动订阅的 Azure 账户。
配置 Azure
注册应用程序
登录 Azure portal,进入 Microsoft Entra ID,并在 Manage (管理) 下拉菜单中选择 App registrations (应用程序注册) 以注册一个新应用程序:

填写应用程序详细信息并点击 Register (注册):

创建应用程序客户端密钥
应用程序注册完成后,在 Manage (管理) 下拉菜单中选择 Certificates & secrets (证书和机密) 以创建一个客户端密钥 (Client Secret):

填写客户端密钥的详细信息并点击 Add (添加):

客户端密钥现已生成。请将密钥保存在安全的位置,以便稍后在 API7 企业版配置中引用。请注意,你只能查看一次该密钥。

创建应用程序角色
在 Manage (管理) 下拉菜单中选择 App roles (应用程序角色) 以创建一个新的 SuperAdmin 应用程序角色。填写角色详细信息并点击 Apply (应用):

你应该会看到角色已创建并启用。
将应用程序角色分配给用户
在 Manage (管理) 下拉菜单中选择 Enterprise applications (企业应用程序):

你现在应该会被重定向到一个显示所有应用程序的页面。选择之前创建的应用程序:

你现在应该会被重定向到应用程序的概览页面。在 Manage (管理) 下拉菜单中选择 Users and groups (用户和组) 并点击 Add user/group (添加用户/组):

选择合适的将被允许作为超级管理员登录 API7 控制台的 IAM 用户,并分配之前创建的 SuperAdmin 角色。点击 Assign (分配):

你应该会看到角色已分配:

配置 API7
使用具有管理员权限的账号登录 API7 控制台。
添加登录选项
在 组织 (Organization) 下拉菜单中,点击 设置 (Settings),然后选择 添加登录选项 (Add Login Option):

填写 名称 (Name),选择 OIDC 作为提供商,并根据应用程序信息填充 签发者 (Issuer) 和 客户端 ID (Client ID):

签发者 URL 不应包含 /.well-known/openid-configuration。
在 Azure 中,你可以通过点击 Endpoints (端点) 并复制 OpenID Connect metadata document (OpenID Connect 元数据文档) 来找到签发者:

继续填写之前保存的 客户端密钥 (Client Secret):

以及其余信息:

完成配置后,点击 添加 (Add)。你应该会看到登录提供商已成功创建。
启用角色映射
启用自动映射后,导入的用户可以根据其来自身份提供商的属性(如头衔、职位或部门)自动分配角色和权限边界。这些角色和权限边界在用户每次登录时进行同步,确保访问权限的一致性。一个登录选项的映射可以包含多个规则,这些规则共同决定用户的访问权限。
为新创建的登录提供商启用 角色映射 (Role Mapping):

填写详细信息并点击 启用 (Enable):

角色现在应该已经更新。
更新回调 URL
回调 URL 是应用程序在成功通过 Microsoft Entra ID 身份验证后将用户重定向到的地址。
在提供商配置中找到回调 URL:

在 Azure 门户中,导航到应用程序的概览页面并点击 Add a Redirect URI (添加重定向 URI):

点击 Authentication (身份验证) 选项卡并点击 Add a platform (添加平台)。选择 Web 应用程序类型并输入重定向 URI:

验证 SSO
从 API7 控制台注销并重新访问登录页面。你现在应该会看到一个使用 Microsoft Entra ID 登录的选项:

你现在应该能够使用你的 Microsoft 账号进行登录了。