# 用于与身份提供者集成的 SAML

Security Assertion Markup Language (SAML) 是一种用于身份验证和授权的基于 XML 的开放标准。SAML 的一个关键好处是，它支持单点登录 (SSO)，从而最大限度地减少用户登录云应用程序和网站的次数。

身份验证过程涉及三个实体：

* 用户启动对应用程序或服务的访问。

* 身份提供者 (IdP) 是用于用户身份验证的可信系统，例如 Microsoft Entra ID 或 Okta。

* 身份提供者 (IdP) 是用户想要登录的应用程序或服务，例如 Qlik Cloud。

身份提供者对用户进行身份验证，并向服务提供者断言用户的身份。这是通过交换被称为 SAML 断言的数字签名 XML 文档来实现的。这些断言包含有关用户、其身份验证状态以及潜在的附加属性的信息。然后，服务提供者可以允许用户访问他们的服务。在身份提供者处启用 SSO 后，用户可以访问多个服务提供者站点和应用程序，而无需在每个站点登录。

Qlik Cloud Government 注释Qlik Cloud 政府 中不支持基于 SAML 的 IDP。

## SP 启动和 IdP 启动的 SSO

SAML 支持由服务提供者 (SP) 或身份提供者 (IdP) 发起的登录流。

使用 SP 启动的 SSO，用户从服务提供者站点开始，但不是在站点登录，而是使用身份提供者启动 SSO 身份验证。例如，当用户登录服务提供者 Qlik Cloud 时，登录将转移到身份提供者，身份提供者负责处理实际的 SSO 身份验证。

使用 IdP 启动的 SSO，用户直接登录身份提供者并选择应用程序，该应用程序启动对服务提供者的 SSO 身份验证。

## 断言

断言是基于 XML 的语句，包含标准格式的身份验证和授权信息。它们由身份提供者生成，并由服务提供者验证。

在与身份提供者集成时，您可能需要将应用程序配置为安全地交换 SAML 断言。这涉及到建立信任关系、端点 URL 和证书交换。

## 声明

声明是由身份提供者断言并在身份验证过程中发送给服务提供者的关于用户的信息。SAML 定义了一组标准声明，包括名称和电子邮件等用户属性。您可以根据应用程序的要求修改声明映射。

## 元数据

身份提供者 (IdP) 和服务提供者 (SP) 之间的元数据交换对于建立信任关系和确保 SAML 协议的正确运行至关重要。

### IdP 元数据

服务提供者安装程序需要有关身份提供者的元数据。在 Qlik Cloud 中，您可以通过 Administration 活动中心将此信息作为 IdP 元数据文件上传。

身份提供者元数据包括以下详细信息：

* 身份提供者的身份 ID。

* 单点登录 (SSO) URL。这是服务提供者在其中向身份提供者发送 SAML 身份验证请求的端点。它是用户重定向到的 URL，用于进行身份验证。

* 身份提供者用于对其发送给服务提供者的 SAML 断言进行签名的签名证书。

### SP 元数据

要在身份提供者端设置配置，您需要服务提供者元数据。您可以从 Administration 活动中心中的 Qlik Cloud 获取此信息。

服务提供者元数据包括以下详细信息：

* 服务提供者的实体 ID。

* Assertion Consumer Service (ACS) URL。这是身份提供者在身份验证后发送 SAML 断言的位置。

* 服务提供者用于对发送给身份提供者的身份验证请求进行签名的签名证书。

相关学习内容：

* [Wikipedia：安全断言标记语言](http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language)
* [Oasis SAML wiki：SAML v2.0 Standard](https://wiki.oasis-open.org/security/FrontPage)

## 了解详情

* [Wikipedia：安全断言标记语言](http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language)
* [Oasis SAML wiki：SAML v2.0 Standard](https://wiki.oasis-open.org/security/FrontPage)