之前的文章中有介紹spring cloud sso集成的方案蝗茁,也做過spring + jwt + redis的解決方案,不同系統(tǒng)的無縫隙集成寻咒,統(tǒng)一的sso單點登錄界面的管理哮翘、每個應(yīng)用集成的權(quán)限認(rèn)證,白名單等都是我們需要考慮的毛秘,現(xiàn)在針對于以上的問題我們做了sso單點登錄應(yīng)用認(rèn)證平臺饭寺,設(shè)計如下:
1. 數(shù)據(jù)庫設(shè)計:
DROPTABLEIFEXISTS`sso_app_apply`;CREATETABLE`sso_app_apply`(`id`varchar(200)NOTNULLCOMMENT'編號',`type`varchar(200)NOTNULLCOMMENT'所屬分類',`applicant`varchar(200)NOTNULLCOMMENT'申請人',`approver`varchar(200)NOTNULLCOMMENT'審批人',`appname`varchar(200)NOTNULLCOMMENT'應(yīng)用名稱',`range`varchar(200)NOTNULLCOMMENT'使用范圍',`token`varchar(200)NOTNULLCOMMENT'token認(rèn)證碼',`approval_time`datetimeNOTNULLCOMMENT'審批時間',`create_date`datetimeNOTNULLCOMMENT'創(chuàng)建時間',`update_by`varchar(64)NOTNULLCOMMENT'更新者',`update_date`datetimeNOTNULLCOMMENT'更新時間',`del_flag`char(1)NOTNULLDEFAULT'0'COMMENT'刪除標(biāo)記',`status`char(1)DEFAULT'0'COMMENT'審核狀態(tài):0(待審核) 1(審核通過) 2(駁回) 3(黑名單)',? PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='sso應(yīng)用申請表';
DROPTABLEIFEXISTS`sso_app_template`;CREATETABLE`sso_app_template`(`id`varchar(200)NOTNULLCOMMENT'編號',`a_id`varchar(200)NOTNULLCOMMENT'應(yīng)用id',`t_id`varchar(200)NOTNULLCOMMENT'模板id',? PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='sso應(yīng)用模板中間表';
DROPTABLEIFEXISTS`sso_template`;CREATETABLE`sso_template`(`id`varchar(200)NOTNULLCOMMENT'編號',`name`varchar(200)NOTNULLCOMMENT'模板名稱',`type`varchar(200)NOTNULLCOMMENT'模板分類',`img`varchar(200)NOTNULLCOMMENT'模板圖片',`create_by`varchar(64)NOTNULLCOMMENT'創(chuàng)建者',`create_date`datetimeNOTNULLCOMMENT'創(chuàng)建時間',`update_by`varchar(64)NOTNULLCOMMENT'更新者',`update_date`datetimeNOTNULLCOMMENT'更新時間',? PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COMMENT='sso模板表';
2. 執(zhí)行流程
A. 成用戶注冊 (可以注冊個人賬戶或者企業(yè)賬戶)
B. ?申請應(yīng)用(可能是多個應(yīng)用),選擇不同的模板(不同模板對應(yīng)不同行業(yè)的sso單點登錄系統(tǒng))
C. ?管理人員進行應(yīng)用審核(申請人提交信息的審核)叫挟,審核通過以后通過加密方式生成應(yīng)用對應(yīng)的token信息
D. ?后臺管理(應(yīng)用列表艰匙、應(yīng)用審核、模板管理等)
E. 將token信息和應(yīng)用信息傳遞抹恳,進行sso統(tǒng)一攔截器認(rèn)證(驗證白名單)
F. 成功or失斣蹦(跳轉(zhuǎn)到指定模板的sso登錄界面)
3. 效果界面: