# 正在设置 OIDC

{% hint style="warning" %}
本指南将带你完成为你的文档设置受保护的登录界面的过程。在继续本指南之前，请确保你已经先完成了 [启用经过身份验证的访问](https://gitbook-open-v2-preview.gitbook.workers.dev/url/gitbook.com/docs/documentation/zh/publishing-documentation/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 在经过身份验证的访问之后发布。
