SSO 第三方登录
单点登录(SSO)允许用户一次登录即可访问多个系统,而无需重新输入凭据。它通过消除对多个密码的需求,提高了效率,增强了用户体验,并加强了安全性。
在API7 Enterprise中,你可以同时使用多种登录选项。你可以在API7内部创建用户,同时也可以从其他现有系统中导入用户。
架构原理
以 LDAP 为例:
- 用户登录请求:用户在登录 API7 企业版时输入他们的用户名和密码。
- LDAP验证:API7 企业版将用户提供的凭据传输到 LDAP 服务器进行验证。LDAP 服务器是一个集中的用户信息管理系统,存储了用户的用户名、密码以及其他相关信息。
- 身份验证:LDAP 服务器验证用户的凭据是否与 LDAP 目录中存储的用户信息匹配。如果用户名和密码与 LDAP 服务器中的记录相匹配,那么身份验证就成功了。
- 授权:如果身份验证成功,LDAP 服务器将授权信息返回给 API7 企业版。系统基于这些信息授权用户访问相应的资源。这通常涉及到角色和权限的分配,确保用户只能访问他们被授权访问的资源。
- 访问资源:用户以经过验证的身份访问API7 企业版,无需重新输入凭据。
前提条件
- 获取一个具有超级管理员角色的用户账户。
集成 SSO
API7 企业版支持以下实现的单点登录(SSO)。将 API7 企业版与其他用户系统集成后,你可以让现有用户登录 API7 企业版,而无需注册新的 API7 帐户。
- LDAP
- OIDC
- 在顶部导航栏中,选择组织,然后选择设置。
- 单击新增登录选项。
- 填写新增登录选项表单:
- 名称:唯一的登录名称,必须让用户容易识别。例如
员工账户
。 - 提供者:选择
LDAP
。 - 主机名:LDAP 的主机域名。例如
ldap.example.com
。 - 端口:例如
1563
。 - 基本专有名称:例如
oc=users,dc=org,dc=example
。 - 绑定专有名称:LDAP 绑定的 DN,用来实现 LDAP 用户搜索。 应该被授予必要的嗖嗖权限。例如
cn=admin,dc=org,dc=example
。 - 绑定密码:和绑定专有名称一起,用于向 LDAP 服务器进行身份认证。
- 标识符:用在 LDAP 中识别用户的属性。例如
cn
。 - 属性映射: 将 API7 企业版中字段映射到 LDAP 系统中用于无缝集成和同步数据。
- 名称:唯一的登录名称,必须让用户容易识别。例如
- 单击新增。
- 在顶部导航栏中,选择组织,然后选择设置。
- 单击新增登录选项。
- 填写新增登录选项表单:
- 名称:唯一的登录名称,必须让用户容易识别。例如
员工账户
。 - 提供者:选择
OIDC
。 - 发行方:OpenID connect提供方的标识符。例如
https://accounts.example.com
. - 客户端 ID:由 OIDC 签发的,属于你的应用的唯一标识符。例如
API7
。 - 客户端密钥:用于和 OIDC 提供者进行身份认证的密钥。
- 请求范围:访问令牌通常受请求范围的限制。例如
profile,email
。 - 根地址:用于访问 API7 企业版用来生成回地址。例如
https://auth.example.com/oidc
。 - SSL 验证:默认开启。
- 名称:唯一的登录名称,必须让用户容易识别。例如
- 单击新增。
用 SSO 登录
一旦配置了登录选项,外部用户将能够直接登录到 API7 企业版控制台,而无需进行注册。
请按照以下步骤操作:
- 访问位于 http://localhost:7080 的 API7 企业版控制台。
- 从登录选项名称中选择,例如
使用员工帐户登录
。 - 输入用户名和密码。
- 点击登录。
删除导入的用户
如果你在用户中删除了使用 SSO 登录选项的用户,这仅仅意味着该用户将失去其所有角色。但是,他们仍然可以作为新用户登录到 API7 企业版控制台。要完全阻止他们访问 API7 企业版控制台,你必须从来源的用户系统中删除他们。
如果你希望完全阻止某个用户访问 API7 企业版,需要在身份提供系统中删除或禁用该用户的帐户。这样,当该用户尝试通过 SSO 登录 API7 企业版时,身份提供商将不会验证他们的身份,从而阻止他们访问系统。
从身份提供商同步用户数据
SCIM(系统跨域身份管理)是一种协议,可用于将用户和组信息从原始身份提供商(IdP)同步到 API7 企业版。这样就无需在多个系统中重复创建和管理用户,从而节省时间并降低出错风险。
通过 SCIM 用户同步,只要在你的 IdP 中注册或删除新用户,API7 企业版 就会自动同步用户数据。
- 在顶部导航栏中,选择组织,然后选择设置。
- 点击SCIM 配置的启用按钮。
- 复制API7 SCIM 端点 URL 和 SCIM 令牌。
- 到身份提供商的设置页面进行配置(如果支持 SCIM):
- 登录到身份提供商管理控制台。
- 找到 SCIM 配置设置(这些可能因你的 IdP 而异)。
- 将复制的API7 SCIM 端点 URL 和 SCIM 令牌粘贴到相应的字段中。
- 保存配置更改并在身份提供商端进行配置。
为导入的用户分配角色
不设置角色映射
所有被导入的新用户会默认授予观察者角色,直到超级管理员 为他们分配其他角色.
设置角色映射
导入的用户会根据其原始系统中的相关属性(头衔、职位、部门等)自动分配角色。这些角色会在用户登录时同步和刷新,以实现无缝访问。角色映射可以包含多个规则,这些规则共同决定用户的角色和访问权限。如果用户不满足任何规则,则将默认分配 观察者 角色。
启用角色映射后,将无法再为属于该登录选项的用户手动分配角色。系统会根据预定义的规则自动分配角色,以避免冲突。
- 在顶部导航栏中,选择组织,然后选择设置。
- 选择要设置的登陆选项,点击名称进入。例如,
员工账户
。 - 点击 角色映射的 开启按钮。
- 填写 开启角色映射 表单:
- 内部角色: 例如,
超级管理员
。 - 角色属性: 在身份提供商系统中的字段名称,例如,
Position
. - 运算符: 例如,
=
. - 角色值: 例如,
研发组长
.
- 内部角色: 例如,
- 点击 开启.
现在,通过员工账户
登陆,且在原始系统中职位为研发组长 (Position = 研发组长) 的所有用户将自动获得 超级管理员 角色,而其他用户将保持默认的 观察者角色,因为他们不满足分配角色的规则。
值得注意的是,这种角色映射是动态的。如果用户的职位在身份提供商中发生变化,例如从 "研发组长" 变为 "团队成员",那么他们下次登录 API7 企业版时,角色将自动更新为 观察者。
删除登录选项
删除一个登录选项会同时删除所有使用这个登录选项导入的用户。
- 在顶部导航栏中,选择组织,然后选择用户。
- 检查是否还有用户正在使用此登录选项。如果有,请先通知他们。
- 在顶部导航栏中,选择组织,然后选择设置。
- 单击目标登录选项的删除。
- 二次确认。