> For the complete documentation index, see [llms.txt](https://docs.dispel.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dispel.com/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers.md).

# 身份提供方（SSO）

让用户使用你现有的身份提供方登录 Dispel。通过 OAuth（OIDC）或 SAML 连接 Microsoft Entra ID、Okta 或 PingIdentity，实现单点登录。

## 概述

连接身份提供商（IdP）后，用户就可以使用他们在其他地方已经使用的同一企业凭据登录 Dispel——即单点登录（SSO）。IdP 会处理身份验证并告知 Dispel 用户是谁，而不是单独管理一个 Dispel 密码。

Dispel 支持四种身份提供商。Active Directory 通过 LDAP(S) 连接；Microsoft Entra ID、Okta 和 Ping Identity 则分别通过 OAuth（OIDC）或 SAML 连接：

* [**Active Directory**](/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers/active-directory.md) — 微软的本地目录服务。
* [**Microsoft Entra ID**](/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers/microsoft-entra-id.md) — 微软的云身份平台（原 Azure AD）。
* [**Okta**](/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers/okta.md) — Okta 的企业身份平台。
* [**PingIdentity**](/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers/ping-identity.md) — Ping 的联合身份平台。

{% hint style="info" %}
**在哪里找到它。** 以组织管理员身份登录并打开 **设置 → 集成** （或专用的 **设置 → 身份验证** 页面）。这些提供商会显示在 **身份与身份验证（IdP / SSO）** 部分。点击 **连接** 即可开始配置某个提供商。
{% endhint %}

{% hint style="warning" %}
**每个组织仅可配置一个身份提供商。** 一个组织在同一时间只能启用一个 IdP，并且只能使用一种协议。若要切换提供商——或将现有提供商在 OAuth 和 SAML 之间切换——必须先断开当前连接。
{% endhint %}

## 选择协议

你将使用的协议取决于你要连接的提供商：

* Active Directory 仅通过 LDAP(S) 连接。
* Microsoft Entra ID、Okta 和 Ping Identity 都同时支持 OAuth（OIDC）和 SAML。配置这些提供商时，你可以在这两种协议之间进行选择。每个提供商同一时间只能启用一种协议。

对于这三个云提供商，请根据你的 IdP 应用的设置在 OIDC 和 SAML 之间选择：

| 协议               | 它是什么                             | 何时选择                                   |
| ---------------- | -------------------------------- | -------------------------------------- |
| **OAuth** （OIDC） | 一种用于访问委托的开放标准，通常用于基于令牌的身份验证。     | 你的 IdP 应用被设置为 OIDC / OAuth 应用。         |
| **SAML**         | 一种基于 XML 的框架，用于在各方之间交换身份验证和授权数据。 | 你的 IdP 应用被设置为 SAML 应用，或者你的组织统一使用 SAML。 |

> Active Directory 使用 LDAP(S)——一种用于查询目录服务器并向其进行身份验证的协议，通过 TLS 进行保护。由于 AD 只支持 LDAP(S)，因此无需为其选择协议。

## 你提供的内容，以及 Dispel 提供的内容

配置 SSO 是一个双向交换过程。你需要向 Dispel 提供有关你的 IdP 的详细信息，而对于 SAML，你还需要将 Dispel 的服务提供商信息粘贴回你的 IdP 中。

#### OAuth（OIDC）

你需要在 Dispel 中填写以下内容：

| 字段          | 填写内容                                                   |
| ----------- | ------------------------------------------------------ |
| **客户端 URL** | OAuth 令牌发送到的 URL——可在你的 IdP 设置中找到。                      |
| **客户端 ID**  | 你的 IdP 的唯一标识符（通常是 URL 或 URN），来自你的 IdP 设置。              |
| **客户端密钥**   | 由你的 IdP 签发的客户端密钥。                                      |
| **组织标识符**   | 一个唯一标识符 *由你* 选择。你的用户会在 Dispel 登录界面输入它。仅限字母、数字、连字符和下划线。 |

在 IdP 端，将 Dispel 注册为一个应用，并将其 **重定向 URI** 设置为你的 Dispel 地址，后接 `/oauth/login-callback` （例如， `https://app.dispel.com/oauth/login-callback`）。如果你不确定你环境中的准确地址，请向你的 Dispel  წარმომადგენী?

#### SAML

Dispel 会在 SAML 表单顶部显示两个只读值——请将它们粘贴到你的 IdP 的 SAML 应用中：

| Dispel 提供          | 在你的 IdP 中粘贴为                 |
| ------------------ | ---------------------------- |
| **服务提供商（SP）实体 ID** | SP 实体 ID / 受众。               |
| **断言消费者服务 URL**    | ACS URL / 回复 URL / 单点登录 URL。 |

使用 **复制 ID** 和 **复制 URL** 按钮。然后在 Dispel 中填写以下内容：

| 字段              | 填写内容                                                   |
| --------------- | ------------------------------------------------------ |
| **SSO URL**     | SAML 断言发送到的 URL——可在你的 IdP 设置中找到。                       |
| **身份提供商实体 ID**  | 你的 IdP 的唯一标识符（通常是 URL 或 URN）。                          |
| **Base64 签名证书** | 你的 IdP 用于签署 SAML 断言的证书。将其粘贴到此处，或使用 **上传证书** （最大 1 MB）。 |
| **组织标识符**       | 一个唯一标识符 *由你* 选择。你的用户会在 Dispel 登录界面输入它。                 |

#### LDAP(S)

与 SSO 流程不同，LDAP 不是基于重定向的握手——Dispel 会直接连接到你的目录并对用户进行身份验证。无需将任何内容粘贴回另一个系统；所有配置都在 Dispel 中完成。下面的值来自你的 Active Directory 管理员。

你需要在 Dispel 中填写以下内容：

| 字段                     | 填写内容                                                                            |
| ---------------------- | ------------------------------------------------------------------------------- |
| **登录标识符**              | 一个唯一标识符 *由你* 选择。你的用户会在 Dispel 登录界面输入它。                                          |
| **Active Directory 域** | 你的 AD DNS 域——例如 `corp.example.com`.                                             |
| **域控制器**               | Dispel 通过 LDAPS（端口 636）连接的域控制器主机名——例如 `dc01.corp.example.com`.                  |
| **证书信任 + CA 证书**       | Dispel 如何验证 TLS 连接，以及（推荐）签发你的域控制器证书的 CA 证书。来自你的 PKI 或 AD 管理员；格式为 PEM、CRT 或 CER。 |
| **Bind DN 或 UPN**      | Dispel 作为其进行身份验证的只读服务账号——例如 `svc-dispel@corp.example.com`.                      |
| **Bind 密码**            | 该服务账号的密码。                                                                       |
| **用户搜索基准**             | 用于搜索用户的目录位置（OU）——例如 `OU=Users,DC=corp,DC=example,DC=com`.                       |
| **组搜索基准**              | 用于搜索组的目录位置（OU）。                                                                 |
| **登录属性**               | 用户作为用户名输入的属性——通常是 `sAMAccountName`.                                             |

## 设置提供商

IdP 端的具体步骤因提供商而异——请查看各提供商页面了解详情。整体流程如下：

1. 前往 **设置 → 集成** 并点击 **连接** 该提供商卡片上的
2. **选择身份验证协议** —— OAuth 或 SAML。
3. *（仅限 SAML）* 复制 Dispel 的 **SP 实体 ID** 和 **ACS URL** 到你的 IdP 的 SAML 应用中。
4. 使用来自你的 IdP 的值填写连接字段，并选择一个 **组织标识符**.
5. 点击 **保存设置**.
6. *（仅限 SAML）* 点击 **测试连接**。Dispel 会将你重定向到 IdP 进行登录，然后显示其接收到的用户属性（电子邮件、名字、姓氏）。如果测试失败，请检查这些详细信息是否与你 IdP 的 SAML 应用一致，并确认测试用户已存在于你的 IdP 中且已被邀请加入此组织。

> 在连接 Active Directory？AD 使用 LDAP(S) 并遵循不同的流程——Dispel 会直接连接到你的目录，而不是通过 SSO 握手进行重定向，而且不需要选择协议。请参阅 [Active Directory 设置指南](/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers/active-directory.md) 查看完整步骤。

{% hint style="info" %}
**密钥会被隐藏。** 保存后，密钥字段（客户端密钥、证书）会被隐藏。之后编辑时，若某个隐藏字段保持不变，则会保留已存储的值。
{% endhint %}

## 用户如何登录

配置好 SSO 后，用户将使用你的 IdP 登录，而不是使用 Dispel 密码：

1. 在 Dispel 登录界面，用户输入你的 **组织标识符**.
2. Dispel 会将他们重定向到你的 IdP 进行身份验证。
3. 验证成功后，他们会返回 Dispel 并登录。

Dispel 会读取用户的 **电子邮件**, **名字**，以及 **姓氏** ，这些信息来自 IdP 响应。

{% hint style="info" %}
**用户必须先被邀请。** SSO 会验证用户身份，但不会自动授予访问权限。用户必须已先被邀请加入你的 Dispel 组织，才能通过 SSO 登录。请参阅 [邀请用户加入 Dispel](/documentation/documentation-zh/guan-li-yong-hu-he-fang-wen/users/invite-a-user.md).
{% endhint %}

## 组映射

你可以根据 IdP 发送的组或声明，自动将 SSO 用户分配到 Dispel 组。组成员关系会在每次登录时重新评估，因此访问权限会始终与 IdP 保持一致。请参阅 [OIDC 组映射](/documentation/documentation-zh/ji-cheng-yu-guan-li/integrations/oidc-group-mapping.md).

## SSO 和多因素身份验证

在使用 SSO 时，身份验证由你的 IdP 负责——包括你在其中强制执行的任何 MFA。因此，通过 SSO 登录的用户不会应用 Dispel 的电子邮件一次性验证码。在制定 [策略构建器](/documentation/documentation-zh/bao-hu-yu-zhi-li/policy-builder.md).

## 切换或断开提供商

要更改提供商，或在 OAuth 和 SAML 之间切换某个提供商， **先断开** 当前集成，然后再连接新的集成。

{% hint style="warning" %}
**断开连接会强制重置密码。** 移除 SSO 集成意味着受影响的用户将无法再通过 IdP 登录——他们需要重置自己的 Dispel 密码才能再次登录，并且你需要重新输入所有字段才能重新连接。
{% endhint %}

## 常见问题

<details>

<summary>我可以同时使用多个身份提供商吗？</summary>

不可以。一个组织在同一时间只能启用一个 IdP。如果你已经连接到某个提供商，其他提供商将不可用，直到你断开连接——你会看到提示说明你当前已连接到另一个提供商，必须先断开它。

</details>

<details>

<summary>同一个提供商可以同时使用 OAuth 和 SAML 吗？</summary>

不可以。每个身份提供商同一时间只支持一种身份验证协议。要切换协议，请先断开连接，然后使用另一种协议重新连接。

</details>

<details>

<summary>什么是组织标识符？</summary>

这是你选择的一个简短且唯一的标签（字母、数字、连字符和下划线）。你的用户会在 Dispel 登录界面输入它，这样 Dispel 就知道应将他们发送到哪个 IdP。

</details>

<details>

<summary>用户首次通过 SSO 登录时会自动获得账户吗？</summary>

只有在他们已经被邀请加入你的组织时才会。SSO 只能证明用户是谁，但他们必须在 Dispel 中有邀请才能获得访问权限。

</details>

<details>

<summary>谁可以配置 SSO？</summary>

组织管理员。配置或断开身份提供商需要组织编辑权限。

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dispel.com/documentation/documentation-zh/bao-hu-yu-zhi-li/identity-providers.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
