本文介绍如何将无影云应用集成到第三方的Web服务中,让第三方可以基于无影云应用快速构建自己的终端计算产品,并提供给第三方的用户使用。
1. 背景信息
关于无影云应用产品的介绍,请参见什么是无影云应用。本文的目标读者是希望将无影云应用集成到自己Web服务的第三方开发者。
2. 准备工作
准备开发资源。
您需要有自己的Web前端和服务端。
本方案不支持无Web服务器的纯H5集成。
准备账号与权限。
如果您还未注册阿里云账号,请先注册。具体操作,请参见注册阿里云账号。
(条件)如果您使用RAM用户,请先使用阿里云账号为RAM用户授予无影云应用控制台访问权限。具体操作,请参见为RAM用户授予无影云应用控制台访问权限。
准备SDK与API的相关信息。
了解阿里云SDK。
集成过程中需要调用云应用的相关OpenAPI,此时需要使用到阿里云SDK,建议您提前熟悉使用方法。详细信息,请参见阿里云SDK。
获取AccessKey。
AccessKey包括AccessKey ID和AccessKey Secret。
AccessKey ID:用于标识用户。
AccessKey Secret:用于验证用户的密钥。AccessKey Secret必须保密。
阿里云账号的AccessKey泄露会威胁该账号下所有资源的安全。为保证账号安全,强烈建议您给RAM用户创建AccessKey,不要给阿里云账号创建AccessKey。
具体操作,请参见创建AccessKey。
获取SDK相关信息。
访问阿里云OpenAPI门户,并获取无影云应用SDK的相关信息。
登录阿里云OpenAPI门户。
获取SDK安装信息。
在顶部的产品下拉列表中选择无影云应用。
在左侧导航栏中选择
。选择正确的API版本。
不同的API可能属于不同的版本,每个API版本都有自己的依赖包,请确保引入了所使用API的所有依赖包。
获取API相关信息。
无影云应用的所有OpenAPI均已配备完整的文档。详细信息,请参见API参考。
在API文档页面上单击调试,即可进入该API的调试页面。
若尚未登录阿里云OpenAPI开放平台,请按照页面提示登录。
在API调试页面上,可以在左上角的版本下拉列表中看到当前API所属的版本。单击获取SDK可以获取相应版本的依赖信息。
3. 工作原理
关键时序如下图所示。
术语解释:
AuthCode:授权码,由第三方服务端请求无影管控服务颁发,作为打开应用时的身份凭证。授权码只能被使用一次,多次打开应用时,需要重复获取。
无影Web SDK:也称为无影Web Client SDK,是用于连接云电脑、云应用的JS开发工具包。
StsToken:无影内部使用的便捷账号的受限身份凭证,第三方无需关心。
连接Ticket:无影端侧SDK与流网关建立连接的凭据,第三方无需关心。
上述时序整体可以分为四个部分:
获取授权码以及待打开的应用信息,这一步由第三方服务端完成。
第三方服务端将授权码以及待打开的应用信息返回给自己的Web前端(浏览器)。
第三方Web前端将授权码以及待打开的应用信息传递给无影Web SDK:从CDN或者自己的Web Server拉取无影Web SDK资源文件,调用JS API传递参数
无影Web SDK拉起云应用,包含授权码的校验与连接Ticket的获取,这一步属于内部行为,第三方无需关心。
4. 通用流程
整体接入流程如下图所示。
4.1 登录控制台
登录您的阿里云账号。
登录无影云应用控制台。
4.2 准备应用资源
4.3 开发接入
服务端接入
第三方服务端通过调用无影管控服务开放的OpenAPI来完成授权码获取,应用信息查询,应用资源回收等操作。
获取应用信息。主要包括AppId。
确定应用打开模式。
授权模式:创建一个便捷账号,并将交付组授权给便捷账号。
免授权模式:使用免授权参数
SkipUserAuthCheck
对相应的交付组进行免授权配置。
开发接口。
在第三方自己的服务中开发一个打开应用的接口,例如
OpenCloudApp
,并在该接口中调用阿里云OpenAPI:GetAuthCode - 获取授权码,然后将AuthCode
、AppId
、AppVersion
信息返回给客户端。如果同一个应用发布了多个交付组,其中交付组A已授权给便捷账号a,而其他交付组均已配置为免授权,则当用户使用便捷账号a打开该应用时,只会被分配到交付组A,而不会被分配到其他免授权交付组,因为免授权交付组均已失去被调度的机会。
客户端接入
第三方客户端通过集成无影Web SDK,实现拉起云应用,进行端云数据通信等功能。具体操作,请参见无影Web SDK使用文档。
在前端工程中引入无影Web SDK资源文件。
定义一个方法,在该方法中调用服务端的
OpenCloudApp
接口,并使用服务端返回的AuthCode
、AppId
、AppVersion
参数来初始化无影Web SDK,初始化完成后建立云应用连接。定义一个按钮,使用该按钮触发上述方法。
顺利完成上述步骤后,将可以看到云应用画面。
5. 功能开发示例
5.1 打开应用
服务端接入
获取应用信息。
OpenAPI控制台调用OpenAPI:ListAppInstanceGroup - 查询多个交付组详细信息。该API会返回交付组详细信息,包括交付组所包含的应用信息。
第三方可以直接向最终用户透出无影的应用信息,或者自身的应用信息。若为后者,则第三方需要维护自身应用与无影应用之间的映射关系,在最终用户打开应用时,将正确的无影应用信息传递给无影Web SDK。
在控制台查询已发布交付组中的应用信息,主要包括AppId。
确定应用打开模式。
授权模式免授权模式如果需要实现仅允许指定用户访问应用的效果,请使用授权模式。请创建一个便捷账号,并将交付组授权给便捷账号。
OpenAPI控制台调用OpenAPI:
如果希望用户在未获得交付组授权的情况下也能打开交付组中的应用,需要对相应的交付组进行免授权配置。
配置免授权后,当前阿里云账号下的任意便捷账号都可以打开该交付组下的应用,请注意数据安全。
当前只支持使用API进行配置,有两种配置方法可选:
可以直接通过阿里云开放平台在线运行API来完成配置。
创建交付组时配置免授权参数
SkipUserAuthCheck
。详细信息,请参见CreateAppInstanceGroup - 创建交付组。创建交付组之后,通过修改交付组API配置免授权参数
SkipUserAuthCheck
。详细信息,请参见ModifyAppInstanceGroupAttribute - 修改交付组通用策略。
获取授权码。
调用OpenAPI:GetAuthCode - 获取授权码。
客户端接入
使用服务端返回的应用信息和身份信息来初始化无影Web SDK。
Wuying.WebSDK.createSession(sid, sessionParam);
下表中的参数均区分大小写。
参数名
类型
是否必填
备注
参数名
类型
是否必填
备注
身份凭证信息
AuthCode
String
是
授权码
应用信息
AppId
String
是
应用ID
AppVersion
String
否
应用版本。当不指定应用版本时,会随机选择一个版本打开。
打开云应用。
session.start();
5.2 回收应用资源
无影云应用控制台提供的会话闲时回收策略(会话断连保留时长)可以保证及时释放使用完毕的资源。同时无影云应用也提供了主动解绑用户与会话的API,该API可以解除用户与会话的绑定(分配)关系,并释放会话资源,让第三方可以更加灵活地控制资源生命周期。
“解除用户会话绑定”的含义与“断开应用连接”不同,不建议在断开连接场景下使用该功能。
服务端接入
调用OpenAPI:Unbind - 解绑用户和会话。
5.3 服务端绑定
服务端绑定是指第三方服务端通过调用无影OpenAPI提前分配应用实例并启动云上应用。
服务端接入
第三方服务端通过调用无影管控服务开放的OpenAPI来完成授权码获取,应用信息查询,应用资源回收等操作。
获取应用信息。
OpenAPI控制台调用OpenAPI:ListAppInstanceGroup - 查询多个交付组详细信息。该API会返回交付组详细信息,包括交付组所包含的应用信息。
第三方可以直接向最终用户透出无影的应用信息,或者自身的应用信息。若为后者,则第三方需要维护自身应用与无影应用之间的映射关系,在最终用户打开应用时,将正确的无影应用信息传递给无影Web SDK。
在控制台查询已发布交付组中的应用信息,主要包括AppId。
确定应用打开模式。
授权模式免授权模式如果需要实现仅允许指定用户访问应用的效果,请使用授权模式。请创建一个便捷账号,并将交付组授权给便捷账号。
OpenAPI控制台调用OpenAPI:
如果希望用户在未获得交付组授权的情况下也能打开交付组中的应用,需要对相应的交付组进行免授权配置。
配置免授权后,当前阿里云账号下的任意便捷账号都可以打开该交付组下的应用,请注意数据安全。
当前只支持使用API进行配置,有两种配置方法可选:
可以直接通过阿里云开放平台在线运行API来完成配置。
创建交付组时配置免授权参数
SkipUserAuthCheck
。详细信息,请参见CreateAppInstanceGroup - 创建交付组。创建交付组之后,通过修改交付组API配置免授权参数
SkipUserAuthCheck
。详细信息,请参见ModifyAppInstanceGroupAttribute - 修改交付组通用策略。
获取授权码。
调用OpenAPI:GetAuthCode - 获取授权码。
启动应用。
调用OpenAPI:GetConnectionTicket - 获取云应用连接凭证。
本场景下只需要调用一次该API。
客户端接入
使用服务端返回的信息来初始化无影Web SDK。
Wuying.WebSDK.createSession(sid, sessionParam);
下表中的参数均区分大小写。
参数名
类型
是否必填
备注
参数名
类型
是否必填
备注
身份凭证信息
AuthCode
String
是
授权码
应用信息
AppId
String
是
应用ID
启动任务信息
TaskId
String
是
启动任务ID
BizRegionId
String
是
启动任务地域
打开云应用。
session.start();
- 本页导读 (0)
- 1. 背景信息
- 2. 准备工作
- 3. 工作原理
- 4. 通用流程
- 4.1 登录控制台
- 4.2 准备应用资源
- 4.3 开发接入
- 5. 功能开发示例
- 5.1 打开应用
- 5.2 回收应用资源
- 5.3 服务端绑定