SSO 与 SAML

了解如何通过 SSO 与 SAML 共享您的 GitBook 内容。

此功能可在 企业计划上使用.

手动管理组织成员对于较小的团队或需要大量控制的人来说是可以的,但有时你需要以更自动化的方式开放访问。GitBook 允许你通过几种方式配置此项:一种是基于电子邮件域的简单 SSO,另一种是更复杂的 SAML 集成。

通过电子邮件域的单点登录

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

你可以在组织设置的“SSO”部分启用电子邮件域 SSO;输入用逗号分隔的你希望允许 SSO 访问的电子邮件域列表,然后即可生效。

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

任何通过 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。

你需要从 IdP 的元数据中获取以下内容以注册 SAML 提供者:

  • 一个 标签 ——这可以是任意文本,会显示在登录页面上

  • 一个 实体 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 时,GitBook 会通过自动 IdP 预配为他们创建一个 GitBook 账户。该用户将作为组织成员访问组织资源。

移除账户

从 IdP 中移除成员将阻止该用户登录对应的 GitBook 账户, 但不会从 GitBook 中删除该账户。我们建议也从 GitBook 组织中移除此账户。

控制访问

一旦你设置了 SAML SSO,控制谁可以访问你的 GitBook 账户的责任就落在 IdP 上。

安全通知

如果你在身份提供者提供的电子邮件地址下已有现有的 GitBook 账户,并且你不是要登录的组织的成员,出于安全原因,我们将无法通过 SAML 配置自动将你添加到该组织。你有两个选项:

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

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

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

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

curl --request POST --header "Authorization: Bearer <your_access_token>" --url "https://api.gitbook.com/v1/orgs/<org_id>/invites" --header 'Content-Type: application/json' --data-raw '{ "sso": true, "role": "<role>", "emails":["<email>"] }'

最后更新于

这有帮助吗?