是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力。
本文主要介绍以O2OA系统作为认证中心,实现基于OAUTH2和第三方系统的单点认证
OAuth是一个关于授权(authorization)的开放标准,目前的版本是2.0版。
环境搭建:
一台是O2OA平台搭建的CRM系统,作为客户端
目的:
登录OA系统,输入用户的用户名和密码
访问CRM系统单点链接直接进入CRM系统不需要再次登录(CRM系统单点认证地址:http://172.16.98.8/x_desktop/oauth.html?oauth=CRM)
或者在CRM的登录页上,直接点击图标,跳转到OA服务器认证中心认证进行单点登录
认证的步骤:
1.OA平台凭借授权码和由CRM系统提供给我们的客户号(AppID) 和 客户密钥(AppSecrect) 向CRM系统服务器请求令牌,获取access_token
2.通过access_token去CRM系统读取组织用户信息
OA系统和CRM平台上,两边都要创建用户
例如:名为“张三” 注意,如果我们使用uid作为返回值的话,唯一编码取名一致
点击左上角主菜单 -> 系统配置 -> 安全配置->单点登录 -> OAUTH客户端配置 -> 添加oAuth客户端配置.
样例:系统命名:"CRM"; 密钥:12345678
返回用户基础信息,这里我们返回用户的uid信息:
{ uid:(return person.getUnique();) }
点击左上角主菜单 -> 系统配置 -> 安全配置->单点登录 -> OAUTH服务端配置 -> 添加oauth配置.
开始编辑OAuth服务端信息参数
是否启用
yes
名称
CRM
displayName
客户管理系统
https://open.weixin.qq.com/zh_CN/htmledition/res/assets/res-design-download/icon48_appwx_logo.png
客户号
CRM
客户密钥
对应服务端(OA服务器)上约定的的AppSecret
12345678
请求密钥网址
http://dev.o2oa.net/x_desktop/oauth2.html
请求密钥方法参数
redirect_urI:回调地址, 用户授权服务器传送授权码的地址
client_id={$clientId}&redirect_uri={$redirect_uri}&response_type=code
请求密钥方法
GET
请求令牌地址
http://dev.o2oa.net/x_organization_assemble_authentication/jaxrs/oauth/token
请求令牌方法参数
client_id={$clientId}&client_secret={$clientSecret}&redirect_uri={$redirectUri}&grant_type=authorization_code&code={$code}
请求令牌方法
POST
token信息格式
JSON
请求信息地址
http://dev.o2oa.net/x_organization_assemble_authentication/jaxrs/oauth/info
请求信息方法参数
access_token={$access_token}
请求信息方法
GET
info信息格式
JSON
请求信息方法
Get
info信息格式
JSON
info信息中用于标识个人的字段,返回uid作为用户的唯一标识
uid
点击完成登陆