# OpenID Connect 用于与身份提供商集成

OpenID Connect (OIDC) 将 Qlik Cloud 与身份提供者集成，在 OAuth 2.0 协议之上添加了一个用户身份验证层。这实现了安全的单点登录 (SSO)，允许用户一次登录即可访问多个应用程序和网站，而无需重复身份验证。

## OAuth 2.0 和 OIDC

OAuth 2.0 专为授权设计。它允许一个应用程序使用安全令牌授予另一个应用对其数据或功能的访问权限，而不是暴露用户凭据。此令牌提供有限的访问权限，确保您只共享您同意共享的信息。您可以在任何时间收回令牌。

OAuth 2.0 不包括用户身份信息。OpenID Connect (OIDC) 通过引入 ID 令牌来增强这一点，ID 令牌包含用户登录详细信息和个人资料信息。这些令牌允许不同的客户端（网页、移动、JavaScript 和其他客户端）根据授权服务器执行的身份验证来验证用户身份。客户端还可以请求有关用户的基本配置文件信息。

有关 OAuth 和 OIDC 的介绍，请观看视频：[OAuth 和 OpenID Connect 图解指南](https://www.youtube.com/watch?v=t18YB3xDfXI)。

## ID 令牌

OpenID Connect (OIDC) 中使用的 ID 令牌处理用户身份验证，并包括详细的用户信息，如身份和个人资料详细信息。这些令牌通常采用的格式为 JSON Web 令牌 (JWT)，支持各种签名和加密算法。

ID令牌包含声明，即关于用户的数据，如他们的 ID、姓名、登录时间和篡改指示。ID 令牌中的声明为应用程序提供了必要的详细信息，以验证用户的身份并促进单点登录 (SSO)。OIDC 规范定义了一组标准声明，包括姓名、电子邮件地址、性别和出生日期。可以根据需要添加自定义声明以包含其他用户信息。ID 令牌由授权服务器在用户身份验证成功后颁发，通过 OAuth 2.0 流获得，适用于 Web 和移动应用程序。

为保护敏感数据，如个人可识别信息 (PII)，您可使用加密的 ID 令牌。加密有助于防止未授权访问权限和确保隐私和安全。

## 访问令牌

访问权限在 OAuth 2.0 中用于授权。它们允许应用程序代表用户访问特定数据或功能。访问令牌可以格式化为 JSON Web 令牌 (JWT) 或非 JWT 令牌。它用作凭证来，将用户同意和授予的权限通知 API。与 ID 令牌不同，访问令牌不包括用户身份信息；它们只是授予对指定资源的访问权限。

## OpenID Connect 规范

OpenID Connect 1.0 规范由多个文档组成，定义了其核心功能和可选特性。Qlik 支持此规范，但可能不支持所有特定于供应商的实现。不过，Qlik 可以为主流的身份管理平台提供便利的配置。

规范中的密钥文档已包括：

* OpenID Connect Core：定义核心 OIDC 功能，包括基于 OAuth 2.0 的身份验证和使用声明共享用户信息。
* OpenID Connect Discovery（可选）：定义客户端如何动态发现有关 OpenID 提供者的信息
* OpenID Connect Dynamic Client Registration（可选）：定义客户端如何向 OpenID 提供者动态注册。
* OAuth 2.0 Multiple Response Types：定义特定的新 OAuth 2.0 响应类型。
* OAuth 2.0 Form Post Response Mode（可选）：定义如何使用通过 HTTP POST 自动提交的 HTML 表单值返回 OAuth 2.0 授权响应参数。
* OpenID Connect Session Management（可选）：定义如何管理 OIDC 会话，包括基于 postMessage 的注销和 RP 发起的注销功能
* OpenID Connect Front-Channel Logout（可选）：定义了一种在 RP 页面上不使用 OP iframe 的注销机制。
* OpenID Connect Back-Channel Logout（可选）：定义注销机制，该机制使用正在注销的 OP 和 RP 之间的直接反向通道通信。
* OpenID Connect Federation（可选）：定义 OP 和 RP 集如何通过使用联合运营商建立信任

要查看这些文档，请访问[欢迎使用 OpenID Connect](https://openid.net/connect/ "Welcome to OpenID Connect")。