假如你是企業(yè)管理者,你的公司正在使用包括考勤系統(tǒng)、差旅報(bào)銷(xiāo)系統(tǒng)碳褒、在線協(xié)同工具等十幾甚至幾十套不同的軟件系統(tǒng),你的員工是否可以在這些不同的系統(tǒng)中看疗,一次登錄全部搞定沙峻?有沒(méi)有發(fā)生多人共享同一賬號(hào),造成身份管理混亂的情況两芳?
企業(yè)在統(tǒng)一員工身份管理時(shí)摔寨,面臨諸多挑戰(zhàn):
應(yīng)用太多,員工賬號(hào)密碼眾多怖辆,復(fù)雜難記是复,或設(shè)置單一,存在安全隱患竖螃。
登錄入口眾多淑廊,沒(méi)有統(tǒng)一界面,切換頻繁斑鼻,體驗(yàn)差蒋纬。
不同應(yīng)用和員工數(shù)據(jù)之間割裂,不同設(shè)備和操作系統(tǒng)不兼容。
不同應(yīng)用蜀备、各地分支機(jī)構(gòu)关摇,檔案信息不同。
單點(diǎn)登錄可以解決這些痛點(diǎn)碾阁。
單點(diǎn)登錄是一個(gè)身份驗(yàn)證機(jī)制输虱,英文全稱(chēng) Single Sign On,簡(jiǎn)稱(chēng) SSO脂凶。它的定義是:在多個(gè)應(yīng)用系統(tǒng)中宪睹,用戶(hù)只需要登錄一次,即可訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)蚕钦,就像健康保一樣亭病,為你的身份做擔(dān)保。
單點(diǎn)登錄 SSO 可以安全地確保員工只需要一組賬號(hào)與密碼嘶居,或通過(guò)標(biāo)準(zhǔn)協(xié)議認(rèn)證罪帖、第三方身份源認(rèn)證,就可以登錄所有被授權(quán)的應(yīng)用系統(tǒng)邮屁。例如整袁,員工只需要登錄個(gè)人 OA 系統(tǒng)的賬號(hào)密碼就可以訪問(wèn)飛書(shū)、銷(xiāo)售易佑吝、客戶(hù)系統(tǒng)等應(yīng)用程序坐昙,無(wú)需再次輸入賬號(hào)和密碼。
用戶(hù)在登錄后芋忿,服務(wù)器需要對(duì)其身份進(jìn)行驗(yàn)證炸客,主要實(shí)現(xiàn)方式有三種:
方式 1:通過(guò) session 進(jìn)行驗(yàn)證
session 稱(chēng)為“會(huì)話”,session 對(duì)象存儲(chǔ)特定用戶(hù)會(huì)話所需的屬性及配置信息盗飒。簡(jiǎn)言之嚷量,session 就是服務(wù)器為了儲(chǔ)存用戶(hù)信息而創(chuàng)建的一個(gè)驗(yàn)證手段。用戶(hù)在登錄了一個(gè)系統(tǒng)后逆趣,服務(wù)器會(huì)將登錄信息儲(chǔ)存在一個(gè) session 中,產(chǎn)生 session ID嗜历,客戶(hù)端會(huì)保存該 ID宣渗;當(dāng)這個(gè)用戶(hù)再登錄其他系統(tǒng)時(shí),服務(wù)器會(huì)自動(dòng)復(fù)制上一個(gè)模塊的 session 該服務(wù)器的 session 中梨州,以獲取用戶(hù)登錄信息痕囱,實(shí)現(xiàn)用戶(hù)只登錄一次,就可以登錄其他系統(tǒng)暴匠。在用戶(hù)退出登錄時(shí)鞍恢,服務(wù)器會(huì)自動(dòng)刪除 session。
整個(gè)過(guò)程均在服務(wù)器端完成,用戶(hù)實(shí)際使用時(shí)沒(méi)有感知帮掉。
方式 2:通過(guò) cookie 進(jìn)行驗(yàn)證
cookie 是某些網(wǎng)站為了辨別用戶(hù)身份弦悉,由服務(wù)端生成,發(fā)給客戶(hù)端暫時(shí)或永久保存的信息蟆炊。簡(jiǎn)言之稽莉,cookie 就是一種存儲(chǔ)用戶(hù)數(shù)據(jù)的媒介。舉例來(lái)說(shuō)涩搓,當(dāng)我們打開(kāi)一個(gè)網(wǎng)站污秆,比如新浪、CSDN昧甘、知乎時(shí)良拼,輸入用戶(hù)名和密碼登錄后系統(tǒng)會(huì)彈出是否保存 cookie,如果我們選擇保存充边,在下一次登錄時(shí)将饺,就不需要再次輸入用戶(hù)名和密碼,而是默認(rèn)登錄成功痛黎,直接進(jìn)入頁(yè)面予弧。
方式 3:通過(guò) token 進(jìn)行驗(yàn)證
token 在身份認(rèn)證中是令牌的意思,在詞法分析中是標(biāo)記的意思湖饱。一般作為邀請(qǐng)掖蛤、登錄系統(tǒng)使用。簡(jiǎn)言之井厌,token 就是一種憑證蚓庭,用戶(hù)在登錄注冊(cè)時(shí)需要獲取憑證,在經(jīng)過(guò)驗(yàn)證后仅仆,方可登錄相關(guān)被授權(quán)的應(yīng)用器赞。
用戶(hù)在首次登錄系統(tǒng)時(shí)輸入賬號(hào)和密碼,服務(wù)器會(huì)收到登錄請(qǐng)求墓拜,然后驗(yàn)證是否正確港柜;
服務(wù)器會(huì)根據(jù)用戶(hù)信息,如用戶(hù) ID咳榜、用戶(hù)名夏醉、秘鑰、過(guò)期時(shí)間等信息生成一個(gè) token 簽名涌韩,然后發(fā)給用戶(hù)畔柔;
用戶(hù)驗(yàn)證成功后,返回 token臣樱;
前端服務(wù)器收到 token 后靶擦,存儲(chǔ)到 cookie 或 Local Storage 里腮考;
當(dāng)用戶(hù)再次登錄時(shí),會(huì)被服務(wù)器驗(yàn)證 token玄捕;
服務(wù)器收到用戶(hù)登錄請(qǐng)求后踩蔚,對(duì) token 簽名進(jìn)行比對(duì):如果 token 驗(yàn)證正確,用戶(hù)登錄成功桩盲;如果 token 驗(yàn)證不正確寂纪,用戶(hù)登錄失敗,跳轉(zhuǎn)到登錄頁(yè)赌结。
session 與 cookie捞蛋、token 驗(yàn)證的區(qū)別
在 Authing 中,無(wú)需手動(dòng)編寫(xiě)操作 session柬姚、cookie 或是 token拟杉,控制臺(tái)中可以一鍵體驗(yàn)單點(diǎn)登錄功能,并且支持自建與集成第三方等多種方式量承,還可以通過(guò) SDK 接入并自定義自己的應(yīng)用與登錄方式搬设。
自建 SSO 方案
開(kāi)啟應(yīng)用之間的單點(diǎn)登錄后,同一個(gè)用戶(hù)池下的不同應(yīng)用之間的登錄狀態(tài)將會(huì)打通撕捍,終端用戶(hù)只需登錄一次即可在不同的應(yīng)用之間暢行拿穴。
創(chuàng)建兩個(gè)應(yīng)用
首先你可以按照指引創(chuàng)建兩個(gè)應(yīng)用。
配置單點(diǎn)登錄
進(jìn)入菜單 應(yīng)用 > 單點(diǎn)登錄 SSO忧风,點(diǎn)擊左上角添加應(yīng)用默色,然后選擇自建應(yīng)用,在下方的列表里找到剛剛創(chuàng)建的應(yīng)用狮腿,點(diǎn)擊 + 號(hào)腿宰,就完成了多應(yīng)用單點(diǎn)登錄的配置。
體驗(yàn)應(yīng)用單點(diǎn)登錄
進(jìn)入 單點(diǎn)登錄 SSO的應(yīng)用列表標(biāo)簽缘厢,選擇一個(gè)應(yīng)用吃度,點(diǎn)擊體驗(yàn)登錄。
在登錄頁(yè)面完成登錄:
成功后會(huì)跳轉(zhuǎn)到應(yīng)用回調(diào)地址:
接下來(lái)我們點(diǎn)擊另一個(gè)應(yīng)用的體驗(yàn)按鈕:
用戶(hù)無(wú)需再次輸入密碼贴硫,直接進(jìn)入了該用用的回調(diào)地址:
使用 SDK 接入單點(diǎn)登錄
詳細(xì)的接入流程請(qǐng)見(jiàn) Authing 官網(wǎng)的單點(diǎn)登錄 SDK 文檔椿每。