开源OA:手把手教你搭建OA办公系统(17)实现系统间单点登陆认证
O2OA是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力。本系列主要以实战形式向大家介绍使用开源OA平台搭建一套协同办公系统的实际操作过程,让大家更好地了解O2OA平台的基本能力。
本文主要介绍一下O2OA这个OA办公系统下,如何实现单点登录。
教程准备
这节课我们有两部分要介绍:
1.单点登陆的两种实现方式。
2.介绍微信单点的登录过程。
单点登陆概念
介绍一下单点登录(Single Sign On),它简称为 SSO,意指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
单点登陆方式
O2OA办公系统默认提供两种单点登陆解决方案:
加密认证
我们来看下这张图,加密认证方案是第三方系统通过生成加密的临时票据,然后使用这个临时票据进行单点认证。
接下来我们演示一下第三方系统单点登录到O2平台的过程,以HR系统为例:
首先在O2平台里进入到系统设置,找到系统SSO配置
配置鉴权 ,配置第三方系统的鉴权
输入鉴权名称,输入密码
配置鉴权好了,HR系统怎么登录呢?
o2平台中心服务,提供了一个认证的接口,我们去打开看一下,
这个认证接口在 组织管理认证服务里面:SSO Action,http://127.0.0.1:20030/x_program_center/jest/list.html
有一个方法:getLogin
我们看到需要两个参数:client和token,token就是临时票据。
这个临时票据HR系统怎么产生?是需要HR系统写加密算法实现的。加密算法是基于3DES来实现的,密钥的依据是用户名+#+时间戳
现在平台里提供了加密的接口,来生成这串临时票据。
SsoAction / getEncrypt
输入clientid, key,和用户的凭证信息,
用户的信息是我们组织库里的用户,填手机号吗和唯一编码都可以。
拷贝这串密钥信息
O2平台会用3Des进行解密获得用户信息,现在HR系统拿着 和O2平台约定好的token信息, 去执行getLogin 进行单点登录。
输入client 和临时票据(密钥)
直接访问服务器
通过服务来调用接口实现单点登录,在官网上有详细的说明文档。
登录 · 语雀
这里我们再提一下,O2默认采用的是3DES的加密算法,其他的加密算法和认证过程,可以通过二次开发来实现,二次开发会在后续课程中讲到。
接下来,我们讲单点登录的另一种方法:OAuth2
OAuth2
OAuth是一个关于授权(authorization)的开放标准,目前的版本是2.0版。
比如网站,手机使用的"使用微信账号登陆","使用微博账号登陆"采用的都是OAuth2实现的.
好,我们通过调用由微信提供的oauth服务,实现和O2OA系统的单点登陆.
总体的过程是这样的:
1.o2oa平台提供一个微信登录的链接,用户点击跳转到微信的服务器
2.用户根据微信授权,提示登录,微信并确认授权给o2平台
认证的步骤:
1.微信授权服务器返回用户的浏览器一个授权码,这个是请求code的过程.
2.微信返回授权码(code)给o2平台
3.o2平台凭借授权码和之前由微信提供给我们的客户号(AppID) 和 客户密钥(AppSecrect) 向微信服务器请求令牌,获取access_token
4.通过access_token去微信资源服务器读取用户信息(这一步在微信登陆过程中可以忽略).
申请账号
前提条件:首先在微信开放平台需要,注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,才可开始接入流程。
接下来,
我们以培训的这台服务器为例,进行配置。
这里我们使用live服务器申请到了两个凭证:
AppID: wx7c7c2320775****
AppSecret: 996de80562e8ead0907707a93d9a1e***
这个账号是和域名(live.o2oa.net)是绑定的.无法冒用其他人的appId
配置
回到平台的主菜单
点击左上角主菜单 -> 系统配置 -> 系统sso配置 -> OAUTH服务端配置 -> 添加oauth配置.
这里要说明一下:微信单点登陆和企业微信配置不是一个项目.
是否启用
yes
名称
微信
displayName
微信
图标
我们可以到微信的官网选择一个适合的图标
微信Logo | 微信开放文档
https://open.weixin.qq.com/zh_CN/htmledition/res/assets/res-design-download/icon48_appwx_logo.png
客户号
对应微信申请下来的appId
appid :o2平台在微信上注册的开发者账号
wx7c7c2320775b40c2
客户密钥
对应微信申请下来的AppSecret
996de80562e8ead0907707a93d9a1ef2
请求密钥网址
https://open.weixin.qq.com/connect/qrconnect
请求密钥方法参数
redirect_urI:回调地址, 用户授权服务器传送授权码的地址
redirect_uri={$redirect_uri}&appid={$clientId}&response_type=code&scope=snsapi_login&state=STATE
请求密钥方法
GET
请求令牌网址
https://api.weixin.qq.com/sns/oauth2/access_token
请求令牌方法参数
appid={$clientId}&secret={$clientSecret}&code={$code}&grant_type=authorization_code
请求令牌方法
GET
token信息格式
JSON
请求信息网址
由于我们忽略第三步,这里保持为空.
请求信息方法参数
由于我们忽略第三步,这里保持为空.
请求信息方法
由于我们忽略第三步,这里保持为空.
info信息格式
由于我们忽略第三步,这里保持为空.
info信息中用于标识个人的字段
微信返回openid作为用户的唯一标识
openid
infoScriptText
较复杂的情况下可以通过脚本来进行数据转换,这里我们保持为空即可
bindingEnable
选择启用,我们把openid字段存储到用户的open1Id字段.
yes
bindingField
在个人的表用来存储微信openid的字段
open1Id
至此我们完成了微信单点登陆的配置.
配置完成后需要重启系统使配置生效.
绑定
与一般的网站不同,O2OA系统一般先有用户,我们需要完成用户和微信的绑定,再实现可以通过微信的单点登陆.
处于安全的考虑 xadmin 默认管理员不能进行绑定,要用注册的用户进行登陆
登陆系统,选择左上角主菜单 -> 选择右上角个人 -> 选择个人设置 -> 选择单点登陆 -> 点击微信
注销退出重新打开系统,登陆页面将出现微信图标
点击微信登陆,扫描二维码完成登陆。
开源OA:手把手教你搭建OA办公系统(17)实现系统间单点登陆认证相关推荐
- 手把手教你搭建OA服务器
手把手教你搭建OA服务器 AnyOffice.Net 3.3 安装与配置说明 AnyOffice.Net在平台准备充分的情况下可以通过一次点击安装.配置IIS站点就能完成.所以在安装AnyOffice ...
- 开源!手把手教你搭建Arduino+英伟达Jetson的ROS小车(上)
1 引言 今年6月,我们应小伙伴儿的需求,写了两篇如何通过购买零件从零搭建一台ROS实体车的推文<开源!手把手教你搭建Arduino+树莓派的ROS小车(上)>.<开源!手把手教你搭 ...
- 开源OA:手把手教你搭建OA办公系统(1)服务器安装和数据初始化
如何下载O2OA办公系统的开源代码? O2OA办公平台以及其所有源码,都是可以免费获取的,主要有以下两种方式: 1.从O2OA办公系统官网下载可运行版本. 2.下载源码,自行编译可运行版本.(后面的课 ...
- 开源OA:手把手教你搭建OA办公系统(19)-系统上线之服务器集群设置
O2OA是一款全开源的企业信息化开发平台,作为OA系统开发平台,O2OA着力于帮助企业降低信息化系统开发成本,帮助企业提升信息化能力.本系列主要以实战形式向大家介绍使用开源OA平台搭建一套协同办公系统 ...
- 开源OA:手把手教你搭建OA办公系统(3)开发企业报销审批流程
需求 今天以OA系统中的报销审批流程为例来讲一下流程应用管理.首先介绍一下报销流程的需求,主要分为两部分,流程和表单. 流程 OA的报销流程部分,我们将其分成两种情况:报销金额<=3000元时, ...
- 开源OA:手把手教你搭建OA办公系统(12)O2OA与第三方系统的数据交互实现
OA系统中服务管理的介绍 O2OA办公开发平台提供的服务管理可以让用户使用Javascript语言自由编写脚本,来实现与第三方系统的数据交互.数据同步.以及系统内的数据处理等工作,也可以编写OA系统内 ...
- 开源OA:手把手教你搭建OA办公系统(9)快速搭建企业门户
OA系统门户介绍 一个门户OA办公系统的门面,把这个门面做的既实用又漂亮很重要.而今天要介绍的功能--门户管理,是OA办公系统管理是O2OA五大平台之一,主要用于设计各类页面,比如系统首页.列表页面. ...
- 开源OA:手把手教你搭建OA办公系统(13)将O2OA集成到钉钉
钉钉集成 在前面移动办公的课程中,我们已经介绍了: O2OA移动APP的功能和能力,但是现在用户说,我们一直都是在使用钉钉进行移动办公,不想再安装其他新的APP了.能不能在钉钉中使用O2OA进行办公呢 ...
- 开源OA:手把手教你搭建OA办公系统(4)搭建报销审批流程
O2OA拖曳式流程图开发 新建默认流程 首先我们修改流程名字为"报销审批流程",然后按照需求把所有的节点活动先拖过来,分别修改一下名字 接下来就要画上面的路由了,双击活动节点出现路 ...
最新文章
- 微软修复20多年的老漏洞:Win95时就存在了
- 一行代码太长的解决方法
- Scalability Tradeoffs: Why “The Ethereum
- 3d展示网页开发_超实用:一篇文章带你了解市面上主流通用的3D模型格式
- 数据库实例服务被误删后
- bzoj 3994 约数个数和 —— 反演+数论分块
- 使用iMazing精准地导出Safari浏览器数据
- 百度AI开放平台学习——EasyDL经典版-图像分类模型训练与验证
- 《Windows程序设计》学习笔记(chap10菜单及其它资源)(一)
- 原生拦截WebView页面下载链接跳转空白页问题
- stm32零基础应该怎么入门?
- MVC 原理和框架图
- 英特尔OneAPI介绍
- LODOP.ADD_PRINT_TEXT 参数解释说明
- Arduino与Matlab的串口通讯:通过光敏电阻进行人数统计,以及改进:人物方向的判断并进行加减。
- 生成目录_将word转换成PDF
- 洛谷B2058 奥运奖牌计数
- Intellij搭建spark开发环境
- 关于mysql彻底卸除问题
- 维智科技荣获CSDN 2021年度核心技术企业
热门文章
- xml中[CDATA[]]浅解
- 如何使用UltralSO制作系统UEFI启动盘
- 想进互联网大厂,该怎么做?
- 打印出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。
- iOS Tabbar凸起效果
- 自己动手写CPU——第一篇
- 面试题目总结(1) https中间人攻击,ConcurrentHashMap的原理 ,serialVersionUID常量,redis单线程,
- 一步一步以安装包的方式,搭建API测试工具Hitchhiker
- ios 简单模仿随便走的AR功能(原理)
- 普通人在互联网时代的机会