跳转到主要内容
全部文章

安全

在 LMS 中通过 Entra ID、Okta 或 Google Workspace 设置 SAML 单点登录

LMS SAML 单点登录实用指南:核心术语、Entra ID、Okta 和 Google Workspace 的设置步骤、测试清单与常见陷阱。

Acadenix 团队 · · 阅读约 2 分钟


每多一个单独的登录,就多一个需要重置的密码,也多一个员工离职时需要关闭的账户。SAML 单点登录(SSO)将您的学习管理系统与身份提供商连接起来,让人们用工作账户登录培训平台,访问权限则随您的目录而定。本文介绍 SAML 的工作原理、使用 Microsoft Entra ID、Okta 或 Google Workspace 的设置流程,以及上线前需要检查的事项。

SAML 单点登录的工作原理

SAML(Security Assertion Markup Language,安全断言标记语言)2.0 是一项开放标准,用于在两个互相信任的系统之间传递登录信息。LMS 永远看不到用户的密码:它把用户送到您的身份提供商,由后者核实用户身份(包括您要求的任何多重身份验证),然后带着一份签名声明将用户送回。

术语 含义
身份提供商(IdP) 对您的人员进行身份验证的系统,例如 Entra ID、Okta 或 Google Workspace。
服务提供商(SP) 人们登录的应用程序:您的 LMS。
断言(Assertion) 来自 IdP 的签名 XML 声明:此人是谁、何时登录,以及电子邮件和姓名等属性。
实体 ID(Entity ID) 双方各自的唯一名称,通常形如 URL,但仅仅是一个标识符。必须完全一致。
ACS URL Assertion Consumer Service URL:接收 IdP 响应的 LMS 地址。
签名证书 IdP 用其私钥签名;LMS 用 IdP 的公钥证书验证,并拒绝伪造或被篡改的断言。
元数据(Metadata) 一个 XML 文件,打包了实体 ID、端点和证书,可直接导入。

断言的有效期很短,并且会指明其受众(SP 的实体 ID)。SP 会拒绝任何已过期或面向其他应用的断言。

为什么 LMS 值得使用 SSO

  • 无需额外密码。 人们使用日常账户,您的 MFA 和访问策略同样适用于培训。
  • 新员工快速获得访问权限。 将 LMS 应用分配给一个群组,组内的新员工第一天就可以登录。
  • 离职人员在源头失去访问权限。 在目录中停用某人后,他们就无法开始新的 LMS 会话。SAML 控制的是登录,而不是账户,因此请在离职流程中同时归档其 LMS 账户。

即时创建账户(JIT)

通过即时(JIT)创建账户,LMS 会在用户首次登录时根据断言的属性创建账户,因此无需导入用户列表。请为其设置防护措施:

  • 将其限制在您自己的邮箱域名内,这样配置错误的应用或访客账户就不会产生多余的用户。
  • 给新账户最低的角色,并有意识地授予管理员权限。
  • 如果您的 IdP 可以发送稳定的标识符,就以此匹配用户,因为电子邮件地址会变。

SP 发起与 IdP 发起的登录

  • SP 发起:用户打开 LMS,LMS 向 IdP 发送身份验证请求,IdP 将其响应发送(POST)到 ACS URL。它适用于书签和邮件链接,并且通常被认为是更安全的流程,因为响应对应的是 LMS 发出的请求。
  • IdP 发起:用户在 Microsoft My Apps、Okta 控制面板或 Google 应用菜单中点击该应用的图标,IdP 便向 ACS URL 发送一个未经请求的响应。

您可以两者都提供;请分别测试。

分步设置 SAML SSO

各家的流程大同小异:

  1. 规划范围:谁使用 SSO、哪些群组获得该应用、允许哪些邮箱域名,以及用哪个属性识别每个人。
  2. 在 LMS 中创建连接,并记下其实体 ID 和 ACS URL。
  3. 在您的 IdP 中创建 SAML 应用,填入这些值,选择 NameID 格式,并添加电子邮件、名和姓属性。
  4. 分配用户或群组;未被分配的人通常会被拒绝。
  5. 向 LMS 提供 IdP 的信息:元数据 URL、元数据文件,或 IdP 的实体 ID、登录 URL 和签名证书。
  6. 映射属性,使其与您的 IdP 实际发送的名称一致。
  7. 测试,然后启用,并告知用户将发生的变化。

各提供商说明

您的提供商文档中有确切的界面。值得了解的是:

  • Microsoft Entra ID:使用非库(non-gallery)企业应用程序,而不是应用注册,后者不提供 SAML。声明名称是很长的 URI,请原样复制。对象 ID 是很好的稳定标识符。对于没有邮箱的用户,电子邮件声明可能为空;若用户主体名称是真实地址,可用它代替。
  • Okta:创建 SAML 2.0 应用集成。属性语句需要您自己命名,因此必须与 LMS 的映射完全一致,包括大小写。其内部用户 ID 是稳定的标识符。
  • Google Workspace:添加自定义 SAML 应用并下载其元数据文件。该应用默认处于关闭状态,请为正确的组织单位或群组开启。典型的设置以主邮箱地址识别用户,因此请考虑地址被重命名和重复使用的情况。

测试清单

上线前,请在无痕浏览器窗口中检查以下各项:

  • 现有用户从 LMS 开始登录,以及再从应用图标登录。
  • 您域名下的新用户获得具有正确角色的账户。
  • 未被分配到该应用的人被拒绝。
  • 不在您允许域名内的人被拒绝。
  • 电子邮件、名和姓正确送达。
  • 管理员仍能通过恢复途径进入。

常见陷阱

时钟偏差

如果 IdP 与 LMS 的时钟相差超过 LMS 的容忍范围,有效的断言会被拒绝,提示尚未生效或已过期。这主要影响自托管的身份服务器,因此请保持它们的时钟同步。

证书轮换

IdP 签名证书会过期,如果 LMS 不信任新证书,所有登录会同时失败。请把到期日期记入日程。如果您的 LMS 可以同时信任两个证书,请先在 LMS 中添加新证书,再在 IdP 中启用;否则,请在业务清闲时同时切换两端。切换后立即测试。

属性映射

属性名称通常要求完全匹配:期望 email 的 LMS 不会接受 Email。还要检查标识符。临时(transient)NameID 每次会话都会变化,电子邮件地址也可能变化;持久(persistent)NameID 或不可变的 ID 属性则是稳定的。如果按电子邮件匹配用户,请在离职者的地址被重新分配之前先归档其账户。

邮箱域名不匹配

目录中往往包含登录名不是其电子邮件地址的人、使用其他域名的承包商,以及仍使用旧域名的被收购企业员工。如果 LMS 将账户限制在特定域名,他们就会被拒绝。请在上线前列出所有域名。

Acadenix 如何实现

SAML SSO 属于 Gold 套餐,并提供 Entra ID、Okta 和 Google Workspace 的分步指南。

  • 先测试,再激活。 您先将 IdP 的信息保存为草稿,通过在提供商处登录来运行 Test configuration(测试配置),然后才激活。如果缺少电子邮件声明,系统会连同您的提供商实际发送的声明名称一并报告。
  • 分阶段变更。 新证书或新租户会作为配置更新录入,在您激活之前,当前配置继续有效。
  • 域名范围内的 JIT。 没有账户的用户首次登录时会获得学员账户,前提是其邮箱属于您组织的注册域名,并且您可以将其关闭。已有 Acadenix 账户的用户首次通过您的 IdP 登录时,Acadenix 会向其发送一次性验证码以确认关联。每人仅此一次。
  • 两种入口。 用户可以从您的登录页面开始(登录页可直接跳转到您的 IdP,也可显示一个按钮),也可以从 My Apps、Okta 或 Google 中的图标开始。
  • 一个连接,一个组织。 SAML 连接不会向其所属组织下级的组织传递,这对拥有多个站点的集团很重要。
  • 恢复途径。 如果您的 IdP 宕机,管理员仍可使用邮件发送的一次性验证码登录,且该途径无法关闭。

除 SAML 外,用户还可以使用邮件验证码或 Google、Microsoft 或 LinkedIn 账户登录。更多内容见我们的安全页面。

要点回顾

  • 交换实体 ID、ACS URL 和元数据,然后映射稳定的标识符和已验证的电子邮件。
  • 将 JIT 账户限制在您自己的域名内,并赋予最低角色。
  • 上线前测试两种登录流程、拒绝情形和恢复途径。
  • 把证书到期日记入日程,并归档离职人员的 LMS 账户。

想把 Acadenix 连接到您的身份提供商?请在我们的价格页面比较套餐,或就您的方案联系我们。

常见问题

需要身份提供商和 LMS 的管理员权限。LMS 会提供其实体 ID(entity ID)和 ACS URL,身份提供商会提供其元数据(实体 ID、登录 URL 和签名证书),并且您需要约定用哪些属性来识别每个人。
可以,前提是 LMS 支持即时(JIT)账户创建,即在用户首次登录时创建账户。在 Acadenix 中,这些是学员账户,仅为邮箱地址属于您组织注册域名的人创建。
依赖 SSO 的人在其恢复之前无法登录,因此请为管理员保留恢复途径。在 Acadenix 中,管理员始终可以使用发送到邮箱的一次性验证码登录,且该途径无法关闭。
SP 发起的登录(用户从 LMS 开始)通常被认为更安全,因为响应与 LMS 发出的请求相绑定。从应用图标发起的 IdP 登录很方便,您也可以两者都提供。

继续阅读

SCORM

SCORM 1.2 与 SCORM 2004:该发布哪一种?

SCORM 1.2 与 2004 的区别(面向课程作者):完成与通过状态、续学数据、序列控制、兼容性,以及选择格式的简明指南。

· 阅读约 2 分钟

SCORM

上线前如何测试 SCORM 课程包

如何测试 SCORM 包的跟踪功能:涵盖导出设置、zip 结构、完成情况、分数、断点续学、设备与试点的分步清单。

· 阅读约 1 分钟

准备好让培训摆脱繁琐管理了吗?

申请试用,上传您现有的 SCORM 课程,亲身体验 Acadenix 搭配您自己内容的效果。

登录