创建和管理 OAuth 客户端
OAuth 是用于授权和委派的标准安全协议。它允许第三方应用程序访问 API 资源,而无需披露最终用户凭据。OAuth 客户端可以获取授权代码,并将其与可用于通过 API 访问 Qlik Cloud 内容的访问令牌交换。
公开和保密客户
OAuth 有两种客户端类型,公共客户端和机密客户端,以确保应用程序(客户端)和授权服务器 (Qlik Cloud) 之间的授权安全。
公共客户端
公共客户端是不使用客户端机密的应用程序,因为它们无法维护所需凭据的机密性。Qlik Cloud 中的公共客户端通常是前端应用程序,如具有嵌入式分析功能的单页应用程序或需要有关最终用户的信息的 Qlik Sense 中的自定义可视化扩展,以支持应用程序生命周期。
请参阅 :RFC 6749 第 2.1 节:OAuth 2.0 客户端类型。
Qlik Cloud 支持传统 Web(服务器端)应用程序的机密客户端,以及使用特定授权类型的本机和单页应用程序的公共客户端。
机密客户端
机密客户端是一种应用程序,它以安全的方式维护客户端 ID 和客户端机密,而不会将其暴露给未经授权的各方。机密客户可以访问受保护的资源,因为他们拥有客户机密。机密客户端的一个示例是具有与 Qlik Cloud API 交互的安全后端的 Web应用程序,以协调数据刷新任务或管理用户对内容的访问。
授权授予类型
Qlik 支持两种授权授予类型或流:授权代码流和带有代码交换证明密钥 (PKCE) 的授权代码流。这些流非常相似,但它们支持不同的用例。
授权代码流
传统的 Web 应用程序是源代码未公开的服务器端应用程序,因此它们可以使用授权代码流,后者将授权代码交换为令牌。使用此流的 Web 应用程序必须是服务器端的,因为在交换令牌期间,应用程序的客户端机密会传递给授权服务器。
有关详细信息,请参阅授权代码流。
带有代码交换证明密钥的授权代码流 (PKCE)
本机和单页应用程序无法存储客户端机密,因为它们的源代码可以分别通过反编译应用程序或通过浏览器查看应用程序源代码来访问。PKCE 通过要求使用代码验证器来获取访问令牌,为公共客户端添加了一层额外的保护。
请参阅:有关详细信息,请参阅带有代码交换验证密钥 (PKCE) 的授权代码流。
限制 OAuth 客户端可用的范围
Oauth 范围提供了一种限制授予 Oauth 客户端应用程序的访问量的方法。例如,颁发给客户端应用程序的访问令牌可以被授予对受保护资源的完全访问权限,或者仅被授予读取访问权限。
在 Qlik Cloud 中,范围提供了一种控制客户端访问可用功能和资源的方法。每个范围都授予不同级别的访问权限。没有范围的客户端将无法访问任何资源。
创建 OAuth 客户端
OAuth 客户端由租户管理员从 OAuth 页面上的 Administration 活动中心管理。
OAuth 客户端使您能够将客户端应用程序与 Qlik Cloud 集成。
要了解如何创建用于部署和安装 Microsoft Excel 的 Qlik 加载项的 OAuth 客户端,请参阅为 Microsoft Excel 的 Qlik 加载项创建 OAuth 客户端。
执行以下操作:
-
在 Administration 活动中心中,转到 OAuth。
-
单击新建。
-
选择客户端类型。
机密客户端使用 Web,公共客户端使用单页应用程序或本机。
-
在对话框中,为 OAuth 客户端命名。
-
可选择添加描述。
-
通过滚动或使用搜索字段选择任何可用范围。
范围 权限 user_default 完全访问您的帐户和内容 admin_classic 对租户的完全管理员访问权限
另请参阅: 部署和管理 Qlik Cloud
信息注释不支持单页应用程序和本机客户端类型。admin.apps 读取和管理租户中的所有应用程序
另请参阅: 管理应用程序
admin.apps:export
导出租户中的所有应用程序
另请参阅: 导出应用程序
admin.apps:read
读取租户中的所有应用程序 admin.automations 读取和管理租户中的所有自动化
另请参阅: 管理自动化
admin.automations:read
读取租户中的所有自动化 admin.spaces 读取和管理租户中的所有空间
另请参阅: 管理空间
admin.spaces:read
读取租户中的所有空间 应用程序 阅读和管理您的应用程序
另请参阅: 管理应用程序
apps:export
导出您的应用程序
另请参阅: 导出应用程序
apps:read
阅读您的应用程序 自动化 阅读和管理您的自动化
另请参阅: 管理自动化
automations:read
读取您的自动化 automl-experiments 阅读并管理 ML 实验 automl-deployments 阅读并管理 ML 部署 identity.email:read 读取您的电子邮件地址
另请参阅: 身份提供者
identity.name:read
读取您的全名 identity.picture:read 读取您的个人资料图片
另请参阅: 身份提供者
identity.subject:read
读取用户主题标识符 spaces.data 阅读和管理您的数据空间
另请参阅: 管理空间
spaces.data:read
读取您的数据空间 spaces.managed 阅读并管理您的托管空间
另请参阅: 管理空间
spaces.managed:read
阅读您的托管空间 spaces.shared 阅读和管理您的共享空间
另请参阅: 管理空间
spaces.shared:read
阅读您的共享空间 offline_access 脱机时访问资源
信息注释不支持单页应用程序客户端类型。信息注释您可以使用列表上方的全部和选定按钮来显示所有范围或仅显示选定的范围。信息注释上面的列表反映了初始版本中支持的范围。可以在 Qlik 开发者门户网站上找到范围的完整列表,包括在初始发布后添加的任何范围。 -
为 OAuth 客户端应用程序输入一个或多个重定向URL。
提示注释重定向 URL 是授权服务器在成功验证并授予客户端应用程序权限后发送用户浏览器的位置。例如,https://www.exampleapp.com/oauth/callback,其中 /oauth/callback 处理来自 OAuth 提供者的身份验证回调。只有当用户的 URL 在允许的重定向 URL 列表中时,Qlik Cloud 才会在成功授权后将用户重定向回应用程序。URL 必须以 https:// 开头,除非域为 localhost,在该情况下,其可以 http:// 开头。本机应用程序还可以使用特定于应用程序的链接格式,exampleapp://。
单击添加将重定向 URL 添加至许可名单。
-
对于客户端类型的 Web 或单页应用程序,请指定一个或多个允许的来源。只有当 URL 被添加至允许的来源列表时,才会授予对应用程序的访问权限。
-
对于客户端类型的 Web,您可以启用允许机器到机器 (M2M) 或允许 M2M 用户模拟,以便在无需用户交互的情况下自动访问系统。M2M 模拟允许您的应用程序在身份验证期间代表用户进行操作。
-
单击创建。
-
单击复制到剪贴板保存客户端 ID 和客户端密码,以供以后使用。将客户端秘钥存储在安全位置。单击完成。
信息注释公共客户端将没有任何客户端机密。
为 Microsoft Excel 的 Qlik 加载项创建 OAuth 客户端
需要 OAuth 客户端配置才能安装 Microsoft Excel 的 Qlik 外接程序。报告开发人员使用该加载项来准备报告模板,这些模板控制 Qlik Sense 应用程序中表格报告的输出。
为了使 OAuth 在加载项中工作,需要使用下面所示的确切配置来配置 OAuth 客户端。
执行以下操作:
-
在 Administration 活动中心的 Qlik Cloud 中,转到 OAuth。
-
单击新建。
-
在客户端类型下拉菜单中,选择单页应用程序。将显示更多字段。
-
插入名称。描述是可选的。
-
至少,选中复选框以包括 user_default 范围。您可以在配置中包括其他作用域,但如果没有 user_default,安装将无法进行。
有关每个可用范围的完整描述,请参阅创建 OAuth 客户端。
-
在添加重定向 URL 字段中,插入租户的 URL,后跟固定字符串:/office-add-ins/oAuthLoginSuccess.html
结果应如下所示:https://YourServer/office-add-ins/oAuthLoginSuccess.html
-
单击添加。
-
在添加允许的来源字段中,插入租户 URL,然后单击添加。
-
单击创建。
-
此时会出现复制客户端 ID 窗口。您可以选择将客户端 ID 复制到剪贴板,或者单击完成关闭窗口。
创建 OAuth 客户端后,从 Administration 活动中心获取到更新的清单 XML 文件的链接。转到设置页面,然后导航到 Administration 活动中心r 中的共享和报告 > Excel 加载项。使用此链接可部署和安装加载项。
有关生成清单文件以及部署和安装加载项的更多信息,请参阅:
为应用程序内容的匿名嵌入创建 OAuth 客户端
要使用 qlik-embed 嵌入匿名访问的应用程序内容,您需要创建一个 OAuth 客户端,其类型专门为此用例设计。
执行以下操作:
-
在 Administration活动中心中,转到 OAuth 部分。
-
单击新建。
-
在客户端类型下拉菜单中,选择匿名已嵌入。
-
为 OAuth 客户端输入名称,并可选择输入描述。
-
在允许的来源下,输入您需要授权的每个来源。这些域将访问 Qlik Cloud 租户,为嵌入式分析检索信息。
插入每个 URL 后单击添加。
-
在完成时,单击创建。
-
单击复制到剪贴板保存客户端 ID 以供以后使用。当应用程序内容使用 qlik-embed 嵌入时,将需要它。
-
单击完成。
编辑 OAuth 客户端
您可以重命名 OAuth 客户端、更新描述或管理重定向 URL。
执行以下操作:
- 在 Administration 活动中心中,转到 OAuth。
- 选择要编辑的 OAuth 客户端。单击 ... 然后选择编辑。
- 在对话框中,根据需要更改 OAuth 客户端选项。
- 单击保存。
发布 OAuth 客户端
创建的 OAuth 客户端会自动绑定到创建它的租户。您可以将 OAuth 客户端配置为共享,并可供区域内的所有其他租户使用。然后,连接到 Qlik Cloud 的第三方应用程序可以为所有 Qlik Cloud 租户提供相同的客户端 ID。应用程序所有者可以轮换秘钥并更新配置,而无需租户管理员的交互。租户管理员不需要管理凭据或了解任何配置详细信息。
要允许其他租户连接到 OAuth 客户端,需要发布它。
执行以下操作:
- 在 Administration 活动中心中,转到 OAuth。
- 选择要发布的 OAuth 客户端。单击 ...,然后选择发布。
- 单击发布。
当用户导航到使用 Qlik OAuth 的外部网站时,系统会提示他们输入租户主机名,随后还会提示他们输入用户凭据,除非用户已经有活动的 SaaS 会话。首次使用外部 OAuth 客户端登录需要获得租户管理员的同意。批准后,新的 OAuth 客户端将显示在 Administration 活动中心中。
同意方法
您有两种同意选择:必需和可信任。如果需要,使用 OAuth 客户端的授权将在每次为用户请求新范围时提示同意。对于可信任的情况,不会提示用户。您只能对未发布的客户端使用可信任。对于已发布的客户端,始终需要同意方法。
查看和复制 OAuth 配置
在 Administration 活动中心的 OAuth 部分中,选择查看 OAuth 配置以将配置显示为代码段和要复制的 URL。
删除 OAuth 客户端
您可以在不再需要 OAuth 客户端时删除该客户端,或者撤销访问权限。
执行以下操作:
-
在 Administration 活动中心中,转到 OAuth。
-
选择要删除的 OAuth 客户端,然后单击删除。
信息注释一次可以删除多个 OAuth 客户端。 - 确认您要删除 OAuth 客户端。
管理客户端秘钥
您可能需要添加或删除客户端秘钥,例如,如果客户端秘钥被泄露,或者您的安全策略要求您定期更新客户端秘钥。您还可以添加多个客户端机密以防止应用程序停机。例如,您可以创建第二个秘钥,在客户端应用程序中部署新秘钥,然后删除旧秘钥。
执行以下操作:
- 在 Administration 活动中心中,转到 OAuth。
- 选择要管理的 OAuth 客户端。单击 ... 然后选择消息秘钥。
- 在对话框中,执行以下操作之一:
- 要添加新的客户端秘钥,请单击生成新的客户端秘钥。
- 要删除客户端密码,请单击客户端密码旁边的 。
- 单击关闭。
构建 OAuth 客户端应用程序以访问 Qlik Cloud
在向 Qlik Cloud 注册了 OAuth 客户端之后,可以在自己的 OAuth 客户端应用程序中使用关联的客户端 ID 和客户端秘钥。开发者门户的 OAuth 部分提供了教程,用于使用一些最流行的编码语言构建客户端应用程序。