单点登录SSO

功能简介

轻流单点登录功能用于通过配置的方式将轻流的帐号体系提供标准OAuth2认证服务系统的帐号体系统一起来。

 

配置流程

整个配置流程已语雀为例,通过在轻流配置单点登录达到使用语雀的帐号体系登录轻流系统的效果.

  1. 打开语雀的帐号设置,点击左侧OAuth应用,创建一个新的应用

  1. 主页地址和回调地址按照如下图填写,应用名和简介可以填入自定义内容并点击创建

  1. 创建完毕后,页面会自动刷新,刷新后语雀会生成这个应用的Client ID和Client Secret,保存这两个值,用于在轻流系统中的配置
  2. 打开轻流系统,点击首页右上角的插件中心,选择[第三方链接],鼠标移动到[单点登录(SSO)],此时右侧会出现一个配置按钮,点击此按钮(插件中心只有工作区管理员配置)

  1. 将语雀中生成的clientID和clientSecret分别填入对应的输入框中

  1. 打开语雀的OAuth文档,对比文档配置接下来的步骤 https://www.yuque.com/yuque/developer/authorizing-oauth-apps
  2. 将语雀授权页链接填入[请求用户授权设置]的[接口地址]中,然后在轻流的[参数设置]部分填入对应的参数,

因为语雀中的临时授权码的参数名是”code”,所以在轻流的[第三方登录后跳转轻流地址设置]中,需要把$AUTH_CODE$的参数名设置为”code”

  1. 接下来是获取AccessToken配置部分,首先是根据语雀文档配置轻流中对应的接口地址,请求方法,参数内容编码,参数设置部分,此步骤中,参数”AuthCode”即为第一步中用于在语雀完成授权后重定向回轻流后携带的[临时授权码]

  1. 获取AccessToken配置中最后的返回内容解析部分的作用是使用JSONPATH解析通过语雀[临时授权码]从语雀获取到的[授权后的 token]等信息,用于后面[获取第三方UserId置]部分的请求.如上图中设置了一个名为[access_token]的解析,那么在接下来的[获取第三方UserId配置]部分就可以在请求参数中选择[access_token]作为对应字段的内容
  2. 接下来是[获取第三方UserId配置]的内容.首先打开语雀的API文档:Overview部分: https://www.yuque.com/yuque/developer/api 用户部分:https://www.yuque.com/yuque/developer/user, 根据Overview部分和用户部分的文档,可知在调用语雀获取用户信息接口的时候需要在header部分将第二步获取的[access_token]放在名为[X-Auth-Token]的字段中用于鉴权,所以[获取第三方UserId配置]的配置如下图:

通过如上图的请求可以获得如语雀文档中列出的格式的用户数据:

根据上图的用户数据格式,现在我们来配置最后的用户数据解析部分,当用户登录的语雀帐号未和轻流中的任一帐号绑定的时候,轻流会根据[获取第三方UserId配置]部分的[返回内容解析]部分生成一个新的帐号并把此帐号加入当前工作区,如下图,UserId为必填项,如果不设置userId,轻流将不会创建帐号,也不会绑定帐号,最终导致登录失败.

  1. 配置部分到此结束,保存后鼠标滚动到最上方的[登录链接]部分,复制登录链接并在一个新的浏览器标签页中打开

已登录语雀用户直接确认授权,未登录语雀用户需要在此页面输入语雀的帐号密码之后就可以使用语雀的帐号体系登录轻流系统了.

如果不想创建新的帐号,而是想把外部帐号和现有的轻流帐号绑定起来,可以在通许录成员信息编辑弹窗中将用户的[外部userId]设置为对应外部帐号的[userId],(此信息可以询问对接的系统服务提供商),那么下次使用该[外部userId]登录轻流时,就可以登录这个绑定后的轻流帐号了.

注意.请不要将不同的轻流帐号绑定同一个[外部用户id],否则每次将随机登录一个绑定此[外部用户id]的轻流帐号

注意: 如果工作区已达到人数上限,通过单点登录生成的新帐号将会被禁用并无法登录. 

       

相关文章