Authn 是驗證的縮寫,authz 是授權的縮寫。這是身分識別與存取管理(IAM) 世界中兩個獨立但緊密交織的概念。
複製文章連結
在資訊安全中,驗證(縮寫為 authn)和授權 (authz) 是相關但獨立的概念。兩者都是身分識別與存取管理 (IAM) 的重要組成部分。
authn 和 authz 有何不同?簡單地說,authn 與身分或某人是誰相關,而 authz 與權限或某人被允許做什麼相關。
驗證意味著確保一個人或裝置是他們(它們)聲稱的身分(或物品)。領取活動門票的人可能會被要求出示身分證以驗證其身分;同樣,應用程式或資料庫可能希望透過檢查使用者的身分來確保使用者是合法的。驗證可確保資料不會暴露給錯誤的人。
使用者名稱和密碼組合
最常見的驗證方法之一是提示使用者輸入其使用者名稱和密碼。當 Jessica 在瀏覽器中載入她的電子郵件帳戶時,電子郵件服務還不知道她是誰——但是當她在登入表單中輸入使用者名稱和密碼後,該服務就能夠檢查這些認證,驗證她的身分為 Jessica,並讓她登入她的帳戶。
雖然大多數人都熟悉這種類型的驗證,但使用者名稱和密碼不僅可以用於對使用者進行驗證。例如,可以透過這種方式對 API 端點進行驗證。
多重要素驗證 (MFA)
使用者名稱加密碼驗證的問題在於密碼經常會被惡意方猜到或竊取。要求更多其他驗證因素可提高使用者的安全性;此概念稱為多重要素驗證 (MFA)。使用 MFA 時,攻擊者無法僅憑密碼就錯誤地被驗證為合法使用者。
MFA 最常見的實作方式為雙重驗證 (2FA)。如今,許多服務透過要求使用者證明他們擁有簽發的權杖來實作 2FA。有兩種類型的權杖:「軟」權杖,如透過簡訊或行動應用程式傳送給使用者的代碼,以及「硬」權杖,如 USB 金鑰。2FA 和 MFA 也可以使用生物特徵辨識驗證因素(如下所述)。
公開金鑰憑證
公開金鑰驗證比這些其他形式的驗證稍微複雜一些,但如果實作得當,它可以更安全。它使用公開金鑰加密來驗證受到驗證的一方是否擁有正確的私密金鑰。
(請參閱公開金鑰加密如何運作?瞭解公開金鑰和私密金鑰的運作原理。
公開金鑰驗證的最常見用法是在 Transport Layer Security (TLS) 中,它用於對網頁伺服器進行驗證。使用者裝置每次載入使用 HTTPS 的網站時都會執行這種類型的驗證。
公開金鑰驗證也用於相互驗證,即通訊的兩端相互進行驗證,而不僅僅是用戶端對伺服器進行驗證或 Web 服務對使用者進行驗證。物聯網 (IoT) 裝置和 API 端點有時使用這種類型的驗證。
生物特徵辨識驗證
生物特徵辨識驗證僅用於驗證人類身分,其方式為透過根據其已知身體特徵的資料庫檢查某人的身體特徵之一來驗證某人的身分。此類驗證的範例包括面部掃描或視網膜掃描。
授權確定經過驗證的使用者可以看到的內容和執行的操作。想象一下,當銀行客戶在線登入他們的帳戶時會發生什麼。由於他們的身分已通過驗證,因此他們可以看到自己的帳戶餘額和交易歷程記錄,但他們無權查看其他人的帳戶餘額和交易歷程記錄。相反,銀行的經理可以被授權查看任何客戶的財務資料。
同樣,一個人可能是企業的合法雇員,他們可能已經驗證了自己的身分,但這並不意味著他們應該有權存取該企業的所有檔案和資料。例如,非人力資源或會計部門的員工不應該看到每個人的薪酬。
使用者的授權層級決定了他們有權執行的操作;因此,授權動作的常用字詞是「權限」。這個概念的另一個字詞是「特權」。
組織使用某種授權解決方案來允許或封鎖使用者動作。解決方案通常基於使用者的身分來確定允許或封鎖哪些動作;因此,驗證與授權緊密交織在一起。有幾種不同的方法可以確定使用者權限,包括:
在基於角色的存取控制 (RBAC) 中,每個使用者會被指派一個或多個預定角色,且每個角色都有一組指定的權限。
在基於屬性的存取控制 (ABAC) 中,根據使用者的屬性或他們嘗試執行的動作的屬性為使用者指派權限。
在基於規則的存取控制(也簡稱為 RBAC)中,根據一組適用於所有使用者的規則允許或拒絕動作,而不考慮其角色。
OAuth 是將授權從一個服務傳遞到另一個服務的技術標準。OAuth 通常用於雲端服務和 Web 應用程式,讓使用者在一項服務上進行驗證後,就能夠將其授權傳遞給另一項服務。其授權層級通常由識別提供者 (IdP) 確定,這是一項單獨的服務。
OAuth 使單一登入 (SSO) 服務的使用成為可能,利用該服務,使用者登入一次即可存取其所有雲端應用程式。如果不使用 OAuth,則必須在每個應用程式中單獨設定使用者的權限。
Cloudflare Access 是一種驗證解決方案,允許或封鎖使用者跨內部部署、自託管和 SaaS 應用程式執行操作。它與用於 authn 的任何 IdP 整合。Cloudflare Access 還會在授予存取權限之前評估裝置安全狀態,這是實作 Zero Trust 模型的一項重要功能(瞭解有關 Zero Trust 的更多資訊)。