SSO 登录

概述

认证方式目前支持配置企业自有 SSO 认证页面。企业成员可以通过第三方企业代码登录,输入企业代码,进入对应的 SSO 认证页面,认证之后加入访问企业。

配置认证方式

配置页面样例

企业自有基于标准 oauth2 的 SSO 认证系统,可将 oauth2 三个接口配置到认证方式中,做第三方企业代码登录,如以下 demo,完整接口案例在文档底部。

将以上 demo,配置到管理后台的通讯录 API 同步里,按产品界面分阶段校验这三个接口;

img

配置成功后,会显示该配置相关的 APPID 和企业代码,之后可用该配置相关的 APPID 或企业代码做 SSO;

img

与第三方认证系统交互流程

方式一:应用集成了协作中台 SDK

当开发者需要将协作中台 SDK 集成到自研企业应用中时,企业应用往往本身存在登录态,此时协作中台 SDK 可基于 企业应用的用户授权完成 SSO。

用户的企业应用通过获取用户授权生成的授权码 Code 及其企业后台 SSO 设置生成的 app_id,并调用协作中台提供的激活用户&连接接口,完成 SSO 登录。

img

方式二:基于企业代码登录

img

配置认证信息的时候,需要配置企业代码,企业代码用于关联登录用户和预期要登录使用的企业。

企业成员在登录 WPS 的时候,可在登录页选择「更多-第三方企业登录」,输入管理员设置的企业代码,即可进入企业自有 SSO 认证页或者默认 SSO 登录页,输入企业统一认证帐号密码,即可完成登录。

WPS 与第三方 SSO 平台的交互时序图如下:

img

方式三:在 WEB 中基于 APPID 发起 SSO

用户基于已配置的认证方式,可用以下链接完成 SSO,可将以下链接作为应用首页,应用地址为:(其中 app_id 为配置 SSO 时生成的 APPID)

txt
https://open.wps.cn/oauth/v1/auth?app_id={:app_id}&cb=https%3A%2F%2Fkdocs.cn

其中,WPS 与第三方 SSO 平台的交互时序图如下:

img

认证 demo 案例

接口定义

类型请求
授权页面Request: GET /authorize?client_id=c1ebe466-1cdc-4bd3-ab69-77c3561b9dee&response_type=code&redirect_uri={:redirect_uri}&state={:state} HTTP/1.1
Host: http://demo.com/
Content-Type: application/x-www-form-urlencoded
Response: HTTP/1.1 302 Found
Location: https://open.wps.cn/oauth/v1/code?app_id=AK20211008GIMUUL&cb=xxx&code=xxx
授权码接口Request: GET /accessToken?client_id=c1ebe466-1cdc-4bd3-ab69-77c3561b9dee&client_secret=d8346ea2-6017-43ed-ad68-19c0f971738b&grant_type=authorization_code&code={:code} HTTP/1.1
Host: http://demo.com/
或者
POST /accessToken HTTP/1.1
Host: http://demo.com/
Content-Type: application/x-www-form-urlencodedclient_id=c1ebe466-1cdc-4bd3-ab69-77c3561b9dee&client_secret=d8346ea2-6017-43ed-ad68-19c0f971738b&grant_type=authorization_code&code={:code}
Response: HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
“access_token”:“2YotnFZFEjr1zCsicMWpAA”,
“token_type”:“example”,
“expires_in”:3600,
“refresh_token”:“tGzv3JOkF0XG5Qx2TlKWIA”,
“example_parameter”:“example_value”
}
授权令牌接口Request: GET /userInfo?access_token={:access_token} HTTP/1.1
Host: http://demo.com/
Response: HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
“user_name”:“张三”,
“union_id”:“ZhangSan”,
“avatar”:“http://demo.com/avatar/zhangsan”
}

demo 认证参数

参数含义
授权页面地址授权页面地址是第三方账号授权登录 WPS 时的第三方授权页面地址,可包含固定参数
重定向 URL 字段(示例:redirect_uri)第三方授权页面回调地址字段名
access_token 接口地址第三方服务获取 access_token 接口地址,可包含固定参数
access_token(示例:access_token)有时效的授权令牌凭证,WPS 用于调用第三方应用的授权接口
state 字段(示例:state)第三方授权页 state 参数字段名
授权码接口地址第三方服务获取 oauth code 接口地址,可包含固定参数
授权码字段(示例:oauth_code)临时的用户授权凭证,WPS 用于换取第三方应用的授权令牌
用户标识字段(示例:union_id)第三方应用的用户 id 字段,用户授权登录后,WPS 才会获取
用户昵称字段(示例:nickname)第三方应用的用户昵称字段,用户授权登录后,WPS 才会获取
用户头像字段(示例:avatar)第三方应用的用户头像字段,用户授权登录后,WPS 才会获取