单点登录功能允许为多租户管理平台的租户设置指向第三方系统的登录URL,坐席使用该第三方系统的账号登录后,可以直接进入客服云系统。
完成第三方平台登录页面的开发后,可以进入多租户管理后台“设置 > 单点登录”页面,设置登录URL、生成登录密钥,并开启单点登录功能。
下图为通过JWT的第三方单点登录(SSO)时序图。
开发一个登录页面,使用第三方自己的用户体系登录,比如:
http://young-dawn-82093.herokuapp.com/chenxing/sso
在第三方登录成功之后,使用约定好的jwt secret对email、name、state进行签名,生成的jwt有3分钟有效期。
email 必填 邮箱地址,当做环信用户名
name 必填 为昵称用于创建用户的时候使用
state 必填 为登录状态Online、Hidden
externalId 选填 如果第三方系统的邮箱不是用户名而是可以随时改变的一个资料信息,那么在这里填写真正登录使用的用户名
JWT_SECRET 必填 为多租户管理后台“设置 > 单点登录”页面的“登录密钥”
String jwt = JWT.create()
.withIssuedAt(new Date())
.withJWTId(UUID.randomUUID().toString())
.withClaim("email", email)
.withClaim("name", "昵称")
.withClaim("externalId", "如果第三方用户名不为email,这里填写用户名")
.withClaim("state", "Online")
.sign(Algorithm.HMAC256(JWT_SECRET));
生成好jwt之后,需要redirect回环信的地址:
http://lcx.kefu.easemob.com/v1/access/jwt?jwt={jwt}&returnTo={return_to}&type=org&tenantId=?
参数说明:
移动客服根据jwt进行验证之后,会自动进行登录,并且跳转到return_to的地址。