> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alforse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 单点登录

> 将已验证邮箱域名下的所有人导向您自己的 SAML 2.0 身份提供商登录，并可选择将其设为唯一登录方式。

单点登录（SSO）把 Alforse 的登录交给贵公司的 SAML 2.0 身份提供商（IdP），例如 Okta、Entra ID 或 Google Workspace。管理员只需设置一次；此后，邮箱位于已验证域名的 ERP 和 MES 用户会被自动导向 IdP。

## 开始之前

* **可用性。** 只有当您的账户启用了 SSO 时，**单点登录**部分才会出现在**设置 → 安全**中。
* **权限。** 保存 SSO 设置需要 `settings` 更新权限。
* **IdP 权限。** 您需要有在身份提供商中创建 SAML 应用的权限。
* **DNS 权限。** 您需要为每个邮箱域名发布一条 TXT 记录。

在您开启[需要 SAML SSO](#requiring-sso)之前，包括魔法链接在内的其他登录方式仍可使用。因此您可以先完成全部设置并测试，而不会把任何人锁在门外。

> [!NOTE]
>
> 改用飞书 / Lark、钉钉或 OpenID Connect 登录？请参阅[使用飞书/Lark、钉钉和 OIDC 的单点登录](https://docs.alforse.com/zh/docs/reference/sso-oidc-feishu-dingtalk.md)。一家公司只有一个连接：保存其中任一提供方会替换 SAML 连接。

## 连接身份提供商

整个设置都在**设置 → 安全**的**“单点登录”**部分完成。

Alforse screenshot**设置 → 安全，单点登录部分处于已激活连接状态：服务提供商详情、带有“需要 SAML SSO”开关的身份提供商卡片，以及电子邮件域卡片**

整个 SSO 交换都在一个设置界面上完成。

1. **复制 Alforse 的详情。** **“服务提供商详情”**卡片列出了**“ACS URL”**和**“SP 元数据 URL”**，每项都带有复制按钮。
2. **使用这两个 URL 在 IdP 中创建 SAML 应用。** 确保断言包含**邮箱属性**：Alforse 用邮箱把每次登录匹配到一个人和一家公司。
3. **向 Alforse 提供 IdP 元数据。** 在**“身份提供商”**卡片中，输入**“IdP 元数据 URL”**或原始的**“IdP 元数据 XML”**，二者选其一，然后选择**“连接”**。之后修改时，按钮显示为**“保存更改”**。
4. **确认连接已启用。** Alforse 会提示“SAML SSO connection saved”（SAML SSO 连接已保存），此时卡片显示**“需要 SAML SSO”**开关和**“停用”**按钮。
5. **添加并验证您的邮箱域名。** 在**“电子邮件域”**卡片中操作，该卡片在连接建立后出现。添加您的员工用于登录的每个域名，发布各自显示的 DNS 记录，然后选择**“验证”**。只有已验证的域名才会路由 SSO 登录。

## 验证域名

新域名初始为**待处理**，并获得专属的 TXT 质询，显示在卡片上：

| 记录 | 值 |
| - | - |
| **主机** | `_alforse-challenge.example.com` |
| **类型** | `TXT` |
| **值** | `alforse-domain-verification=<your unique token>` |

添加域名时，Alforse 会确认：“Domain added. Publish the TXT record shown below, then click Verify.”（域名已添加。请发布下方显示的 TXT 记录，然后点击验证。）通过 DNS 提供商发布该记录后，选择**“验证”**。

| 结果 | 消息 |
| - | - |
| 找到记录且正确 | “Domain verified — it can now route SAML SSO sign-ins”（域名已验证——现在可以路由 SAML SSO 登录）。域名变为**已验证**。 |
| 尚无记录 | “No TXT record found yet. DNS changes can take a few minutes to propagate — check the record's host name and try again shortly.”（尚未找到 TXT 记录。DNS 更改可能需要几分钟才能生效——请检查记录的主机名，稍后重试。） |
| 记录的值错误 | “A TXT record exists but its value does not match this company's verification token. Check that the record's value was copied exactly.”（存在 TXT 记录，但其值与本公司的验证令牌不匹配。请检查记录的值是否被完整复制。） |
| 查询失败 | “The DNS lookup failed. Check your network's outbound DNS access and try again.”（DNS 查询失败。请检查网络的出站 DNS 访问并重试。） |

* **验证只需一次。** 之后您可以删除该 TXT 记录。
* **待处理的域名不起作用。** 在验证之前，添加域名绝不会改变任何人的登录方式，因此添加是安全的。

HEADS UP

**一个已验证的域名只属于一家公司**

第一家证明拥有 DNS 控制权的公司持有该域名，即使之后 DNS 的控制权转给了别人，它仍保留该声明。要干净地移交域名，当前持有者需选择**移除**，这会释放该域名，供新的所有者验证。

## 用户体验

### 登录

登录页面首先询问邮箱。当用户选择**“继续”**时：

* 如果域名有已启用的 IdP，则被重定向到该 IdP；
* 否则继续使用标准的魔法链接登录。

在 Alforse 创建会话之前，IdP 断言中的邮箱域名必须与该连接上的某个**已验证**域名匹配。

### 谁能进入：邀请优先的开通方式

SSO 不允许人们自行注册。

| 人员 | 首次 SSO 登录 |
| - | - |
| 现有成员 | SAML 身份关联到其账户。 |
| 有待处理的邀请 | 邀请被接受，并应用其指定的角色。 |
| 其他任何人 | 被拒绝；不会创建账户。 |

要让某人进入，请在[员工目录](https://docs.alforse.com/zh/docs/reference/people.md)中创建其邀请，并请他们重试。

### 双因素认证

SSO 会话会跳过 Alforse 自己的[双因素质询](https://docs.alforse.com/zh/docs/reference/two-factor.md)，受控部署中也是如此，因为 IdP 会应用其自己的 MFA 策略。通过魔法链接登录仍要经过 Alforse 的质询。

## 强制使用 SSO

开启**“需要 SAML SSO”**，可使 IdP 成为已验证域名下用户唯一被接受的登录方式。Alforse 会确认“SAML SSO is now required for covered domains”（涵盖的域名现在必须使用 SAML SSO），此后这些用户的魔法链接、Google 和通行密钥登录都会被拒绝。

只有连接启用后才会出现该开关，因此您可以在强制之前先确认 SSO 登录可用。

| 目的 | 操作 | 结果 |
| - | - | - |
| 再次允许其他方式 | 关闭**“需要 SAML SSO”** | “SAML SSO is no longer required for covered domains”（涵盖的域名不再必须使用 SAML SSO）。魔法链接、Google 和通行密钥恢复可用。 |
| 完全移除 SSO | 选择**“停用”**并确认 | “SAML SSO connection deactivated”（SAML SSO 连接已停用）。连接被删除，其域名声明被释放，其他方式恢复可用。 |
| 停止使用某个域名 | 在该域名上选择**移除** | “Domain removed”（域名已移除）。该声明被释放，供其他公司验证。 |

## 相关内容

**飞书/Lark、钉钉和 OIDC**

通过飞书或 Lark、钉钉，或任意 OpenID Connect 提供方实现单点登录。

[Open](https://docs.alforse.com/zh/docs/reference/sso-oidc-feishu-dingtalk.md)

**双因素认证**

Alforse 自己为魔法链接登录提供的第二重验证。

[Open](https://docs.alforse.com/zh/docs/reference/two-factor.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.