IAM是什么以及要怎么設(shè)計?
? 對于IAM大家了解嗎?什么是? IAM?? IAM又有什么用途呢?下邊這篇文章可以找到這些問題的答案,大家一起看看吧!
一、IAM的定義
1. IAM是什么?
IAM就是身份與訪問管理,身份和訪問管理(IAM)是一個框架,用于為企業(yè)Web應(yīng)用程序,API,企業(yè)用戶生命周期管理和企業(yè)應(yīng)用程序?qū)ν獠坑脩?供應(yīng)商的訪問權(quán)限實(shí)施額外的安全層。
IAM可以控制基于用戶或角色的企業(yè)應(yīng)用程序的訪問,并啟用單點(diǎn)登錄以實(shí)現(xiàn)與集成IAM的企業(yè)應(yīng)用程序無縫地進(jìn)行用戶身份驗(yàn)證。它驗(yàn)證用戶訪問請求,并且可以授予或拒絕對整個企業(yè)范圍內(nèi)受保護(hù)的Web和應(yīng)用程序資源的權(quán)限。
簡而言之就是管理企業(yè)內(nèi)所有系統(tǒng)應(yīng)用的登錄認(rèn)證和權(quán)限的集成應(yīng)用,這個應(yīng)用范圍可大可小。
2. IAM的作用是什么
在介紹IAM是什么的時候,其實(shí)也是比較清楚了,主要是訪問認(rèn)證以及權(quán)限控制集成的一個應(yīng)用。通過一個應(yīng)用控制企業(yè)內(nèi)所有的系統(tǒng)和應(yīng)用,也通過這個系統(tǒng)統(tǒng)一管理和認(rèn)證。不但降低了系統(tǒng)風(fēng)險還減少了重復(fù)開發(fā)的問題,甚至還解決了用戶太多賬號總是忘記賬號的問題。
3. 主要組成
IAM是個提供認(rèn)證訪問和權(quán)限控制的應(yīng)用,它通過提供訪問認(rèn)證、安全校驗(yàn)、權(quán)限判斷等功能為其他應(yīng)用提供服務(wù)。
那么它就會包含一些基礎(chǔ)通用的功能,類似用戶管理、角色權(quán)限控制、安全和審計日志等功能,讓專業(yè)的人來做專業(yè)的事,當(dāng)IAM把這些賬號管理、用戶管理、權(quán)限管理、審計管理的功能做了以后,那么業(yè)務(wù)系統(tǒng)在減少重復(fù)建設(shè)、節(jié)約成本的同時更加專注于自己核心功能。
4. 范圍
IAM的范圍主要還是要看需要用到什么程度,其實(shí)在搭建之初就要確定要用到什么程度,常見的就是將IAM控制范圍限制于系統(tǒng)管理人員用戶,即公司員工一類的用戶;還有一種就是覆蓋比較全面,不單單覆蓋了公司員工還覆蓋了各個系統(tǒng)的其他用戶,類似會覆蓋C端的用戶、B端SAAS用戶等。
二、IAM怎么設(shè)計
1. 從結(jié)構(gòu)
IAM結(jié)構(gòu)至上而下從租戶、用戶池、應(yīng)用、用戶、組織、權(quán)限、屬性層層配置,通過各個模塊對用戶在認(rèn)證、權(quán)限等方面進(jìn)行控制。租戶在saas產(chǎn)品上用的比較頻繁,通常企業(yè)也會管理saas的租戶,通過IAM來限制saas租戶的訪問認(rèn)證,功能更多的IAM甚至?xí)脕肀O(jiān)控流量、付費(fèi)情況等。
用戶池簡而言之就是某一類用戶的池子,通過配置池子達(dá)到統(tǒng)一控制的目的。
應(yīng)用指的是我們所操作的系統(tǒng),WEB或者APP等。
有了以上這些元素,我們就可以控制所有系統(tǒng)上用戶的訪問認(rèn)證,我們就可以在一個應(yīng)用監(jiān)控所有應(yīng)用的情況和用戶的情況,我們就可以在一個應(yīng)用精細(xì)化的為用戶分配權(quán)限,我們甚至可以在一個應(yīng)用上管理我們的所有系統(tǒng)的審計日志。
當(dāng)然,我們可以按照自身的需要去控制結(jié)構(gòu),比如我們不需要做SAAS化的產(chǎn)品,我們就可以拿掉租戶哪個層級,如果我們不需要管理非內(nèi)部用戶時,我們甚至可以只保留一個用戶池。
2. 功能
IAM最核心的功能是認(rèn)證、賬號管理、權(quán)限授權(quán)、審計功能。
認(rèn)證功能:IAM最基本的功能就是認(rèn)證,自建一套認(rèn)證體系,各個系統(tǒng)能夠通過IAM交互進(jìn)行認(rèn)證,實(shí)現(xiàn)賬戶認(rèn)證與業(yè)務(wù)系統(tǒng)剝離,極大的提高了系統(tǒng)安全,減少了業(yè)務(wù)系統(tǒng)賬號被利用的漏洞。同時,各業(yè)務(wù)系統(tǒng)減少了相同功能的開發(fā)成本。
賬號管理:賬號管理也是IAM不可或缺的一部分,可以通過賬號管理來對個系統(tǒng)登錄賬號進(jìn)行管控。首先是管控的范圍,可以根據(jù)實(shí)際業(yè)務(wù)情況控制,從小打到大,從少到多。其次,對于賬號也可以更精細(xì)化的管理,包含對賬號的監(jiān)控、賬號用戶的畫像、賬號基礎(chǔ)信息的互通等。
權(quán)限授權(quán):將各業(yè)務(wù)系統(tǒng)權(quán)限授權(quán)功能放在IAM上,也是一種降低風(fēng)險的操作,收攏了權(quán)限過大的賬號的配置入口,在一個平臺即使監(jiān)控賬號情況,減少遺監(jiān)控漏導(dǎo)致的安全問題也減少了重復(fù)開發(fā)的成本問題。高權(quán)限管理人員的菜單、功能、按鈕權(quán)限全在一個管理工作臺進(jìn)行分配。
審計功能:記錄賬號、權(quán)限、認(rèn)證等日志,能夠快速回溯以及在出現(xiàn)問題的時候快速定位問題。
3. 樣式交互
在樣式交互上,基于IAM是一個給管理人員使用的操作系統(tǒng),降低用戶學(xué)習(xí)成本,提高工作效率是首要考慮的事情。
第二,需要考慮安全問題,IAM的功能大多都是權(quán)限極高的功能,在做一些高權(quán)限操作時需要著重考慮安全性,在這里可以適當(dāng)?shù)臓奚稽c(diǎn)用戶體驗(yàn),比如可以加上雙因子校驗(yàn)等。
三、設(shè)計IAM時容易踩的坑
1. 混淆租戶和用戶池的概念
租戶和用戶池的概念及其容易混淆,用戶池指的是一類用戶,租戶更多指的是某一個組織;在設(shè)計時怎么區(qū)分他們兩呢?這種要看具體情況,比如某個業(yè)務(wù)系統(tǒng)有接口調(diào)用的功能或者采購了一整套云系統(tǒng)(包含IAM),那么這個時候的租戶就是使用戶池的一種;如果單看一整套IAM+業(yè)務(wù)系統(tǒng),那么應(yīng)該是租戶包含了用戶池。具體情況要看具體業(yè)務(wù)類型。
2. 數(shù)據(jù)權(quán)限和功能權(quán)限耦合嚴(yán)重
很多系統(tǒng)在做功能權(quán)限的時候和功能權(quán)限是一起做的,比如能看到該功能就有該數(shù)據(jù)權(quán)限。如果業(yè)務(wù)單一,組織單一,那么這種方式是沒有問題的,但是一旦多組織多業(yè)務(wù)形態(tài),那么數(shù)據(jù)權(quán)限和功能權(quán)限還是要剝離開,我們這個時候可以將數(shù)據(jù)權(quán)限設(shè)置為一種屬性,將某組織的數(shù)據(jù)權(quán)限屬性分配給某個用戶,就實(shí)現(xiàn)了數(shù)據(jù)權(quán)限隔離。
3. 交互考慮過少,使用困難
前面已經(jīng)提了一小點(diǎn),在做IAM系統(tǒng)的時候會更注重安全可用,而忽視了交互,導(dǎo)致用戶使用困難,畢竟IAM包含的內(nèi)容很多,稍有不注意就會導(dǎo)致權(quán)限或功能配置錯誤,這種小小的錯誤會被無限放大,所以交互也是需要考慮的,不然在降低工作效率的同時還容易出問題,這時候就得不償失了。
四、最后
根據(jù)系統(tǒng)和需求適宜的取舍功能,IAM是一個功能比較多的系統(tǒng)。當(dāng)然,他也不是按部就班,一定要大而全,還是應(yīng)該結(jié)合實(shí)際業(yè)務(wù)情況和系統(tǒng)情況來設(shè)計??梢詮挠脩舴秶?、賬號范圍、功能范圍來設(shè)計適配。IAM更多是一個較為后臺的系統(tǒng),它不像APP那樣面向所有C端用戶使用,也不像釘釘那樣面向所有員工使用,它就是一個在背后默默為安全、為管理而存在的系統(tǒng)。
本文由 @L.Hwang 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!