创建和管理 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 页面上的 管理控制台 管理。
OAuth 客户端使您能够将客户端应用程序与 Qlik Cloud 集成。
执行以下操作:
在 管理控制台 中,转到 OAuth。
单击新建。
选择客户端类型。
机密客户端使用 Web,公共客户端使用单页应用程序或本机。
使用Web,您可以选择允许机器对机器 (M2M) 选项进行系统访问,而无需用户交互。
在对话框中,为 OAuth 客户端命名。
可选择添加描述。
输入 OAuth 客户端应用程序的重定向 URL。只有当用户的 URL 在允许的重定向 URL 列表中时,Qlik Cloud 才会在成功授权后将用户重定向回应用程序。URL 必须以 https:// 开头,除非域为 localhost,在该情况下,其可以 http:// 开头。本机应用程序还可以使用特定于应用程序的链接格式,exampleapp://。
单击添加将重定向 URL 添加至许可名单。
信息注释您可添加不止一个 URL。仅限单页应用程序:添加一个或多个允许的原点。只有当 URL 在允许的来源列表中时,才会授予对应用程序的访问权限。
单击创建。
单击复制到剪贴板保存客户端 ID 和客户端密码,以供以后使用。将客户端秘钥存储在安全位置。单击完成。
信息注释公共客户端将没有任何客户端机密。
编辑 OAuth 客户端
您可以重命名 OAuth 客户端、更新描述或管理重定向 URL。
执行以下操作:
- 在 管理控制台 中,转到 OAuth。
- 选择要编辑的 OAuth 客户端。单击 ... 然后选择编辑。
- 在对话框中,根据需要更改 OAuth 客户端选项。
- 单击保存。
发布 OAuth 客户端
创建的 OAuth 客户端会自动绑定到创建它的租户。您可以将 OAuth 客户端配置为共享,并可供区域内的所有其他租户使用。然后,连接到 Qlik Cloud 的第三方应用程序可以为所有 Qlik Cloud 租户提供相同的客户端 ID。应用程序所有者可以轮换秘钥并更新配置,而无需租户管理员的交互。租户管理员不需要管理凭据或了解任何配置详细信息。
要允许其他租户连接到 OAuth 客户端,需要发布它。
执行以下操作:
- 在 管理控制台 中,转到 OAuth。
- 选择要发布的 OAuth 客户端。单击 ...,然后选择发布。
- 单击发布。
当用户导航到使用 Qlik OAuth 的外部网站时,系统会提示他们输入租户主机名,随后还会提示他们输入用户凭据,除非用户已经有活动的 SaaS 会话。首次使用外部 OAuth 客户端登录需要获得租户管理员的同意。批准后,新的 OAuth 客户端将显示在 管理控制台 中。
同意方法
您有两种同意选择:需要和可信任。如果需要,使用 OAuth 客户端的授权将在每次为用户请求新范围时提示同意。对于可信任的情况,不会提示用户。您只能对未发布的客户端使用可信任。对于已发布的客户端,始终需要同意方法。
查看和复制 OAuth 配置
在 管理控制台 的 OAuth 部分中,选择查看 OAuth 配置以将配置显示为代码段和要复制的 URL。
删除 OAuth 客户端
您可以在不再需要 OAuth 客户端时删除该客户端,或者撤销访问权限。
执行以下操作:
在 管理控制台 中,转到 OAuth。
选择要删除的 OAuth 客户端,然后单击删除。
信息注释一次可以删除多个 OAuth 客户端。- 确认您要删除 OAuth 客户端。
管理客户端秘钥
您可能需要添加或删除客户端秘钥,例如,如果客户端秘钥被泄露,或者您的安全策略要求您定期更新客户端秘钥。您还可以添加多个客户端机密以防止应用程序停机。例如,您可以创建第二个秘钥,在客户端应用程序中部署新秘钥,然后删除旧秘钥。
执行以下操作:
- 在 管理控制台 中,转到 OAuth。
- 选择要管理的 OAuth 客户端。单击 ... 然后选择消息秘钥。
- 在对话框中,执行以下操作之一:
- 要添加新的客户端秘钥,请单击生成新的客户端秘钥。
- 要删除客户端密码,请单击客户端密码旁边的
。
- 单击关闭。
构建 OAuth 客户端应用程序以访问 Qlik Cloud
在向 Qlik Cloud 注册了 OAuth 客户端之后,可以在自己的 OAuth 客户端应用程序中使用关联的客户端 ID 和客户端秘钥。开发者门户的 OAuth 部分提供了教程,用于使用一些最流行的编码语言构建客户端应用程序。