自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何基于Python建設(shè)企業(yè)認(rèn)證和權(quán)限控制平臺

原創(chuàng)
開發(fā)
企業(yè)內(nèi)網(wǎng),建立在企業(yè)內(nèi)部,為員工提供信息的共享和交流,為業(yè)務(wù)提供運(yùn)營和管理的支撐,已是當(dāng)今企業(yè)信息化建設(shè)必不可少的一個項目。隨著企業(yè)的規(guī)模越來越大,業(yè)務(wù)越來越廣,系統(tǒng)建設(shè)就顯得尤為重要。

【51CTO.com原創(chuàng)稿件】企業(yè)內(nèi)網(wǎng),建立在企業(yè)內(nèi)部,為員工提供信息的共享和交流,為業(yè)務(wù)提供運(yùn)營和管理的支撐,已是當(dāng)今企業(yè)信息化建設(shè)必不可少的一個項目。隨著企業(yè)的規(guī)模越來越大,業(yè)務(wù)越來越廣,系統(tǒng)建設(shè)就顯得尤為重要。

統(tǒng)一認(rèn)證系統(tǒng)是企業(yè)內(nèi)網(wǎng)系統(tǒng)建設(shè)的基礎(chǔ),主要實現(xiàn)用戶管理、身份認(rèn)證、權(quán)限管理和單點(diǎn)登錄等功能,以解決企業(yè)內(nèi)網(wǎng)系統(tǒng)建設(shè)過程中用戶定義模糊、用戶身份組織零亂、交叉權(quán)限管理和應(yīng)用系統(tǒng)出口多樣性等棘手的問題。

基于此,五阿哥運(yùn)維技術(shù)團(tuán)隊基于Python建設(shè)了統(tǒng)一認(rèn)證(BUC:Back User Center)和權(quán)限控制(ACL:Access Control List)平臺,這個系統(tǒng)技術(shù)架構(gòu)圖如下: 

 

一、 系統(tǒng)的功能

1.用戶管理

在企業(yè)中,每個用戶都有一個唯一的賬號進(jìn)行登錄,用戶的賬號和個人身份信息(包含姓名、郵件等公共屬性)會集中保存在內(nèi)網(wǎng)統(tǒng)一認(rèn)證系統(tǒng)里。但對于同一個用戶在外部系統(tǒng)中的賬號,如微信、釘釘、Tower等第三方系統(tǒng),統(tǒng)一認(rèn)證系統(tǒng)也可以通過定時同步或?qū)崟r查詢等方式獲取到用戶的信息。

2.安全管理

對于保存在企業(yè)內(nèi)網(wǎng)中的用戶賬號進(jìn)行認(rèn)證是比較方便的,對于保存在外部系統(tǒng)中的用戶賬號,可以通過定時同步或?qū)崟r驗證等方式來驗證用戶的鑒權(quán),最終統(tǒng)一以唯一的身份使用戶登錄進(jìn)入系統(tǒng)。

同時,企業(yè)內(nèi)部存在多個不同的業(yè)務(wù)應(yīng)用,以所有應(yīng)用均接入統(tǒng)一認(rèn)證平臺為基礎(chǔ),各個業(yè)務(wù)系統(tǒng)的用戶認(rèn)證采用單點(diǎn)登錄認(rèn)證模式,一次登錄即可在各個業(yè)務(wù)子系統(tǒng)中完成自動認(rèn)證并獲得相關(guān)授權(quán)。

3.應(yīng)用管理

不同的業(yè)務(wù)系統(tǒng)會對用戶進(jìn)行不同的角色劃分,不同的角色又會劃分出細(xì)粒度的權(quán)限。角色權(quán)限在統(tǒng)一認(rèn)證系統(tǒng)中保存,在一個地方就可以完成用戶授權(quán)信息的設(shè)定。

4.系統(tǒng)接入

支持各種技術(shù)棧的系統(tǒng)接入,包含Java和Python等,其中各技術(shù)棧的SDK可以在Github項目中找到。

5.三方應(yīng)用

第三方應(yīng)用,包含郵箱,VPN,無線等直接進(jìn)行SSO登錄。

6.系統(tǒng)監(jiān)控

對系統(tǒng)運(yùn)行、操作、會話進(jìn)行監(jiān)控,保障在受到外部或者內(nèi)部攻擊時,能夠及時發(fā)現(xiàn),進(jìn)行實例回溯。

7.系統(tǒng)審計

對平臺所有操作進(jìn)行審計,在出現(xiàn)系統(tǒng)權(quán)限錯亂或者安全問題的時候,對平臺操作進(jìn)行審計。

二、 系統(tǒng)架構(gòu)設(shè)計

1.接口設(shè)計

企業(yè)內(nèi)網(wǎng)的統(tǒng)一認(rèn)證平臺建議基于B/S模式設(shè)計,后端使用Django框架以快速開發(fā),用DB+LDAP方式完成用戶各類信息的存儲,保障存儲和查詢效率。 統(tǒng)一認(rèn)證的核心問題是鑒權(quán)中心和各子系統(tǒng)之間的通信接口問題,用戶認(rèn)證接口協(xié)議可以基于標(biāo)準(zhǔn)化HTTP/HTTPS方式實現(xiàn),并對外提供不同語言的SDK(如Python CAS庫、Java Web過濾器等),使得第三方業(yè)務(wù)系統(tǒng)的接入不完全依賴于特定的開發(fā)環(huán)境。

2.安全設(shè)計

對于接入系統(tǒng),認(rèn)證中心接口協(xié)議調(diào)用采用HTTPS傳輸?shù)姆绞剑ㄐ虐踩珕栴}將轉(zhuǎn)化到HTTPS傳輸?shù)陌踩詥栴}上,而對于HTTPS通道的攻擊,可以由單獨(dú)的網(wǎng)絡(luò)掃描模塊專門負(fù)責(zé)監(jiān)控。

對于統(tǒng)一認(rèn)證和SSO接口參數(shù)的信息安全,一方面網(wǎng)站可采用專有加密算法對參數(shù)內(nèi)容進(jìn)行加密,另一方面,可以采用IP認(rèn)證策略來保證對接口雙方的信任,系統(tǒng)通過通道安全和信息加密雙保險的措施來保證統(tǒng)一認(rèn)證體系的接口安全。

同時系統(tǒng)配有全方面的應(yīng)用監(jiān)控和訪問日志的審計,當(dāng)機(jī)器發(fā)生異常情況或日志審計檢測到有可疑入侵行為時,會自動以多種方式通知到運(yùn)維工程師和相關(guān)負(fù)責(zé)人。

三、 BUC使用技術(shù)和實現(xiàn)

1.用戶管理

通常在企業(yè)中,每個用戶擁有一個唯一的身份標(biāo)識,即用戶名。同時用戶在其他內(nèi)網(wǎng)或外部應(yīng)用也存在著對應(yīng)的用戶,如果能使用同一個用戶身份最為方便;獨(dú)立的用戶可以通過關(guān)聯(lián)不同的系統(tǒng)的用戶使之對外呈現(xiàn)為一個用戶。用戶可以在不同的應(yīng)用系統(tǒng)中使用,這一切的基礎(chǔ)是有一個中央的系統(tǒng)來保存和管理這些用戶。常見的解決方案有Windows活動目錄和LDAP。

(1)Windows活動目錄域服務(wù)

使用 Active Directory(R) 域服務(wù) (AD DS) 服務(wù)器角色,可以創(chuàng)建用于用戶和資源管理的可伸縮、安全及可管理的基礎(chǔ)機(jī)構(gòu),并可以提供對啟用目錄的應(yīng)用程序(如 Microsoft(R) Exchange Server)的支持。 

圖-1:AD的功能,來自微軟的介紹

AD DS 提供了一個分布式數(shù)據(jù)庫,該數(shù)據(jù)庫可以存儲和管理有關(guān)網(wǎng)絡(luò)資源的信息,以及啟用了目錄的應(yīng)用程序中特定于應(yīng)用程序的數(shù)據(jù)。 運(yùn)行 AD DS 的服務(wù)器稱為域控制器。 管理員可以使用 AD DS 將網(wǎng)絡(luò)元素(如用戶、計算機(jī)和其他設(shè)備)整理到層次內(nèi)嵌結(jié)構(gòu)。內(nèi)嵌層次結(jié)構(gòu)包括 Active Directory 林、林中的域以及每個域中的組織單位 (OU)。

域模式的最大好處就是單一的網(wǎng)絡(luò)登錄能力,用戶只要在域中有一個賬戶,就可以在整個網(wǎng)絡(luò)中漫游。活動目錄服務(wù)增強(qiáng)了信任關(guān)系,擴(kuò)展了域目錄樹的靈活性?;顒幽夸洶岩粋€域作為一個完整的目錄,域之間能夠通過一種基于Kerberos認(rèn)證的可傳遞的信任關(guān)系建立起樹狀連接,從而使單一賬戶在該樹狀結(jié)構(gòu)中的任何地方都有效,這樣在網(wǎng)絡(luò)管理和擴(kuò)展時就比較輕松。

同時,活動目錄服務(wù)把域又詳細(xì)劃分成組織單元。組織單元是一個邏輯單元,它是域中一些用戶和組、文件與打印機(jī)等資源對象的集合。組織單元中還可以再劃分下級組織單元,下級組織單元能夠繼承父單元的訪問許可權(quán)。每一個組織單元可以有自己單獨(dú)的管理員并指定其管理權(quán)限,它們都管理著不同的任務(wù),從而實現(xiàn)了對資源和用戶的分級管理。活動目錄服務(wù)通過這種域內(nèi)的組織單元樹和域之間的可傳遞信任樹來組織其信任對象,為動態(tài)活動目錄的管理和擴(kuò)展帶來了極大的方便。

(2)LDAP技術(shù)

輕型目錄存取協(xié)定(英文:Lightweight Directory Access Protocol,縮寫:LDAP)是一個開放的,中立的,工業(yè)標(biāo)準(zhǔn)的應(yīng)用協(xié)議,通過IP協(xié)議提供訪問控制和維護(hù)分布式信息的目錄信息。

目錄服務(wù)在開發(fā)內(nèi)部網(wǎng)和與互聯(lián)網(wǎng)程序共享用戶、系統(tǒng)、網(wǎng)絡(luò)、服務(wù)和應(yīng)用的過程中占據(jù)了重要地位。例如,目錄服務(wù)可能提供了組織有序的記錄集合,通常有層級結(jié)構(gòu),例如公司電子郵件目錄。同理,也可以提供包含了地址和電話號碼的電話簿。 

圖-2:LDAP目錄樹圖示,來自網(wǎng)絡(luò)

LDAP協(xié)議是跨平臺的和標(biāo)準(zhǔn)的協(xié)議,因此應(yīng)用程序就不用為LDAP目錄放在什么樣的服務(wù)器上操心了。實際上,LDAP得到了業(yè)界的廣泛認(rèn)可,因為它是Internet的標(biāo)準(zhǔn)。廠商都很愿意在產(chǎn)品中加入對LDAP的支持,因為他們根本不用考慮另一端(客戶端或服務(wù)端)是怎么樣的。

LDAP服務(wù)器可以是任何一個開放源代碼或商用的LDAP目錄服務(wù)器(或者還可能是具有LDAP界面的關(guān)系型數(shù)據(jù)庫),因為可以用同樣的協(xié)議、客戶端連接軟件包和查詢命令與LDAP服務(wù)器進(jìn)行交互。

與LDAP不同的是,如果軟件廠商想在軟件產(chǎn)品中集成對DBMS的支持,那么通常都要對每一個數(shù)據(jù)庫服務(wù)器單獨(dú)定制。不像很多商用的關(guān)系型數(shù)據(jù)庫,你不必為LDAP的每一個客戶端連接或許可協(xié)議付費(fèi)。大多數(shù)的LDAP服務(wù)器安裝起來很簡單,也容易維護(hù)和優(yōu)化。

(3)用戶管理實踐

根據(jù)國內(nèi)企業(yè)辦公網(wǎng)絡(luò)的實際情況,用戶計算機(jī)通常為Windows系統(tǒng),通通接入到Windows活動目錄中進(jìn)行管理。而且Windows活動目錄兼容LDAP協(xié)議,我們使用活動目錄作為統(tǒng)一保存用戶信息的中央系統(tǒng),再通過LDAP協(xié)議使用程序訪問域控制器將用戶信息同步到統(tǒng)一認(rèn)證服務(wù)器中。 

圖-3:企業(yè)內(nèi)部系統(tǒng)基本結(jié)構(gòu)

由上圖架構(gòu)所示,一方面常見的辦公系統(tǒng)(如代碼倉庫、Wiki等)自身即支持LDAP認(rèn)證,通過配置Windows AD中的目錄/用戶搜索規(guī)則即完成對登錄用戶的認(rèn)證;另一方面自行開發(fā)的業(yè)務(wù)系統(tǒng)通過中央認(rèn)證服務(wù)器提供的接口間接的對Windows AD進(jìn)行登錄用戶的認(rèn)證,即一個用戶,一套密碼,在多個系統(tǒng)中都可使用。

  1. # auth.py 
  2.  
  3. class ActiveDirectoryAuthenticationBackEnd: 
  4.  
  5.     def authenticate(self, username, password, request=None): 
  6.  
  7.         if not username or not password
  8.  
  9.             return None 
  10.  
  11.         try: 
  12.  
  13.             # 建立同域控的連接 
  14.  
  15.             server = Server(settings.AD_SERVER_NAME, use_ssl=True
  16.  
  17.             # 驗證用戶使用的用戶名和密碼 
  18.  
  19.             conn = Connection(server, "%s\\%s" % (settings.AD_DOMAIN, username), password, auto_bind=True,                           authentication=NTLM) 
  20.  
  21.             # 認(rèn)證通過,返回系統(tǒng)中注冊的用戶,不存在則創(chuàng)建 
  22.  
  23.             user = conn.bound and self.get_or_create_user(username, conn) or None 
  24.  
  25.             return user 
  26.  
  27.         except LDAPBindError: 
  28.  
  29.             return None 
  30.  
  31.  
  32.  
  33.     def get_or_create_user(self, username, conn=None): 
  34.  
  35.         try: 
  36.  
  37.             user = User.objects.get(username=username) 
  38.  
  39.         except User.DoesNotExist: 
  40.  
  41.             if conn is None: 
  42.  
  43.                 return None 
  44.  
  45.             # 從域控向中央認(rèn)證系統(tǒng)中同步注冊一個新用戶 
  46.  
  47.             if conn.search(USER_BASE_DN, "(sAMAccountName=%s)" % username, SUBTREE, attributes=["sn""givenName"]): 
  48.  
  49.                 result = conn.response[0]["attributes"
  50.  
  51.                 user = User(username=username) 
  52.  
  53.                 user.first_name = result["givenName"
  54.  
  55.                 user.last_name = result["sn"
  56.  
  57.                 user.email = "%s@%s" % (username, settings.AD_EMAIL_HOST) 
  58.  
  59.                 user.save() 
  60.  
  61.             else
  62.  
  63.                 return None 
  64.  
  65.         return user 

 

2.身份認(rèn)證

(1)通過外部應(yīng)用認(rèn)證

外部應(yīng)用,如即時通訊軟件釘釘?shù)?,這些應(yīng)用存有單獨(dú)的一套用戶憑證,通過應(yīng)用提供的免登服務(wù),將應(yīng)用中的用戶與統(tǒng)一認(rèn)證服務(wù)器中的用戶進(jìn)行一一對應(yīng),當(dāng)用戶在外部應(yīng)用中登錄后,自動獲得在企業(yè)內(nèi)應(yīng)用的已登錄狀態(tài)。

(2)通過TOTP動態(tài)驗證碼認(rèn)證

OTP (One-Time Password) ,一次性密碼,也稱動態(tài)口令。它是使用密碼技術(shù)實現(xiàn)在客戶端和服務(wù)器之間共享秘密的一種認(rèn)證技術(shù),是一種強(qiáng)認(rèn)證技術(shù),是增強(qiáng)目前靜態(tài)口令認(rèn)證的一種非常方便的技術(shù)手段,是一種重要的雙因素認(rèn)證技術(shù)。

TOTP (Time-base One-Time Password) ,基于時間的一次性密碼,也稱時間同步的動態(tài)密碼。當(dāng)在一些用戶不方便輸入密碼或者忘記密碼的場景中,我們可以使用TOTP進(jìn)行認(rèn)證。服務(wù)器和用戶各自保管共同的密鑰,通過比對基于時間分片與哈希計算出的動態(tài)數(shù)字驗證碼即可完成對用戶身份的認(rèn)證。主流實現(xiàn)為Google Authenticator(Google身份驗證器),阿里的身份寶也兼容該算法。 

圖-4:TOTP算法圖示

(3)雙因子認(rèn)證

雙因子認(rèn)證(Two-Factor Authentication)是指結(jié)合密碼以及實物(信用卡、SMS手機(jī)、令牌或指紋等生物標(biāo)志)兩種元素對用戶進(jìn)行認(rèn)證的方法。 

圖-5:動態(tài)驗證碼流程圖示

結(jié)合上面使用的TOTP驗證碼,對于安全級別較高的應(yīng)用或資源路徑、或是系統(tǒng)探測到風(fēng)險較高的操作時,即可以對用戶重定向至雙因子認(rèn)證頁面,進(jìn)一步保障系統(tǒng)安全。

3.單點(diǎn)登錄

主要實現(xiàn)方式:

(1)共享 cookie

利用同一域名下的cookie共享為基礎(chǔ),將session id寫入共享cookie,在實現(xiàn)了后臺session共享存儲和訪問后,不同的應(yīng)用之間即實現(xiàn)了單點(diǎn)登錄。

(2)Broker-based  (基于經(jīng)紀(jì)人)

在一個基于經(jīng)紀(jì)人的 SSO 解決方案中,有一個集中的認(rèn)證和用戶帳號管理的服務(wù)器。經(jīng)紀(jì)人能被用于進(jìn)一步請求的電子的身份存取。中央數(shù)據(jù)庫的使用減少了管理的代價,并為認(rèn)證提供一個公共和獨(dú)立的"第三方"。例如 Kerberos 、 Sesame 、 IBM KryptoKnight (憑證庫思想 ) 等。

(3)Agent-based(基于代理人)

在這種解決方案中,有一個自動地為不同的應(yīng)用程序認(rèn)證用戶身份的代理程序。這個代理程序需要設(shè)計有不同的功能。比如,它可以使用口令表或加密密鑰來自動地將認(rèn)證的負(fù)擔(dān)從用戶移開。代理人被放在服務(wù)器上面,在服務(wù)器的認(rèn)證系統(tǒng)和客戶端認(rèn)證方法之間充當(dāng)一個 " 翻譯 " ,例如 SSH 等。

(4)Token-based

口令認(rèn)證,比如 FTP 、郵件服務(wù)器的登錄認(rèn)證,這是一種簡單易用的方式,實現(xiàn)一個口令在多種應(yīng)用當(dāng)中使用。

  • 基于網(wǎng)關(guān)
  • 基于 SAML
  • Ticket-based(基于票據(jù))

4.BUC實踐

在我們的內(nèi)網(wǎng)應(yīng)用中,最終選擇了CAS協(xié)議作為單點(diǎn)登錄的方案。CAS(Central Authentication Service)是 Yale 大學(xué)發(fā)起的一個企業(yè)級的、開源的項目,旨在為 Web 應(yīng)用系統(tǒng)提供一種可靠的單點(diǎn)登錄解決方法。CAS開始于2001年,并在2004年12月正式成為JA-SIG的一個項目。

CAS的主要特點(diǎn)有:

  • 開源
  • 支持多種認(rèn)證機(jī)制:Active Directory、JAAS、JDBC、LDAP、X.509等
  • 安全策略:使用票據(jù)(Ticket)來實現(xiàn)支持的認(rèn)證協(xié)議
  • 支持授權(quán):可以決定哪些服務(wù)可以請求和驗證服務(wù)票據(jù)
  • 提供高可用性
  • 支持多種客戶端及SDK: Java, .Net,PHP,Python,nodejs 等
  • 服務(wù)端也有多種語言實現(xiàn)

(1)登錄驗證流程 

圖-6:用戶、CAS客戶端、服務(wù)端三方交互過程

 

  1. # urls.py 
  2.  
  3. # 在配置文件中將/cas 路徑掛載至根路徑,即可通過/cas/login來訪問中央認(rèn)證頁面,后臺的認(rèn)證過程會通過已有的認(rèn)證服務(wù)進(jìn)行 
  4.  
  5. urlpatterns = [ 
  6.  
  7. …… 
  8.  
  9. url(r"^cas/", include("mama_cas.urls", namespace="cas")), 
  10.  
  11. …… 
  12.  

(2)安全擴(kuò)展

當(dāng)CAS服務(wù)端完成了對用戶和CAS客戶端的驗證之后,CAS服務(wù)端將驗證后的用戶信息傳輸給CAS客戶端(目標(biāo)應(yīng)用),同時也可根據(jù)配置返回該應(yīng)用下的附屬用戶信息,如用戶擁有的該應(yīng)用下的角色、權(quán)限和屬性。目標(biāo)應(yīng)用根據(jù)服務(wù)器返回的用戶信息進(jìn)一步檢查用戶可訪問的資源,適當(dāng)?shù)恼故緲I(yè)務(wù)視圖。

  1. # settings.py 
  2.  
  3. MAMA_CAS_SERVICES = [ 
  4.  
  5.     { 
  6.  
  7.         'SERVICE''.*'
  8.  
  9.         'CALLBACKS': [ 
  10.  
  11.             'base.cas_callbacks.user_profile_attributes'
  12.  
  13.             'security.cas_callbacks.user_security_attributes'
  14.  
  15. # 按需加入回調(diào)函數(shù) 
  16.  
  17.         ] 
  18.  
  19.     } 
  20.  
  21.  
  22.  
  23.  
  24. # user_profile_attributes 
  25.  
  26. # 返回用戶的基本信息 
  27.  
  28. def user_profile_attributes(user, service): 
  29.  
  30. return { 
  31.  
  32. “username”: get_username(user), 
  33.  
  34. name”: get_display_name(user
  35.  
  36.  
  37.  
  38.  
  39. # user_security_attributes.py 
  40.  
  41. # 返回用戶在該業(yè)務(wù)/服務(wù)中擁有的角色、權(quán)限和訪問路徑信息 
  42.  
  43. def user_security_attributes.py(user, service): 
  44.  
  45. return { 
  46.  
  47.     “roles”: get_roles(service, user), 
  48.  
  49. “permissions”: get_permissions(service, user), 
  50.  
  51. “urls”: get_urls(service, user
  52.  

 

四、ACL使用技術(shù)和實現(xiàn)

在現(xiàn)代企業(yè),尤其是互聯(lián)網(wǎng)企業(yè)中,產(chǎn)品業(yè)務(wù)繁多,對數(shù)據(jù)安全、訪問控制都提出了很高的要求,基于用戶組織結(jié)構(gòu)、匯報線等傳統(tǒng)的分組模式已經(jīng)無法適應(yīng)和滿足多變的互聯(lián)網(wǎng)扁平化管理模式的需要,因此我們選擇了基于角色和權(quán)限的動態(tài)分組來設(shè)計和實現(xiàn)企業(yè)中不用應(yīng)用可以共享的安全訪問管理系統(tǒng)。

1.權(quán)限

權(quán)限是針對資源和操作層面的最小安全訪問控制單元,例如:

  • 按資源分,可以設(shè)置訪問設(shè)備A、訪問設(shè)備B等。
  • 按操作分,可以設(shè)置讀取文件,寫入文件等。 

例-1:權(quán)限分類示意圖

2.角色

角色是針對應(yīng)用使用者來設(shè)置的,可分為管理員、技術(shù)人員,普通用戶等,也可按區(qū)域分為華北員工、華南員工等。

角色是一系列權(quán)限的集合,擁有某角色的用戶即應(yīng)當(dāng)自動擁有該角色下包含的權(quán)限。  

圖-7:角色與權(quán)限關(guān)系示意圖

3.屬性

屬性是針對用戶層面下設(shè)置的獨(dú)立的安全設(shè)置,用來擴(kuò)展和實現(xiàn)更細(xì)粒度的自定義安全設(shè)置數(shù)據(jù),如將可訪問數(shù)據(jù)細(xì)化到數(shù)據(jù)庫中的表、數(shù)據(jù)表中的行、列上。

得益于JSON的兼容性,可以很靈活的存儲下這些自定義的結(jié)構(gòu)化數(shù)據(jù)。 

例-2:用戶屬性示意圖

4.ACL實踐

1.數(shù)據(jù)庫建模 

依模型圖可以看出,一個應(yīng)用可劃分多個角色、權(quán)限、路徑和屬性,其中角色又可包含同應(yīng)用下的權(quán)限和路徑。一個用戶對應(yīng)一個ACL,通過將不同的控制單元授予用戶,即可完成用戶的訪問控制配置。

2.配套功能設(shè)計

為了使訪問控制的整套機(jī)制良好的運(yùn)轉(zhuǎn)起來,相關(guān)輔助和配套的功能也是不可缺少的,這里列舉一些我們已經(jīng)投入使用的功能:

(1) 應(yīng)用授權(quán)的分級、分組管理

不用業(yè)務(wù)應(yīng)用的負(fù)責(zé)人可以分別對自己負(fù)責(zé)的業(yè)務(wù)進(jìn)行授權(quán)管理,不會產(chǎn)生沖突和越權(quán)。

(2)應(yīng)用菜單可見性、可訪問性的集成

業(yè)務(wù)應(yīng)用中的各子功能可以和預(yù)先設(shè)置的權(quán)限一對一或一對多映射,具有相應(yīng)權(quán)限的用戶才可以訪問和使用相應(yīng)的功能,前后臺設(shè)置保持同步。

(3)應(yīng)用下角色權(quán)限申請?zhí)峤?、授?quán)變更、授權(quán)完成等自動化流程

基本的權(quán)限審批流減小了業(yè)務(wù)應(yīng)用負(fù)責(zé)人和使用者之間的溝通成本,同時也記錄了權(quán)限獲取的記錄,為日后的安全審計提供了可查的數(shù)據(jù)。

(4)應(yīng)用訪問日志收集、分析、審計、報警等

應(yīng)用訪問日志記錄了更為詳細(xì)的用戶訪問和操作記錄,為安全審計提供了更完備的數(shù)據(jù)支持,同時也支持以一定的邏輯來分析和發(fā)現(xiàn)潛在的安全泄露風(fēng)險。

五、總結(jié)

本文總結(jié)介紹了針對企業(yè)內(nèi)網(wǎng)門戶的統(tǒng)一用戶管理、認(rèn)證和授權(quán)管理的系統(tǒng)的組成部分和常見實現(xiàn)方法。使用開源CAS產(chǎn)品搭建的統(tǒng)一身份認(rèn)證系統(tǒng)和定制化開發(fā)的安全訪問控制系統(tǒng)在企業(yè)內(nèi)網(wǎng)平臺上得到了很好地實踐和應(yīng)用,各部門的業(yè)務(wù)系統(tǒng)也已穩(wěn)定接入并使用,目前運(yùn)行良好。隨著系統(tǒng)規(guī)模和業(yè)務(wù)的增長,這一套平臺仍可能會面臨新的問題和挑戰(zhàn),這也使得我們在收集用戶反饋的同時不斷的進(jìn)行重構(gòu)和增強(qiáng),以保障企業(yè)業(yè)務(wù)的穩(wěn)定發(fā)展。

項目地址:

https://github.com/cangelzz/cas-demo-django-server

https://github.com/cangelzz/cas-demo-flask-client

https://github.com/cangelzz/cas-demo-java-client

作者簡介: 

程曉飛,高級全棧開發(fā)工程師 。2016年加入五阿哥鋼鐵電商平臺(wuage.com),曾供職于知名500強(qiáng)外企,精通Python,Java等多種編程語言及軟件開發(fā)技術(shù),在企業(yè)內(nèi)部Web系統(tǒng)、自動化工具開發(fā)方面有多年經(jīng)驗。

最后給自己代個鹽~~歡迎大家有空時翻下我牌子(知乎專欄“開發(fā)運(yùn)維”https://zhuanlan.zhihu.com/idevops),看看之前的文章,再點(diǎn)個贊唄,順便關(guān)注下。 

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2024-02-22 14:01:13

2013-04-26 15:13:49

企業(yè)漏洞漏洞收集

2013-04-28 10:51:09

企業(yè)漏洞漏洞收集平臺

2016-10-12 15:11:56

2018-05-30 12:00:55

私有云云計算數(shù)據(jù)

2013-04-28 11:00:08

2023-01-31 08:26:57

企業(yè)服務(wù)整合

2017-12-10 20:53:56

Docker持續(xù)交付容器

2014-06-10 11:12:13

控管平臺數(shù)據(jù)

2015-06-23 14:49:22

2013-11-07 14:12:36

遠(yuǎn)程控制IT管理

2021-07-15 10:49:08

數(shù)據(jù)平臺企業(yè)

2020-09-11 19:20:18

云計算企業(yè)管理

2014-06-04 10:34:17

惠普云計算IT服務(wù)

2018-04-27 13:11:02

數(shù)據(jù)平臺分析數(shù)據(jù)整合

2014-05-15 17:47:12

企業(yè)移動化

2023-05-15 18:33:09

得物前端巡檢

2022-03-31 13:56:06

數(shù)字化轉(zhuǎn)型數(shù)字技術(shù)企業(yè)

2020-07-20 10:40:31

云計算云平臺IT

2019-11-06 10:43:20

HBaseSpark數(shù)據(jù)處理平臺
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號