# 设置 OIDC

{% hint style="warning" %}
本指南将带你完成为文档设置受保护的登录界面。在阅读本指南之前，请确保你已经先完成了 [启用经过身份验证的访问](https://gitbook-v2-5hpihs24d-gitbook.vercel.app/url/gitbook.com/docs/documentation/zh/zhan-dian-fang-wen/authenticated-access/enabling-authenticated-access).
{% endhint %}

要使用 OIDC 为你的 GitBook 站点设置经过身份验证的访问，流程如下：

{% stepper %}
{% step %}
**使用你的身份提供商创建一个新应用**

从你的身份提供商的控制面板创建一个应用。
{% endstep %}

{% step %}
**安装并配置 OIDC 集成**

安装 Auth0 集成并添加所需的配置。
{% endstep %}
{% endstepper %}

OIDC 代表 OpenID Connect，它是在 OAuth 之上构建的身份层。许多身份提供商都遵循 OIDC，而 GitBook 的 OIDC 经过身份验证访问集成允许你将你的空间发布在经过身份验证的访问之后，内容访问则由你的身份提供商控制

{% hint style="info" %}
由于本指南是适用于所有身份提供商的通用指南，某些细节可能会因你的身份提供商而异。为了便于说明，我们在本指南中使用 Google 作为身份提供商。
{% endhint %}

### 使用你的身份提供商创建一个新应用

为了让集成正常工作，你需要在身份提供商中完成一些设置。

你需要在你的身份提供商中创建一个新应用。其类型应为“Web Application”。在 Google 中，你可以在“API and Services”、“Credentials”，然后在“OAuth 2.0 Client IDs”下创建这些。\\

<figure><img src="https://2111890564-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2F8ra7t88ktqM7yX7w1l4m%2FScreen%20Shot%202024-05-15%20at%2011.19.59%20AM.png?alt=media&#x26;token=bc1fbb59-5a36-47f8-985f-da9c743e3adb" alt="A screenshot showing creation of an OAuth client in an identity provider"><figcaption></figcaption></figure>

点击 Create Credentials，选择 OAuth Client ID，将类型设为 Web Application，适当命名，然后在 Authorized Redirect URIs 下输入你从 GitBook 获取的 Callback URL。

点击 Create。记下 Client ID 和 Client Secret。完成在 GitBook 中的集成配置时我们会用到它们。

### 安装并配置 OIDC 集成

在 GitBook 应用中进入 integrations，选择 authenticated access 作为类别，然后安装 OIDC 集成。将 OIDC 集成安装到你选择的文档站点上。

<figure><img src="https://2111890564-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2FCZy21M4LIPwMVSxI3ec1%2FScreen%20Shot%202024-12-13%20at%203.37.39%20PM.png?alt=media&#x26;token=4e31d496-04eb-4d00-ac45-011b543edfe4" alt="A GitBook screenshot showing the OIDC integration installation"><figcaption></figcaption></figure>

在你的站点上安装完成后，进入 configuration，并记下 Save 按钮上方的 Callback URL。我们可能需要它来设置身份提供商。

打开你安装了该集成的空间中的 OIDC 集成配置界面。

它应该如下图所示

<figure><img src="https://2111890564-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNkEGS7hzeqa35sMXQZ4X%2Fuploads%2F04b2yAGjDIJQsA2aPIEO%2FScreen%20Shot%202024-12-13%20at%203.38.30%20PM.png?alt=media&#x26;token=e89e34c5-0e95-4547-a507-cc1d727b6ee5" alt="A GitBook screenshot showing the OIDC configuration screen"><figcaption></figcaption></figure>

对于 Client ID 和 Client Secret，请粘贴你从身份提供商那里获取的值。

现在，你需要找到你的身份提供商的 Authorization Endpoint 和 Access Token Endpoint。对于 Google，它们是 `https://accounts.google.com/o/oauth2/v2/auth` 并 `https://oauth2.googleapis.com/token` 分别对应。

{% hint style="info" %}
如果你不是使用 Google，这些端点对你来说会不同。请查看你的身份提供商文档以找到这些端点
{% endhint %}

对于 OAuth Scope，它的值同样会因你的身份提供商而异。如果是 Google，你可以输入 `openid`.

{% hint style="info" %}
请查看你的身份提供商文档中允许的 scope 列表，并输入限制性最小的 scope 值。我们只使用 Access Token 来验证用户是否已通过身份验证，不会使用 Access Token 获取任何进一步的信息。因此，输入限制性最小的 scope 是最佳安全建议。
{% endhint %}

点击 Save。

现在，在 GitBook 中，关闭集成模态框并点击 Manage site 按钮。导航到 **受众**，选择 **身份验证访问**，然后选择 OIDC 作为后端。接着，点击 **更新受众**。进入网站页面并点击 **发布**。\
\
现在，该站点已发布在由你的 Auth0 应用控制的经过身份验证的访问之后。要试用它，请点击 Visit。系统会要求你使用 OIDC 登录，这将确认你的站点已通过 Auth0 在经过身份验证的访问之后发布。
