SSO 登录
概述
认证方式目前支持配置企业自有 SSO 认证页面。企业成员可以通过第三方企业代码登录,输入企业代码,进入对应的 SSO 认证页面,认证之后加入访问企业。
配置认证方式
配置页面样例
企业自有基于标准 oauth2 的 SSO 认证系统,可将 oauth2 三个接口配置到认证方式中,做第三方企业代码登录,如以下 demo,完整接口案例在文档底部。
将以上 demo,配置到管理后台的通讯录 API 同步里,按产品界面分阶段校验这三个接口;
配置成功后,会显示该配置相关的 APPID 和企业代码,之后可用该配置相关的 APPID 或企业代码做 SSO;
与第三方认证系统交互流程
方式一:应用集成了协作中台 SDK
当开发者需要将协作中台 SDK 集成到自研企业应用中时,企业应用往往本身存在登录态,此时协作中台 SDK 可基于 企业应用的用户授权完成 SSO。
用户的企业应用通过获取用户授权生成的授权码 Code 及其企业后台 SSO 设置生成的 app_id,并调用协作中台提供的激活用户&连接接口,完成 SSO 登录。
方式二:基于企业代码登录
配置认证信息的时候,需要配置企业代码,企业代码用于关联登录用户和预期要登录使用的企业。
企业成员在登录 WPS 的时候,可在登录页选择「更多-第三方企业登录」,输入管理员设置的企业代码,即可进入企业自有 SSO 认证页或者默认 SSO 登录页,输入企业统一认证帐号密码,即可完成登录。
WPS 与第三方 SSO 平台的交互时序图如下:
方式三:在 WEB 中基于 APPID 发起 SSO
用户基于已配置的认证方式,可用以下链接完成 SSO,可将以下链接作为应用首页,应用地址为:(其中 app_id 为配置 SSO 时生成的 APPID)
https://open.wps.cn/oauth/v1/auth?app_id={:app_id}&cb=https%3A%2F%2Fkdocs.cn
其中,WPS 与第三方 SSO 平台的交互时序图如下:
认证 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 才会获取 |