iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
Software Development

用Keycloak學習身份驗證與授權系列 第 4

Day03 - 【入門篇】淺談身份驗證與授權(1)

本系列文之後也會置於個人網站


在「快速開始」的單元中,實際上已經完成了所有身份識別、身份驗證、授權和一些存取控制的流程。

在今天,將會來說說,這些看是相同,卻又有一些不同的名詞。

名詞認識

那麼首先,就先來認識各個名詞的英文吧!

名詞 英文 簡短說明
身份識別 Identification 讓系統知道你是誰
身份驗證 Authentication 讓系統相信你是誰
授權 Authorization 允許他人存取某項資源
存取控制 Access Control 檢驗是否有資格存取某項資源

而我認爲軟體開發上,最重要的是 存取控制 。這直接關係到系統上的資源,但卻無法只存在存取控制,勢必需要身份驗證與授權的配合。這也是爲什麼我們很難將這些分開來看。

已「快速開始」爲例

現在,讓我們把視線重新放回剛弄好的「快速開始」。在這個範例中,已經多少碰觸到了每一塊的概念。首先是身份識別:

身份識別(Identification)

要讓系統知道你是誰,就必須告訴他。在我們一開使「輸入帳號」的時候,其實就是在做這件事情。

身份驗證

然後,你得證明說,你是你聲稱的那個人。這個部分也就是主要確定「你」是誰的活動。爲了達成這個目的,需要知道除了系統外,只有你才知道的資訊(或只有你才擁有的)。
最常見的辨識方式就是「密碼」,此外,近來的生物識別,包含指紋辨識、Face Id、虹膜辨識等,都是在驗證身份。

授權控制

授權控制,英文Authorization,和身份驗證的英文很像。

指的是將某個權限(permission)授予給某人(或某隻程式)的活動。
特別注意的是,授予對象不只限於「自然人」,還包含機器人或應用程式。是我認為最容易搞混的部份。

是的,我們當時要授權的對象,是我們所建立的Client,也就是剛開發完的那個極爲簡單的Web App。還記得你同意過他存取ProfileEmail等資訊嗎?

存取控制

最後,雖然我們並不是做控制的部分,但我們所開發的Web App確實在做存取資源的部分。這也是在最後的畫面,我們可以看到是誰登入的原因:


簡單來說,這整個過程:
在決定了 某人(誰) 對於 某項資源 是否有 某種操做的權限。這大概也是這個系列會探討最多的部分。


上一篇
Day02 - 【入門篇】Quick Start(2)
下一篇
Day04 - 【入門篇】淺談身份驗證與授權(2)
系列文
用Keycloak學習身份驗證與授權40

尚未有邦友留言

立即登入留言