# 概述

# 说明

若企业已具备对外开放的单点登录能力,可在乐享管理后台 (opens new window)配置单点登录方式,为企业成员提供无感登录。

乐享基于OAuth授权码模式设计来提供SSO接入,企业只需实现SP发起SSO流程即可实现无感登录效果,仅需开发授权页面获取用户信息接口。若企业平台用户有切换身份需求可再接入IdP发起SSO流程

关键概念

SP: Service Provider,服务提供者,即乐享平台

IdP: Identity Provider,身份提供者,即企业内部平台/OA系统等

授权页面: 由企业提供,企业平台需要根据企业用户登录态生成用户授权码并传递给乐享。具体参考提供授权页面

授权码: 可通过获取用户信息接口换取用户ID的随机字符串,开发者应确保该字符串是加密且只能消费一次

获取用户信息接口: 由企业提供,用于将授权码换取用户ID。具体参考提供获取用户信息接口

# SP发起SSO流程

场景:用户直接打开乐享链接,若无乐享登录态,即发起SSO流程,跳转到企业授权页面进行授权登录

流程说明

  1. 用户访问任意乐享链接如https://lexiangla.com?company_from=xxx(xxx是乐享租户唯一标识号)

  2. 乐享平台将重定向到指定授权页面并且url会带上redirect_uri={REDIRECT_URI}&state={STATE}两个参数,用于第3步从企业平台重定向回到乐享

  3. 用户打开企业的授权页面且同意授权后,企业平台重定向到https://lexiangla.com/suites/auth-callback?code={CODE}&state={STATE},其中CODE由企业平台生成,STATE是第2步由乐享重定向到授权页面时提供的,原样返回即可

  4. 到乐享平台后,乐享后台会根据url上的CODE参数去请求企业平台的获取用户信息接口。获取到用户ID后,确认该ID是通讯录中的在职成员,即颁发用户乐享登录态,进入乐享

# IdP发起SSO流程

场景:用户从企业平台携带用户身份凭证跳转至乐享

例如一个教育平台允许用户切换教师和家长身份登录,要求用户从平台点击乐享链接进入乐享也能切换为对应角色

流程说明

  1. 用户从企业平台上点击任意乐享链接如https://lexiangla.com?company_from=xxx&sso_auth_code={CODE}(xxx是乐享租户唯一标识号,CODE由企业生成,用户获取登录成员信息)
  2. 乐享会判断当前请求的HTTP Referer域名是否已配置,若已配置则进入步骤3;若未配置则认为当前请求非可靠的IdP发起SSO流程,无视sso_auth_code参数重新进入SP发起SSO流程
  3. 乐享后台会使用sso_auth_code参数去请求企业平台的获取用户信息接口。获取到用户ID后,确认该ID是通讯录中的在职成员,即颁发用户乐享登录态,进入乐享