WebOS单点登录(SSO)

文汇百川WebOS平台支持简便、快捷、安全的单点登录功能。通过配置应用地址中的变量,用户点击应用后即可自动完成身份认证并跳转到目标系统,实现免登录访问第三方应用。

回调接口示例:https://{domain}.finalos.cn/interface/sso/user?token={userToken}

整体流程

1 用户建立带有单点参数的应用
2 用户点击应用后,系统经过一系列处理后,携带参数跳转到目标系统
3 目标系统拿到参数进行处理,如果配置的是 userToken 参数,需要回调平台获取用户的信息
4 目标系统通过回调用平台接口,获取用户的基本信息后,完成后续操作

配置应用

平台支持简便、快捷、安全的单点登录功能,方式如下:

  1. 在应用的【地址】中,配置一个变量 {userToken},比如:https://系统域名/sso?token={userToken}
  2. 当用户点击这个图标时,系统会自动完成变量替换并跳转,比如将上述地址替换为:https://系统域名/sso?token=1234567890
  3. 跳转目标系统在获取参数后只需要回调接口即可解析用户信息
  4. 这个 sso token 有效期为五分钟,且只能被消费一次

URL 中支持的参数

参数值解释用途
userTokensso校验令牌用于安全的单点登录
userId用户在平台中的ID一个用户的平台ID是唯一的,同一个用户加入多个空间,其id不变
userCode每个空间自定义的用户唯一标识符可以用作身份校验,和自建系统打通
userName每个空间自定义的用户名用于需要获取用户名的场景
_dc时间戳,值为1970年1月1日以来的毫秒数通过改变url可以让浏览器认为这是一个新的地址,进而避免缓存
配置说明:上述参数均可以通过以 {参数名} 的方式进行配置,比如:
https://系统域名/home?usertoken={userToken}&id={userId}&username={userName}&code={userCode}&time={_dc}
注意:只有旗舰版支持 userToken 参数。

建立应用

在系统桌面中,点击左下角【开始】按钮,展开开始菜单后选择【设置】,进入设置面板后再点击【应用】标签页,即可进入应用管理界面查看和编辑应用列表。

找到应用管理入口

在应用管理界面中,新建或者编辑应用,打开编辑表单。在【地址】字段中填入带有 SSO 变量的目标系统链接,例如:

URL https://系统域名/home?usertoken={userToken}&id={userId}&username={userName}&code={userCode}&time={_dc}

填写完成后点击【保存】,用户点击该应用图标时系统即会自动完成变量替换并跳转。

配置应用链接信息

回调查询

系统支持 GET、POST、路径传参三种方式。

GET /interface/sso/user?token={userToken} 通过 Query 参数查询

调用地址:当前系统的域名 /interface/sso/user?token={userToken}

POST /interface/sso/user 通过 Body 参数查询

调用地址:当前系统的域名 /interface/sso/user

Body 传参:

JSON { "token": "userToken" }
PATH /interface/sso/user/{userToken} 通过路径参数查询

调用地址:当前系统的域名 /interface/sso/user/{userToken}

返回结果

返回 JSON 数据,code 为数字 0 表示正确,其他数值表示错误。当 code0 时解析 data 节点对象即可。

正常响应示例

JSON { "code": 0, "msg": "success", "data": { "appId": "应用id,数字类型", "appCode": "应用编码", "appName": "应用名称", "userId": "用户ID,如M123456", "userCode": "用户编码", "userName": "用户名", "realName": "真实姓名", "nickname": "昵称", "osId": "系统编码,如S123456", "domain": "系统域名,接口调用的域名" } }

错误响应示例

JSON { "code": 100, "msg": "not found" }
提示:请调用当前系统的域名(自定义域名或者系统ID的域名均可)。上面的参数中,可以通过修改成员信息、应用信息进行调整。

单点登录历史

如果回调查询成功,会记录单点登录历史,可以在系统管理中的【单点】页面查看。