IAM是什么以及要怎么設計?

0 評論 4474 瀏覽 13 收藏 10 分鐘

? 對于IAM大家了解嗎?什么是? IAM?? IAM又有什么用途呢?下邊這篇文章可以找到這些問題的答案,大家一起看看吧!

一、IAM的定義

1. IAM是什么?

IAM就是身份與訪問管理,身份和訪問管理(IAM)是一個框架,用于為企業(yè)Web應用程序,API,企業(yè)用戶生命周期管理和企業(yè)應用程序對外部用戶/供應商的訪問權限實施額外的安全層。

IAM可以控制基于用戶或角色的企業(yè)應用程序的訪問,并啟用單點登錄以實現(xiàn)與集成IAM的企業(yè)應用程序無縫地進行用戶身份驗證。它驗證用戶訪問請求,并且可以授予或拒絕對整個企業(yè)范圍內(nèi)受保護的Web和應用程序資源的權限。

簡而言之就是管理企業(yè)內(nèi)所有系統(tǒng)應用的登錄認證和權限的集成應用,這個應用范圍可大可小。

2. IAM的作用是什么

在介紹IAM是什么的時候,其實也是比較清楚了,主要是訪問認證以及權限控制集成的一個應用。通過一個應用控制企業(yè)內(nèi)所有的系統(tǒng)和應用,也通過這個系統(tǒng)統(tǒng)一管理和認證。不但降低了系統(tǒng)風險還減少了重復開發(fā)的問題,甚至還解決了用戶太多賬號總是忘記賬號的問題。

3. 主要組成

IAM是個提供認證訪問和權限控制的應用,它通過提供訪問認證、安全校驗、權限判斷等功能為其他應用提供服務。

那么它就會包含一些基礎通用的功能,類似用戶管理、角色權限控制、安全和審計日志等功能,讓專業(yè)的人來做專業(yè)的事,當IAM把這些賬號管理、用戶管理、權限管理、審計管理的功能做了以后,那么業(yè)務系統(tǒng)在減少重復建設、節(jié)約成本的同時更加專注于自己核心功能。

4. 范圍

IAM的范圍主要還是要看需要用到什么程度,其實在搭建之初就要確定要用到什么程度,常見的就是將IAM控制范圍限制于系統(tǒng)管理人員用戶,即公司員工一類的用戶;還有一種就是覆蓋比較全面,不單單覆蓋了公司員工還覆蓋了各個系統(tǒng)的其他用戶,類似會覆蓋C端的用戶、B端SAAS用戶等。

二、IAM怎么設計

1. 從結構

IAM結構至上而下從租戶、用戶池、應用、用戶、組織、權限、屬性層層配置,通過各個模塊對用戶在認證、權限等方面進行控制。租戶在saas產(chǎn)品上用的比較頻繁,通常企業(yè)也會管理saas的租戶,通過IAM來限制saas租戶的訪問認證,功能更多的IAM甚至會用來監(jiān)控流量、付費情況等。

用戶池簡而言之就是某一類用戶的池子,通過配置池子達到統(tǒng)一控制的目的。

應用指的是我們所操作的系統(tǒng),WEB或者APP等。

有了以上這些元素,我們就可以控制所有系統(tǒng)上用戶的訪問認證,我們就可以在一個應用監(jiān)控所有應用的情況和用戶的情況,我們就可以在一個應用精細化的為用戶分配權限,我們甚至可以在一個應用上管理我們的所有系統(tǒng)的審計日志。

當然,我們可以按照自身的需要去控制結構,比如我們不需要做SAAS化的產(chǎn)品,我們就可以拿掉租戶哪個層級,如果我們不需要管理非內(nèi)部用戶時,我們甚至可以只保留一個用戶池。

2. 功能

IAM最核心的功能是認證、賬號管理、權限授權、審計功能。

認證功能:IAM最基本的功能就是認證,自建一套認證體系,各個系統(tǒng)能夠通過IAM交互進行認證,實現(xiàn)賬戶認證與業(yè)務系統(tǒng)剝離,極大的提高了系統(tǒng)安全,減少了業(yè)務系統(tǒng)賬號被利用的漏洞。同時,各業(yè)務系統(tǒng)減少了相同功能的開發(fā)成本。

賬號管理:賬號管理也是IAM不可或缺的一部分,可以通過賬號管理來對個系統(tǒng)登錄賬號進行管控。首先是管控的范圍,可以根據(jù)實際業(yè)務情況控制,從小打到大,從少到多。其次,對于賬號也可以更精細化的管理,包含對賬號的監(jiān)控、賬號用戶的畫像、賬號基礎信息的互通等。

權限授權:將各業(yè)務系統(tǒng)權限授權功能放在IAM上,也是一種降低風險的操作,收攏了權限過大的賬號的配置入口,在一個平臺即使監(jiān)控賬號情況,減少遺監(jiān)控漏導致的安全問題也減少了重復開發(fā)的成本問題。高權限管理人員的菜單、功能、按鈕權限全在一個管理工作臺進行分配。

審計功能:記錄賬號、權限、認證等日志,能夠快速回溯以及在出現(xiàn)問題的時候快速定位問題。

3. 樣式交互

在樣式交互上,基于IAM是一個給管理人員使用的操作系統(tǒng),降低用戶學習成本,提高工作效率是首要考慮的事情。

第二,需要考慮安全問題,IAM的功能大多都是權限極高的功能,在做一些高權限操作時需要著重考慮安全性,在這里可以適當?shù)臓奚稽c用戶體驗,比如可以加上雙因子校驗等。

三、設計IAM時容易踩的坑

1. 混淆租戶和用戶池的概念

租戶和用戶池的概念及其容易混淆,用戶池指的是一類用戶,租戶更多指的是某一個組織;在設計時怎么區(qū)分他們兩呢?這種要看具體情況,比如某個業(yè)務系統(tǒng)有接口調用的功能或者采購了一整套云系統(tǒng)(包含IAM),那么這個時候的租戶就是使用戶池的一種;如果單看一整套IAM+業(yè)務系統(tǒng),那么應該是租戶包含了用戶池。具體情況要看具體業(yè)務類型。

2. 數(shù)據(jù)權限和功能權限耦合嚴重

很多系統(tǒng)在做功能權限的時候和功能權限是一起做的,比如能看到該功能就有該數(shù)據(jù)權限。如果業(yè)務單一,組織單一,那么這種方式是沒有問題的,但是一旦多組織多業(yè)務形態(tài),那么數(shù)據(jù)權限和功能權限還是要剝離開,我們這個時候可以將數(shù)據(jù)權限設置為一種屬性,將某組織的數(shù)據(jù)權限屬性分配給某個用戶,就實現(xiàn)了數(shù)據(jù)權限隔離。

3. 交互考慮過少,使用困難

前面已經(jīng)提了一小點,在做IAM系統(tǒng)的時候會更注重安全可用,而忽視了交互,導致用戶使用困難,畢竟IAM包含的內(nèi)容很多,稍有不注意就會導致權限或功能配置錯誤,這種小小的錯誤會被無限放大,所以交互也是需要考慮的,不然在降低工作效率的同時還容易出問題,這時候就得不償失了。

四、最后

根據(jù)系統(tǒng)和需求適宜的取舍功能,IAM是一個功能比較多的系統(tǒng)。當然,他也不是按部就班,一定要大而全,還是應該結合實際業(yè)務情況和系統(tǒng)情況來設計??梢詮挠脩舴秶①~號范圍、功能范圍來設計適配。IAM更多是一個較為后臺的系統(tǒng),它不像APP那樣面向所有C端用戶使用,也不像釘釘那樣面向所有員工使用,它就是一個在背后默默為安全、為管理而存在的系統(tǒng)。

本文由 @L.Hwang 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!