之前的文章中有介紹spring cloud sso集成的方案罩驻,也做過(guò)spring + jwt + redis的解決方案,不同系統(tǒng)的無(wú)縫隙集成,統(tǒng)一的sso單點(diǎn)登錄界面的管理蝉仇、每個(gè)應(yīng)用集成的權(quán)限認(rèn)證,白名單等都是我們需要考慮的殖蚕,現(xiàn)在針對(duì)于以上的問(wèn)題我們做了sso單點(diǎn)登錄應(yīng)用認(rèn)證平臺(tái)轿衔,設(shè)計(jì)如下:
- 數(shù)據(jù)庫(kù)設(shè)計(jì):
DROP TABLE IF EXISTS `sso_app_apply`;
CREATE TABLE `sso_app_apply` (
`id` varchar(200) NOT NULL COMMENT '編號(hào)',
`type` varchar(200) NOT NULL COMMENT '所屬分類',
`applicant` varchar(200) NOT NULL COMMENT '申請(qǐng)人',
`approver` varchar(200) NOT NULL COMMENT '審批人',
`appname` varchar(200) NOT NULL COMMENT '應(yīng)用名稱',
`range` varchar(200) NOT NULL COMMENT '使用范圍',
`token` varchar(200) NOT NULL COMMENT 'token認(rèn)證碼',
`approval_time` datetime NOT NULL COMMENT '審批時(shí)間',
`create_date` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
`update_by` varchar(64) NOT NULL COMMENT '更新者',
`update_date` datetime NOT NULL COMMENT '更新時(shí)間',
`del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '刪除標(biāo)記',
`status` char(1) DEFAULT '0' COMMENT '審核狀態(tài):0(待審核) 1(審核通過(guò)) 2(駁回) 3(黑名單)',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso應(yīng)用申請(qǐng)表';
DROP TABLE IF EXISTS `sso_app_template`;
CREATE TABLE `sso_app_template` (
`id` varchar(200) NOT NULL COMMENT '編號(hào)',
`a_id` varchar(200) NOT NULL COMMENT '應(yīng)用id',
`t_id` varchar(200) NOT NULL COMMENT '模板id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso應(yīng)用模板中間表';
DROP TABLE IF EXISTS `sso_template`;
CREATE TABLE `sso_template` (
`id` varchar(200) NOT NULL COMMENT '編號(hào)',
`name` varchar(200) NOT NULL COMMENT '模板名稱',
`type` varchar(200) NOT NULL COMMENT '模板分類',
`img` varchar(200) NOT NULL COMMENT '模板圖片',
`create_by` varchar(64) NOT NULL COMMENT '創(chuàng)建者',
`create_date` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
`update_by` varchar(64) NOT NULL COMMENT '更新者',
`update_date` datetime NOT NULL COMMENT '更新時(shí)間',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sso模板表';
- 執(zhí)行流程
A. 成用戶注冊(cè) (可以注冊(cè)個(gè)人賬戶或者企業(yè)賬戶)
B. 申請(qǐng)應(yīng)用(可能是多個(gè)應(yīng)用),選擇不同的模板(不同模板對(duì)應(yīng)不同行業(yè)的sso單點(diǎn)登錄系統(tǒng))
C. 管理人員進(jìn)行應(yīng)用審核(申請(qǐng)人提交信息的審核)睦疫,審核通過(guò)以后通過(guò)加密方式生成應(yīng)用對(duì)應(yīng)的token信息
D. 后臺(tái)管理(應(yīng)用列表呀枢、應(yīng)用審核、模板管理等)
E. 將token信息和應(yīng)用信息傳遞笼痛,進(jìn)行sso統(tǒng)一攔截器認(rèn)證(驗(yàn)證白名單)
F. 成功or失斎骨铩(跳轉(zhuǎn)到指定模板的sso登錄界面)
完整項(xiàng)目的源碼來(lái)源 技術(shù)支持1791743380