1. 程式人生 > >用Python建設企業認證和許可權控制平臺

用Python建設企業認證和許可權控制平臺

目前大家對Python的瞭解更多來源是資料分析、AI、運維工具開發,在行業中使用Python進行web開發,同樣也是非常受歡迎的,例如:FaceBook,豆瓣,知乎,餓了麼等等,本文主要是介紹是利用Python進行web開發企業統一使用者認證和許可權控制平臺,提供使用者管理、認證和許可權接入的能力,避免各個系統重複建設造成資源的浪費。

企業內網,建立在企業內部,為員工提供資訊的共享和交流,為業務提供運營和管理的支撐,已是當今企業資訊化建設必不可少的一個專案。隨著企業的規模越來越大,業務越來越廣,系統建設就顯得尤為重要。

統一認證系統是企業內網系統建設的基礎,主要實現使用者管理、身份認證、許可權管理和單點登入等功能,以解決企業內網系統建設過程中使用者定義模糊、使用者身份組織零亂、交叉許可權管理和應用系統出口多樣性等棘手的問題。

基於此,五阿哥運維技術團隊基於Python建設了統一認證(BUC:Back User Center)和許可權控制(ACL:Access Control List)平臺,這個系統技術架構圖如下:

圖片描述

系統的功能

1.使用者管理

在企業中,每個使用者都有一個唯一的賬號進行登入,使用者的賬號和個人身份資訊(包含姓名、郵件等公共屬性)會集中儲存在內網統一認證系統裡。但對於同一個使用者在外部系統中的賬號,如微信、釘釘、Tower等第三方系統,統一認證系統也可以通過定時同步或實時查詢等方式獲取到使用者的資訊。

2.安全管理

對於儲存在企業內網中的使用者賬號進行認證是比較方便的,對於儲存在外部系統中的使用者賬號,可以通過定時同步或實時驗證等方式來驗證使用者的鑑權,最終統一以唯一的身份使使用者登入進入系統。

同時,企業內部存在多個不同的業務應用,以所有應用均接入統一認證平臺為基礎,各個業務系統的使用者認證採用單點登入認證模式,一次登入即可在各個業務子系統中完成自動認證並獲得相關授權。

3.應用管理

不同的業務系統會對使用者進行不同的角色劃分,不同的角色又會劃分出細粒度的許可權。角色許可權在統一認證系統中儲存,在一個地方就可以完成使用者授權資訊的設定。

4.系統接入

支援各種技術棧的系統接入,包含Java和Python等,其中各技術棧的SDK可以在Github專案中找到。

5.三方應用

第三方應用,包含郵箱,VPN,無線等直接進行SSO登入。

6.系統監控

對系統執行、操作、會話進行監控,保障在受到外部或者內部攻擊時,能夠及時發現,進行例項回溯。

7.系統審計

對平臺所有操作進行審計,在出現系統許可權錯亂或者安全問題的時候,對平臺操作進行審計。

系統架構設計

1.介面設計

企業內網的統一認證平臺建議基於B/S模式設計,後端使用Django框架以快速開發,用DB+LDAP方式完成使用者各類資訊的儲存,保障儲存和查詢效率。 統一認證的核心問題是鑑權中心和各子系統之間的通訊介面問題,使用者認證介面協議可以基於標準化HTTP/HTTPS方式實現,並對外提供不同語言的SDK(如Python CAS庫、Java Web過濾器等),使得第三方業務系統的接入不完全依賴於特定的開發環境。

2.安全設計

對於接入系統,認證中心介面協議呼叫採用HTTPS傳輸的方式,通訊安全問題將轉化到HTTPS傳輸的安全性問題上,而對於HTTPS通道的攻擊,可以由單獨的網路掃描模組專門負責監控。

對於統一認證和SSO介面引數的資訊保安,一方面網站可採用專有加密演算法對引數內容進行加密,另一方面,可以採用IP認證策略來保證對介面雙方的信任,系統通過通道安全和資訊加密雙保險的措施來保證統一認證體系的介面安全。

同時系統配有全方面的應用監控和訪問日誌的審計,當機器發生異常情況或日誌審計檢測到有可疑入侵行為時,會自動以多種方式通知到運維工程師和相關負責人。

BUC使用技術和實現

1.使用者管理

通常在企業中,每個使用者擁有一個唯一的身份標識,即使用者名稱。同時使用者在其他內網或外部應用也存在著對應的使用者,如果能使用同一個使用者身份最為方便;獨立的使用者可以通過關聯不同的系統的使用者使之對外呈現為一個使用者。使用者可以在不同的應用系統中使用,這一切的基礎是有一箇中央的系統來儲存和管理這些使用者。常見的解決方案有Windows活動目錄和LDAP。

(1)Windows活動目錄域服務

使用 Active Directory(R) 域服務 (AD DS) 伺服器角色,可以建立用於使用者和資源管理的可伸縮、安全及可管理的基礎機構,並可以提供對啟用目錄的應用程式(如 Microsoft(R) Exchange Server)的支援。

圖片描述

AD的功能,來自微軟的介紹

AD DS 提供了一個分散式資料庫,該資料庫可以儲存和管理有關網路資源的資訊,以及啟用了目錄的應用程式中特定於應用程式的資料。 執行 AD DS 的伺服器稱為域控制器。 管理員可以使用 AD DS 將網路元素(如使用者、計算機和其他裝置)整理到層次內嵌結構。內嵌層次結構包括 Active Directory 林、林中的域以及每個域中的組織單位 (OU)。

域模式的最大好處就是單一的網路登入能力,使用者只要在域中有一個賬戶,就可以在整個網路中漫遊。活動目錄服務增強了信任關係,擴充套件了域目錄樹的靈活性。活動目錄把一個域作為一個完整的目錄,域之間能夠通過一種基於Kerberos認證的可傳遞的信任關係建立起樹狀連線,從而使單一賬戶在該樹狀結構中的任何地方都有效,這樣在網路管理和擴充套件時就比較輕鬆。

同時,活動目錄服務把域又詳細劃分成組織單元。組織單元是一個邏輯單元,它是域中一些使用者和組、檔案與印表機等資源物件的集合。組織單元中還可以再劃分下級組織單元,下級組織單元能夠繼承父單元的訪問許可權。每一個組織單元可以有自己單獨的管理員並指定其管理許可權,它們都管理著不同的任務,從而實現了對資源和使用者的分級管理。活動目錄服務通過這種域內的組織單元樹和域之間的可傳遞信任樹來組織其信任物件,為動態活動目錄的管理和擴充套件帶來了極大的方便。

(2)LDAP技術

輕型目錄存取協定(英文:Lightweight Directory Access Protocol,縮寫:LDAP)是一個開放的,中立的,工業標準的應用協議,通過IP協議提供訪問控制和維護分散式資訊的目錄資訊。

目錄服務在開發內部網和與網際網路程式共享使用者、系統、網路、服務和應用的過程中佔據了重要地位。例如,目錄服務可能提供了組織有序的記錄集合,通常有層級結構,例如公司電子郵件目錄。同理,也可以提供包含了地址和電話號碼的電話簿。

圖片描述

LDAP目錄樹圖示,來自網路

LDAP協議是跨平臺的和標準的協議,因此應用程式就不用為LDAP目錄放在什麼樣的伺服器上操心了。實際上,LDAP得到了業界的廣泛認可,因為它是Internet的標準。廠商都很願意在產品中加入對LDAP的支援,因為他們根本不用考慮另一端(客戶端或服務端)是怎麼樣的。

LDAP伺服器可以是任何一個開放原始碼或商用的LDAP目錄伺服器(或者還可能是具有LDAP介面的關係型資料庫),因為可以用同樣的協議、客戶端連線軟體包和查詢命令與LDAP伺服器進行互動。

與LDAP不同的是,如果軟體廠商想在軟體產品中整合對DBMS的支援,那麼通常都要對每一個數據庫伺服器單獨定製。不像很多商用的關係型資料庫,你不必為LDAP的每一個客戶端連線或許可協議付費。大多數的LDAP伺服器安裝起來很簡單,也容易維護和優化。

(3)使用者管理實踐

根據國內企業辦公網路的實際情況,使用者計算機通常為Windows系統,通通接入到Windows活動目錄中進行管理。而且Windows活動目錄相容LDAP協議,我們使用活動目錄作為統一儲存使用者資訊的中央系統,再通過LDAP協議使用程式訪問域控制器將使用者資訊同步到統一認證伺服器中。

圖片描述

企業內部系統基本結構

由上圖架構所示,一方面常見的辦公系統(如程式碼倉庫、Wiki等)自身即支援LDAP認證,通過配置Windows AD中的目錄/使用者搜尋規則即完成對登入使用者的認證;另一方面自行開發的業務系統通過中央認證伺服器提供的介面間接的對Windows AD進行登入使用者的認證,即一個使用者,一套密碼,在多個系統中都可使用。

# auth.py
class ActiveDirectoryAuthenticationBackEnd:
    def authenticate(self, username, password, request=None):
        if not username or not password:
            return None
        try:
            # 建立同域控的連線
            server = Server(settings.AD_SERVER_NAME, use_ssl=True)
            # 驗證使用者使用的使用者名稱和密碼
            conn = Connection(server, "%s\\%s" % (settings.AD_DOMAIN, username), password, auto_bind=True,                           authentication=NTLM)
            # 認證通過,返回系統中註冊的使用者,不存在則建立
            user = conn.bound and self.get_or_create_user(username, conn) or None
            return user
        except LDAPBindError:
            return None

    def get_or_create_user(self, username, conn=None):
        try:
            user = User.objects.get(username=username)
        except User.DoesNotExist:
            if conn is None:
                return None
            # 從域控向中央認證系統中同步註冊一個新使用者
            if conn.search(USER_BASE_DN, "(sAMAccountName=%s)" % username, SUBTREE, attributes=["sn", "givenName"]):
                result = conn.response[0]["attributes"]
                user = User(username=username)
                user.first_name = result["givenName"]
                user.last_name = result["sn"]
                user.email = "%[email protected]%s" % (username, settings.AD_EMAIL_HOST)
                user.save()
            else:
                return None
        return user

2.身份認證

(1)通過外部應用認證

外部應用,如即時通訊軟體釘釘等,這些應用存有單獨的一套使用者憑證,通過應用提供的免登服務,將應用中的使用者與統一認證伺服器中的使用者進行一一對應,當用戶在外部應用中登入後,自動獲得在企業內應用的已登入狀態。

(2)通過TOTP動態驗證碼認證

OTP (One-Time Password) ,一次性密碼,也稱動態口令。它是使用密碼技術實現在客戶端和伺服器之間共享祕密的一種認證技術,是一種強認證技術,是增強目前靜態口令認證的一種非常方便的技術手段,是一種重要的雙因素認證技術。

TOTP (Time-base One-Time Password) ,基於時間的一次性密碼,也稱時間同步的動態密碼。當在一些使用者不方便輸入密碼或者忘記密碼的場景中,我們可以使用TOTP進行認證。伺服器和使用者各自保管共同的金鑰,通過比對基於時間分片與雜湊計算出的動態數字驗證碼即可完成對使用者身份的認證。主流實現為Google Authenticator(Google身份驗證器),阿里的身份寶也相容該演算法。
圖片描述

TOTP演算法圖示

(3)雙因子認證

雙因子認證(Two-Factor Authentication)是指結合密碼以及實物(信用卡、SMS手機、令牌或指紋等生物標誌)兩種元素對使用者進行認證的方法。

圖片描述

動態驗證碼流程圖示

結合上面使用的TOTP驗證碼,對於安全級別較高的應用或資源路徑、或是系統探測到風險較高的操作時,即可以對使用者重定向至雙因子認證頁面,進一步保障系統安全。

3.單點登入

主要實現方式:

(1)共享 cookie

利用同一域名下的cookie共享為基礎,將session id寫入共享cookie,在實現了後臺session共享儲存和訪問後,不同的應用之間即實現了單點登入。

(2)Broker-based (基於經紀人)

在一個基於經紀人的 SSO 解決方案中,有一個集中的認證和使用者帳號管理的伺服器。經紀人能被用於進一步請求的電子的身份存取。中央資料庫的使用減少了管理的代價,併為認證提供一個公共和獨立的”第三方”。例如 Kerberos 、 Sesame 、 IBM KryptoKnight (憑證庫思想 ) 等。

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

在這種解決方案中,有一個自動地為不同的應用程式認證使用者身份的代理程式。這個代理程式需要設計有不同的功能。比如,它可以使用口令表或加密金鑰來自動地將認證的負擔從使用者移開。代理人被放在伺服器上面,在伺服器的認證系統和客戶端認證方法之間充當一個 ” 翻譯 ” ,例如 SSH 等。

(4)Token-based

口令認證,比如 FTP 、郵件伺服器的登入認證,這是一種簡單易用的方式,實現一個口令在多種應用當中使用。

  • 基於閘道器
  • 基於 SAML
  • Ticket-based(基於票據)

4.BUC實踐

在我們的內網應用中,最終選擇了CAS協議作為單點登入的方案。CAS(Central Authentication Service)是 Yale 大學發起的一個企業級的、開源的專案,旨在為 Web 應用系統提供一種可靠的單點登入解決方法。CAS開始於2001年,並在2004年12月正式成為JA-SIG的一個專案。

CAS的主要特點有:

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

(1)登入驗證流程

圖片描述

使用者、CAS客戶端、服務端三方互動過程
# urls.py
# 在配置檔案中將/cas 路徑掛載至根路徑,即可通過/cas/login來訪問中央認證頁面,後臺的認證過程會通過已有的認證服務進行
urlpatterns = [
……
url(r"^cas/", include("mama_cas.urls", namespace="cas")),
……
]

(2)安全擴充套件

當CAS服務端完成了對使用者和CAS客戶端的驗證之後,CAS服務端將驗證後的使用者資訊傳輸給CAS客戶端(目標應用),同時也可根據配置返回該應用下的附屬使用者資訊,如使用者擁有的該應用下的角色、許可權和屬性。目標應用根據伺服器返回的使用者資訊進一步檢查使用者可訪問的資源,適當的展示業務檢視。

# settings.py
MAMA_CAS_SERVICES = [
    {
        'SERVICE': '.*',
        'CALLBACKS': [
            'base.cas_callbacks.user_profile_attributes',
            'security.cas_callbacks.user_security_attributes',
# 按需加入回撥函式
        ]
    }
]
# user_profile_attributes
# 返回使用者的基本資訊
def user_profile_attributes(user, service):
return {
“username”: get_username(user),
“name”: get_display_name(user)
}
# user_security_attributes.py
# 返回使用者在該業務/服務中擁有的角色、許可權和訪問路徑資訊
def user_security_attributes.py(user, service):
return {
    “roles”: get_roles(service, user),
“permissions”: get_permissions(service, user),
“urls”: get_urls(service, user)
}
#

ACL使用技術和實現

在現代企業,尤其是網際網路企業中,產品業務繁多,對資料安全、訪問控制都提出了很高的要求,基於使用者組織結構、彙報線等傳統的分組模式已經無法適應和滿足多變的網際網路扁平化管理模式的需要,因此我們選擇了基於角色和許可權的動態分組來設計和實現企業中不用應用可以共享的安全訪問管理系統。

1.許可權

許可權是針對資源和操作層面的最小安全訪問控制單元,例如:

按資源分,可以設定訪問裝置A、訪問裝置B等。
按操作分,可以設定讀取檔案,寫入檔案等。

圖片描述

例-1:許可權分類示意圖

2.角色

角色是針對應用使用者來設定的,可分為管理員、技術人員,普通使用者等,也可按區域分為華北員工、華南員工等。

角色是一系列許可權的集合,擁有某角色的使用者即應當自動擁有該角色下包含的許可權。

圖片描述

圖-7:角色與許可權關係示意圖

3.屬性

屬性是針對使用者層面下設定的獨立的安全設定,用來擴充套件和實現更細粒度的自定義安全設定資料,如將可訪問資料細化到資料庫中的表、資料表中的行、列上。

得益於JSON的相容性,可以很靈活的儲存下這些自定義的結構化資料。

圖片描述

使用者屬性示意圖

ACL實踐

資料庫建模

圖片描述

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

配套功能設計

為了使訪問控制的整套機制良好的運轉起來,相關輔助和配套的功能也是不可缺少的,這裡列舉一些我們已經投入使用的功能:

(1)應用授權的分級、分組管理

不用業務應用的負責人可以分別對自己負責的業務進行授權管理,不會產生衝突和越權。

(2)應用選單可見性、可訪問性的整合

業務應用中的各子功能可以和預先設定的許可權一對一或一對多對映,具有相應許可權的使用者才可以訪問和使用相應的功能,前後臺設定保持同步。

(3)應用下角色許可權申請提交、授權變更、授權完成等自動化流程

基本的許可權審批流減小了業務應用負責人和使用者之間的溝通成本,同時也記錄了許可權獲取的記錄,為日後的安全審計提供了可查的資料。

(4)應用訪問日誌收集、分析、審計、報警等

應用訪問日誌記錄了更為詳細的使用者訪問和操作記錄,為安全審計提供了更完備的資料支援,同時也支援以一定的邏輯來分析和發現潛在的安全洩露風險。

五、總結

本文總結介紹了針對企業內網門戶的統一使用者管理、認證和授權管理的系統的組成部分和常見實現方法。使用開源CAS產品搭建的統一身份認證系統和定製化開發的安全訪問控制系統在企業內網平臺上得到了很好地實踐和應用,各部門的業務系統也已穩定接入並使用,目前執行良好。隨著系統規模和業務的增長,這一套平臺仍可能會面臨新的問題和挑戰,這也使得我們在收集使用者反饋的同時不斷的進行重構和增強,以保障企業業務的穩定發展。

相關推薦

Python建設企業認證許可權控制平臺

目前大家對Python的瞭解更多來源是資料分析、AI、運維工具開發,在行業中使用Python進行web開發,同樣也是非常受歡迎的,例如:FaceBook,豆瓣,知乎,餓了麼等等,本文主要是介紹是利用Python進行web開發企業統一使用者認證和許可權控制平臺,提供使用者管理

企業級專案|Python進行web開發企業統一使用者認證許可權控制平臺

目前大家對Python的瞭解更多來源是資料分析、Ai、運維工具開發,在行業中使用Python進行web開發,同樣也是非常受歡迎的,例如:FaceBook,豆瓣,知乎,餓了麼等等,本文主要是介紹是利用Python進行web開發企業統一使用者認證和許可權控制平臺,提供使用者管理、認證和許可權接入的能力,

SpringBoot+shiro整合學習之登入認證許可權控制

學習任務目標 使用者必須要登陸之後才能訪問定義連結,否則跳轉到登入頁面。 對連結進行許可權控制,只有噹噹前登入使用者有這個連結訪問許可權才可以訪問,否則跳轉到指定頁面。 輸入錯誤密碼使用者名稱或則使用者被設定為靜止登入,返回相應json串資訊 匯

Spring Boot 整合Shiro實現登陸認證許可權控制

我在做畢設的時候,使用了Shiro作為專案中的登陸認證和許可權控制。 下面是我專案中如何實現整合shiro的學習記錄。 匯入shiro依賴包到pom.xml <!-- Shiro依賴 --> <dependency>

Spring Boot 2.X(十八):整合 Spring Security-登入認證許可權控制

前言 在企業專案開發中,對系統的安全和許可權控制往往是必需的,常見的安全框架有 Spring Security、Apache Shiro 等。本文主要簡單介紹一下 Spring Security,再通過 Spring Boot 整合開一個簡單的示例。 Spring Security 什麼是 Spring Se

DRF之版本控制認證許可權元件

一、版本控制組件 1、為什麼要使用版本控制 首先我們開發專案是有多個版本的當我們專案越來越更新,版本就越來越多,我們不可能新的版本出了,以前舊的版本就不進行維護了像bootstrap有2、3、4版本的,每個版本都有它對應的url,https://v2.bootcss.com/ 、 https://v3.b

SpringBoot2.0整合SpringSecurity並實現驗證碼許可權控制

使用SpringBoot2.0 整合SpringSecurity加入kaptcha驗證碼,使用redis實現session共享,請看原始碼,附上資料庫指令碼,絕對可以跑起來,原始碼地址為 1、pom檔案 <?xml version="1.0" encoding=

python爬蟲爬取登陸github

一 利用API簡單爬取 利用GitHub提供的API爬取前十個star數量最多的Python庫 GitHub提供了很多專門為爬蟲準備的API介面,通過介面可以爬取到便捷,易處理的資訊。(這是GitHub官網的各種api介紹)     使用到的庫 import re

Docker registry ssl認證訪問控制

一:實驗環境以及需求 實驗環境:兩臺cnetos7.2版本虛擬機器。(資源允許最好準備三臺,一臺做私有倉庫,一臺做上傳映象伺服器,一臺做下載映象伺服器) 虛擬機器1:192.168.1.200  虛擬機器2:192.168.1.201 伺服器防火牆和selinux關閉。hosts根據實際情況做解析,每

python解決 圖論 多項式的矩陣、特徵值、特徵多項式的相互轉化

馬上就要畢業了,不少的同學都在緊鑼密鼓的寫論文,對於一些數學系或者理科生來說,經常會遇到一些圖論問題,根據圖形來求出這個圖的矩陣、圖的度……那麼我們知道很多的圖形都能轉化成特徵多項式,那麼今天我們就來寫一個程式,使其通過圖形的矩陣來求多項式。 開始 其實大部分數學工具(Matlab)都能

Python 快速實現 HTTP FTP 伺服器

用 Python 快速實現 HTTP 伺服器 有時你需臨時搭建一個簡單的 Web Server,但你又不想去安裝 Apache、Nginx 等這類功能較複雜的 HTTP 服務程式時。這時可以使用 Python 內建的 SimpleHTTPServer 模組快速搭建一個簡單的 HTTP 伺服器。 Si

spring boot 整合shiro(使用者授權許可權控制)

(1) pom.xml中新增Shiro依賴 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId>

python進行圖片處理特徵提取

原文來自:http://www.analyticsvidhya.com/blog/2015/01/basics-image-processing-feature-extraction-python/ 毫無疑問,上面的那副圖畫看起來像一幅電腦背景圖片。這些都歸功於我的

Laravel-使用中介軟體做使用者認證許可權管理

Laravel 中介軟體提供了一種方便的機制來過濾進入應用的 HTTP請求,例如,Laravel包含驗證使用者身份許可權的中介軟體。如果使用者沒有通過身份驗證,中介軟體會重定向到登入頁,引導使用者登入。反之,中介軟體將允許該請求繼續傳遞到應用程式。 當然,除了身份驗證以外

SpringBoot學習筆記(六):SpringBoot實現Shiro登入控制許可權控制

登入模組:在登入時必須呼叫 授權模組:不是一登入就調動,而是當角色許可權控制時才會呼叫 登入控制 環境搭建在上一篇。 資料庫表 表名:role 欄位:id rolename 表名:user 欄位:id username sex roleid 在程式碼中簡歷資料庫表對應的實

OAuth2.0 原理流程及其單點登入許可權控制

單點登入是多域名企業站點流行的登入方式。本文以現實生活場景輔助理解,力爭徹底理清 OAuth2.0 實現單點登入的原理流程。同時總結了許可權控制的實現方案,及其在微服務架構中的應用。 作者:王克鋒 出處:https://kefeng.wang/2018/

laravel利用中介軟體做防非法登入許可權控制

laravel框架的中介軟體非常好用,使得我們的防非法和rbac可以簡單快速的實現 中介軟體就是控制路由的訪問,進行分類並統一管理 1、首先我們開啟artisan輸入下面的命令列,建立一箇中間件檔案

Spring Cloud之路:(七)SpringBoot+Shiro實現登入認證許可權管理

一、Shiro介紹 1、Shiro是什麼? Shiro是Apache下的一個開源專案,我們稱之為Apache Shiro。它是一個很易用與Java專案的的安全框架,提供了認證、授權、加密、會話管理,與 Spring Security 一樣都是做一個許可權的安全框架,但是與Spri

spring boot 1.5.4 整合shiro+cas,實現單點登入許可權控制

1.安裝cas-server-3.5.2 官網:https://github.com/apereo/cas/releases/tag/v3.5.2 注意: 輸入 <tomcat_key> 的金鑰口令 (如果和金鑰庫口令相同, 按回車) ,這裡直接回車,也採用keystore密碼changei

spring-boot(八) springboot整合shiro-登入認證許可權管理

Apache Shiro What is Apache Shiro? Apache Shiro是一個功能強大、靈活的,開源的安全框架。它可以乾淨利落地處理身份驗證、授權、企業會話管理和加密。 Apache Shiro的首要目標是易於使用和理解。安全通常很複雜,甚至讓人感到很痛苦,但是Shiro卻不是