SSO 与用户配置
单点登录(SSO)允许成员通过你的身份提供商登录 Bird,而无需使用单独的 Bird 密码。Bird 支持 SAML 2.0 和 OpenID Connect (OIDC) 连接。
设置 SSO 是组织 Owner 的任务,相关控制位于组织的 Single sign-on 页面。被授予 SSO 权限的成员无需是 Owner 即可管理连接。
个人 Google 或 GitHub 登录与组织 SSO 是分开的。请参阅登录、密码与 MFA。
SSO 的工作方式
一个 SSO 连接覆盖一个或多个已验证的电子邮件域名,例如 yourcompany.com。这些域名上的成员通过你的身份提供商进行身份验证。他们的 Bird 权限仍取决于其组织和工作区角色。
设置包含哪些步骤
由组织 Owner 和身份提供商管理员共同完成设置:
- 证明你拥有该域名。 Bird 会为连接覆盖的每个电子邮件域名提供一条 DNS 记录供你发布。在域名验证通过之前,无法启用强制要求。
- 配置连接。 对于 SAML,提供身份提供商元数据,或登录 URL 和签名证书。对于 OIDC,提供颁发者和客户端凭据。将 Bird 的服务提供商或重定向详情复制到你的身份提供商中。
- 测试连接。 在激活连接之前完成一次测试登录。无论你选择了哪种协议,只要你的组织拥有已验证的域名且活跃连接数未超过上限,通过测试的草稿连接会自动激活。
- 选择是否强制要求 SSO。 当 SSO 为可选时,成员可以使用 SSO 或其他可用的登录方式。当 SSO 为强制要求时,成员必须通过 SSO 才能访问组织。强制要求 SSO 需要一个活跃连接和至少一个已验证的域名。
强制要求 SSO 会立即对每个请求生效,而不是仅在下次登录时才生效。当前会话不是通过你的身份提供商建立的成员将失去对组织的访问权,直到他们重新通过身份提供商登录。因此,请根据团队的工作安排来规划此变更,而不是事后再通知。组织 Owner 是例外:Owner 可以使用其 Bird 密码保持访问权限,这正是防止错误配置的连接导致所有人被锁定的保障。
设置你的身份提供商
步骤 2 是因提供商而异的部分:相同的值在每个提供商中名称不同,且每个提供商都有一项设置如果配置错误会拒绝所有登录。Bird 自身的字段名称显示在连接页面的 Register these with your identity provider 下。
对于其他任何 SAML 2.0 或 OpenID Connect 提供商,以上四个步骤就是全部流程。
在没有占位值的情况下设置 SAML
SAML 连接的 Entity ID 和 Assertion Consumer Service URL 由连接本身派生,因此在你创建连接之前它们并不存在。这就形成了一个循环:你的身份提供商需要这些值,而这些值又需要先有连接。
先创建连接。在 Add connection 中选择 SAML,然后选择 I have not set up my provider yet。连接会以草稿形式创建,不含身份提供商详情,打开后可在 Register these with your identity provider 下看到需要注册的值。用这些值配置你的提供商,然后回来对同一连接使用 Supply the details,选择你拥有的任意形式:
- 元数据 URL,我们会抓取并读取
- 元数据文档本身,适用于提供文件而非托管 URL 的提供商
- entity ID、登录 URL 和签名证书,直接输入
上传的文档仅用于读取这三个值,不会被存储。
在详情提交之前,连接保持草稿状态:它不处理任何登录,也无法被激活。
成员如何被识别
SAML 连接通过你的提供商发送的 NameID 来识别每位成员,该标识符对已登录的用户是永久的。设置连接时不会要求你选择格式。如果你提供了元数据 URL 或文档,我们会读取你的提供商在其中公布的格式,并据此为连接建立键。如果你手动输入了详情,则没有元数据可供读取,连接将以永久 ID 为键。
你能控制的是其背后的值。在你的提供商处将应用用户名设置为不透明且永不被重新分配的值,并将邮箱地址作为 email 属性单独发送。将邮箱地址用作标识符永远更弱:如果该地址被重新分配,获得它的下一个人会继承对应的 Bird 账户。
元数据描述的是你的提供商 能够 发送什么;其应用配置决定的是 实际 发送什么,两者可能不同。因此步骤 3 的测试登录会报告断言实际携带的标识符和格式,该报告就是你在任何人依赖该连接之前确认两者一致的方式。我们还会拒绝被标记为 persistent 但实际上是邮箱地址的标识符。
如果测试报告的格式不是你预期的,你有两种纠正方法,具体选择取决于问题所在:
- 提供商发送了错误的内容。 在你的提供商处更改应用用户名,然后重新测试。这通常是正确的修复方式,因为不透明标识符才是值得保留的。
- 连接以错误的内容为键。 在连接上打开 Edit,将 NameID 格式更改为你的提供商实际发送的格式。
请在成员开始登录之前完成以上任一操作。一旦成员已登录,其账户便已与当时生效的标识符绑定,格式因此被固定,更改将被拒绝。请改为为新格式创建一个新连接。
更换提供商
SAML 连接的身份提供商详情可以在无人登录过时被替换。一旦有成员使用过,其账户便与当前提供商发送的标识符绑定,因此替换会被拒绝。请改为为新提供商创建一个新连接。对于 OIDC 连接,你可以随时轮换客户端密钥,这不会改变成员的标识方式,但提供商本身不能被替换。
步骤 3 中的测试登录不计入在内。测试不会关联任何账户,也不会授予任何访问权限,因此你已设置并测试但尚未分配给团队的连接仍然可以重新指向。
对你的团队有哪些变化
连接可以在成员首次成功通过 SSO 登录时授予默认的组织和工作区访问权限。请显式配置该默认访问权限;否则,请在成员登录之前邀请他们并分配角色。请参阅用户、团队与角色。
暂停连接会阻止通过该连接的新登录。当有人离开公司时,请单独审查 Bird 成员资格和活跃会话。
后续步骤
- 登录、密码与 MFA:个人账户安全,包括个人 Google/GitHub 登录
- 用户、团队与角色:成员加入后角色和权限的工作方式
- 身份验证与 API 密钥:面向开发者的身份验证参考