# 安全断言标记语言 (SAML) 单点登录 (SSO)

安全断言标记语言 (SAML) 是基于 XML 的开放标准数据格式，用于在双方之间（例如身份提供商和服务提供商之间）交流身份验证和授权数据。SAML 通常用于 Web 浏览器 单点登录 (SSO)。

## SAML 的工作方式

将通过身份提供商 (IdP) 进行身份验证。在身份提供商断定用户的身份之后，服务提供商 (SP) 可向用户提供对于其服务的访问权限。由于身份提供商启用了 SSO，用户可访问数个服务提供商站点和应用程序，而无需登录每个站点。

SAML 规范定义了三个角色：

* 当事人：通常是用户
* IdP：身份提供商
* SP：服务提供商

当事人从 SP 请求服务，由此从 IdP 请求并获得身份断定。根据断定，SP 决定是否执行当事人请求的服务。

## Qlik NPrinting 中的 SAML

Qlik NPrinting 支持 SAML V2.0，实现方式为：

* 实施可与外部身份提供商集成的所提供服务
* 支持 HTTP Redirect Binding 和 HTTP POST Binding，用于 SAML 响应
* 支持 SAML 属性，用于资源和数据的访问权限控制

### 限制

* Qlik NPrinting 不签署 SAML 身份验证请求。这意味着不支持要求签署 SAML 身份验证请求的身份提供商。
* 不支持 SAML 响应加密，因此 Qlik NPrinting 不会读取加密的消息或属性。
* 不支持 SAML 单点注销。

信息注释

您必须启用 Windows 身份验证方可在 QlikView Web 服务器和 Qlik Sense 上使用 Qlik NPrinting On-Demand 插件。

如果您只想使用 JWT 身份验证，则必须在 Microsoft IIS Web Sever 上配置的 QlikView Server 上安装 Qlik NPrinting On-Demand 插件。

[在 Microsoft IIS 托管的 QlikView AccessPoint 上安装 On-Demand 插件](https://help.qlik.com/zh-CN/nprinting/February2025/Content/NPrinting/On-Demand/Install-Components.htm#Installing_the____Add-on_on_a__with_DMS_authentication) （仅提供英文版本）

### Qlik NPrinting web 控制台 和 NewsStand 配置

由于 Qlik NPrinting web 控制台 和 NewsStand 具有不同的 Web 地址，您必须设置两个不同的 SAML 连接来让二者有效。

### 身份提供商发起的 SSO

在身份提供商发起 SSO 的情况下，用户直接登录身份提供商，由身份提供商执行 SSO 身份验证。

如果身份验证流程从身份提供商开始，用户将被重定向至 Qlik NPrinting web 控制台 的 Qlik NPrinting 仪表板或 NewsStand 主页。

### 服务提供商发起的 SSO

在服务提供商发起 SSO 的情况下，用户在服务提供商站点开始。不用登录服务提供商站点，SSO 身份验证由身份提供商启动。在该身份验证流程中，Qlik NPrinting 扮演服务提供商的角色。根据您的 SAML 配置，Qlik NPrinting 登录页面为您的每个身份提供商显示一个按钮。如果您单击按钮，则会被重定向至身份提供商站点以进行身份验证。如果您已经登录，身份提供商将把您定向至 Qlik NPrinting 仪表板。

### 元数据

服务提供商 (Qlik NPrinting) 需要来自身份提供商的配置信息。该信息可作为身份提供商元数据文件使用，可被下载并发送给服务提供商以便于配置。身份提供商元数据上传自 Qlik NPrinting SAML 配置页面。

并非所有身份提供商都支持元数据文件的下载。如果不支持下载，则可手动创建元数据文件。

Qlik NPrinting 为身份提供商提供服务提供商元数据，该元数据下载自 SAML 配置列表页面。元数据包括以下信息：

* 断言使用者服务 (ACS) URL
* 实体 ID

Qlik NPrinting 需要使用身份提供商元数据中的以下信息：

* 证书
* 实体 ID
* HTTP-重定向位置

信息注释当读取证书以验证 SAML 响应签名时，Qlik NPrinting 将使用具有 "signing" 属性的第一个证书。如果提供的 IdP 元数据包含多个具有 "signing" 属性的证书，并且没有使用第一个来签署响应，则签名验证将会失败。在将未使用的证书上传至 Qlik NPrinting 之前，您必须从 IdP 元数据文件删除未使用的证书。