|
1、方案概述:本文介绍了AC对接统一身份认证oauth认证+数据库方式获取用户目录实现统一认证场景的配置思路
2、方案主要呈现效果: (1) 用户认证使用和原业务系统相同的外部统一身份认证服务器,使用oauth或cas方式登录,浏览器上网认证的同时完成了业务系统的单点登录; (2) ac的用户目录通过数据库对接方式,从客户的数据库服务器获取,在客户侧没有ldap的情况下,利用统一认证底层数据库实现用户信息获取; (3) 通过数据库语句做数据库多列的合并,实现组织架构的导入,在数据库组织架构字段不在同一列情况下实现层级路径的导入; (4) 实现用户无感AC登录页的存在,只能看到统一认证的登录页面,认证时自动跳转到统一认证页面。
3、 关键配置说明: (1) Oauth配置:不做说明,获取接口文档配置即可,无特殊复杂度
(2) 自动跳转统一认证页面:AC在13.0.72版本以上支持了自动跳转三方认证页面,配置方法就是在认证策略中只选择一个统一认证服务器,不要勾选其他即可
(3) 对接数据库获取用户目录 先在认证服务器页面添加数据库认证服务器,配置认证服务器对接数据库服务器,注意数据库类型需要结合实际情况选择,需具备查询数据库存放用户目录表的权限,这里配置就是正常接入数据库的参数,无特殊或难理解配置 在用户自动同步页面,配置数据库同步,关键参数说明如下
数据库服务器:选择上一步配置的数据库服务器 获取用户的sql语句:参考默认的语句,就是查询指定表中的用户名和组织架构字段然后导入ac内部,详细配置说明和常见问题往下看 组路径分隔符:根据数据库中组织架构字段的值决定,需具体看下上下级单位之间怎么分隔的,建议直接访问数据库看字段值 同步目标配置(本地):指定这些用户和组织导入到AC后,在AC本地用户存放的位置
Sql语句详细说明:配置从指定表中获取指定的两列数据,分别导入到AC本地的用户和组织架构中 默认语句为select name,path from user_table limit 65534; 解读如下 查询名为“user_table”的表中name和path列导入到AC的用户名和组织架构中,限制获取65534行
实际项目中建议使用数据库工具连接数据库,获取数据库的几个信息,然后替换到查询语句 1、用户信息存放的表名 2、用户名(一般用学号、工号、手机号等唯一值,注意不是姓名)的键 3、组织架构的键
(4) 对接数据库特殊场景说明: 存在多张表场景:比如学生信息是一张表、老师信息是一张表,但是AC的一个数据库同步策略策略只能写一个表,这时候需要配置多个数据同步策略解决
组织架构的层级没有写在一列中:可能存在如下情况,用户当前所属最小架构和上级架构不在同一列,AC默认又只能获取一列的数据,此时可以通过sql语句合并实现,示例如下: 当前有一个存放学生信息的表,表名为xueshengxinxi; 其中学生的组织架构由“系部名称”“所属年级”“班级”三级组成,格式如下 此场景在ac中对应的语句示例如下: SELECT xuehao, xibumingcheng || '/' || suoshunianji || '/' || banji AS xibumingcheng FROM xueshengxinxi 这里使用了oracle的拼接语句实现,含义是将“系部名称”“所属年级”“班级”字段使用斜线分隔后合并,最终对于ac来说就获取到了两个字段,以此来实现组织架构的获取 字段1:xuehao 字段2:xibumingcheng(由xibumingcheng+suoshunianji+banji三者+斜线分隔组成) |