单点登录
让用户通过已有的 Microsoft、Google 或 GitHub 账号,或者组织的身份提供商(OpenID Connect)登录。
配置身份提供商
- 先在控制面板 › 常规中设置网站地址。
- 打开控制面板 › 单点登录,选择身份提供商,复制页面显示的重定向地址。
- 在身份提供商中注册 ThirtyFile(参阅下方),粘贴该地址。
- 将提供商给出的 ID 和 secret 复制到 ThirtyFile,启用并保存。
Microsoft Entra ID
Microsoft Entra 管理中心 › App registrations › New registration。选择“Web”平台,填写重定向地址,再从“Certificates & secrets”添加 client secret。application ID 和 tenant ID 位于“Overview”页面。
Google Cloud Console › APIs & Services › Credentials › Create credentials › OAuth client ID。选择“Web application”,在“Authorized redirect URIs”中添加重定向地址。
GitHub
GitHub › Settings › Developer settings › OAuth Apps › New OAuth App。将重定向地址填写为 callback URL,然后生成 client secret。
OpenID Connect(Keycloak、Authentik、Authelia、Zitadel…)
在身份提供商中创建 confidential client(Web 应用),设置重定向地址,并记下 client ID 和 secret。在 ThirtyFile 中填写 Issuer URL(Keycloak 例如 https://auth.example.com/realms/<realm>)和登录按钮名称,例如“公司登录”。保存时,ThirtyFile 从 <issuer>/.well-known/openid-configuration 读取配置;issuer 必须使用 https,文档中的 issuer 必须与之相同。
提供商必须返回用户邮箱,并标记为已验证(email scope 和 claim,以及 email_verified),否则用户只能自行关联账号。允许域名、域名规则、关联和自动创建账号与其他提供商相同。
谁可以登录
每个提供商都可以分别设置首次登录规则:
| 规则 | 处理方式 |
|---|---|
| 仅限已关联账号 | 只有从账号菜单自行关联外部账号的人可登录 |
| 按邮箱匹配现有用户 | 邮箱等于某个无密码、无两步验证账号的用户名时可匹配,例如同邮箱单点登录创建的账号。具有密码或两步验证的账号(例如管理员创建的账号)不会自动匹配,因为提供商登录会绕过这些验证;所有者应先用密码登录一次,再关联账号 |
| 自动创建账号 | 允许邮箱域名中的任何用户都会获得新账号 |
使用自动创建账号时,填写允许的邮箱域名,例如 example.com,确保只有组织内的人可以访问。
不同域名采用不同设置
邮箱域名规则可为新账号设置不同权限、空间容量和用户组。例如来自 partner.example 的合作伙伴可获得较小空间,并禁止分享。
规则也可以决定新账号是否拥有个人空间(我的文件),以及使用哪个存储位置。保留按照系统设置时,采用控制面板 › 常规的设置。位置文件夹不可用时,用户仍可登录;恢复后会在该位置创建“我的文件”。
自行关联账号
所有人都可在账号菜单 › 登录方式中关联或取消关联已配置提供商的账号(Microsoft、Google、GitHub 或 OpenID Connect)。关联后的账号可绕过本地密码登录,因此关联前需要当前密码,两步验证账号还需验证码;无密码账号须在登录后 10 分钟内关联。每次关联(包括按邮箱匹配)都会通过应用内通知和邮件告知用户。
设置了允许域名列表时,只有提供商已验证的、位于该列表域名中的邮箱才能关联。关联账号只保存已验证的邮箱地址。
包含来宾的 Microsoft 租户
设置 tenant ID 后,租户成员可按邮箱匹配。其他组织的来宾也通过你的租户登录,但邮箱由其所属组织提供,而该组织可填写任意地址。所以来宾邮箱不用于匹配或创建账号:来宾应使用密码登录,自行关联 Microsoft 账号。
若也需按邮箱匹配来宾,在 ID token 添加可选 claim xms_edov:应用注册中选择 Token configuration › Add optional claim › ID › xms_edov。Microsoft 会注明来宾邮箱域名是否属于其组织,仅匹配这些来宾。