building-lockSSO 与 SAML

了解如何通过 SSO 与 SAML 分享你的 GitBook 内容

虽然手动管理组织成员对于小团队或那些希望拥有大量控制权的人来说没问题,但有时你只是需要以更自动化的方式开放权限。GitBook 允许你通过两种方式进行配置:基础的邮箱域名 SSO,以及更复杂的 SAML 集成。

通过邮箱域名实现单点登录

当你创建或管理组织时,可以添加一个你希望允许访问 GitBook 组织的邮箱域名列表。这意味着,任何拥有与你配置的 SSO 域名匹配且已验证的电子邮件地址的人,都将被允许加入你的组织。

你可以在组织的 SSO 部分中启用邮箱域名 SSO; 设置输入一个以逗号分隔的邮箱域名列表,即可允许这些域名使用 SSO 访问,设置就完成了。

A GitBook screenshot showing how to configure SSO
为你的组织设置 SSO。
circle-info

任何通过 SSO 邮箱域名加入的人,默认都会获得访客访问权限;你可以随时在组织设置的成员部分更改他们的角色。

基于 SAML 的单点登录 (SSO)通过你选择的身份提供商(IdP)让成员访问 GitBook。

GitBook 可轻松与你现有的身份提供商(IdP)集成,因此你可以为员工提供使用与其他服务提供商相同凭据和登录体验的 GitBook 单点登录。

通过使用 SSO,你的员工将能够使用熟悉的身份提供商界面登录 GitBook,而不是 GitBook 登录页面。随后,员工的浏览器会将他们转发到 GitBook。启用 SSO 并停用 GitBook 自身的登录机制后,IdP 会授予对 GitBook 的访问权限。这样,身份验证安全性就转移到了你的 IdP,并与其他服务提供商协调一致。

使用 GitBook 配置 SSO 的先决条件

  • 你公司的身份提供商(IdP)必须支持 SAML 2.0 标准。

  • 你必须在 IdP 上拥有管理权限。

  • 你必须是要为其设置 SAML 的 GitBook 组织的管理员。

在 GitBook 上设置

你必须是 组织管理员 才能为你的 GitBook 组织启用 SSO。

在 IdP 上配置好 SSO 后,你将能够输入元数据。设置成功后,管理员会看到一个确认对话框,并会显示面向最终用户的 SSO 登录 URL。 GitBook 在设置完成时不会发送公告邮件。管理员有责任通知公司员工(并将登录 URL 传达给他们),这样他们才能通过 SSO 访问 GitBook。

circle-info

组织管理员仍然可以使用非 SSO 方式登录,因此即使启用了 强制 SSO ,你仍可能会看到 Google、GitHub 或电子邮件按钮。这是预期行为。

这可以防止在错误配置 SSO 后将自己锁在组织之外。管理员始终可以登录并移除或修复 SSO 设置。

注册 SAML 提供程序时,你需要从 IdP 元数据中获取以下内容:

  • 一项 标签 ——这可以是任意内容,它会显示在登录页面上

  • 一个 实体 ID

  • 一项 单点登录 URL

  • 一个 X.509 证书 ——请确保复制并粘贴整个证书!

在 IdP 上设置

大多数符合 SAML 2.0 的身份提供商在设置时都需要相同的服务提供商信息(在本例中是 GitBook)。这些值专属于你的 GitBook 组织,可在你希望启用 SSO 的 GitBook 组织的 设置 -> SSO 标签页中找到。

这些值中的大多数都可以直接复制到你的 IdP 中,以完成 SAML 的配置。

GitBook 要求 NameID 包含用户的电子邮件地址。从技术上讲,我们需要的是: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 作为 Name-ID 格式——许多提供商(例如 Google)会允许你设置如下格式: EMAIL.

自定义属性

GitBook 将从 SAML 断言响应中提取以下自定义属性,并在创建用户时使用它们。

字段
说明

first_name

first_namelast_name 这些字段将合并,以生成用户在 GitBook 中显示的名称

last_name

first_namelast_name 这些字段将合并,以生成用户在 GitBook 中显示的名称

创建最终用户账户

要添加成员,请在你的 IdP 中为他们创建账户。新成员第一次通过 IdP 登录 GitBook 时,系统会通过自动 IdP 预配为他们创建一个 GitBook 账户。该用户将作为组织成员获得组织资源的访问权限。

triangle-exclamation

移除账户

将成员从 IdP 中移除后,用户将无法再登录对应的 GitBook 账户, 但不会从 GitBook 中删除该账户。我们建议同时将该账户从 GitBook 组织中移除。

控制访问

一旦你设置了 SAML SSO,控制谁可以访问你的 GitBook 账户就取决于 IdP 了。

安全提示

如果你已有一个与我们从身份提供商获取到的电子邮件地址相同的 GitBook 账户,并且你不是要登录的该组织的成员,出于安全原因,我们将无法使用 SAML 配置自动将你添加到该组织。你有两个选择:

  1. 删除你现有的 GitBook 账户,然后使用 SAML 登录你想加入的组织。GitBook 随后会为你创建一个新账户,并将你加入该组织

  2. 或者,请你的管理员邀请你加入该组织:

如果你的组织没有启用“强制 SSO”,组织管理员可以通过组织设置中的成员页面邀请用户。

如果你的组织已启用“强制 SSO”,管理员必须使用 GitBook 的 邀请 API 端点来邀请用户加入组织。对此 API 的调用示例如下;

最后更新于

这有帮助吗?