iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0

前言

昨天我們談到「站哨」與「口令」的比喻,今天要更進一步,來解釋大家最容易搞混的兩個詞:

Authentication(認證)、Authorization(授權)

  • Authentication(認證):你到底是誰?
  • Authorization(授權):你能做什麼?

這兩個詞在中文裡通常被翻譯成「認證 / 授權」,但光看字面其實很容易混淆,我自己每次看都會搞錯。

所以我們今天就用幾個例子來讓大家徹底搞懂。

生活案例1:公司門禁系統

假設你要進公司大樓,流程可能會長這樣:

  1. 刷卡 → 辨識你是誰
    • 這件事情就是 Authentication(認證)
  2. 進到公司後 → 只能進自己部門的辦公室
    • 這是 Authorization(授權)
    • 就算你是員工,卡片的權限可能只能開「業務部門」的門,HR 部門的門禁還是進不去。

生活案例2:軍營口令

大家還還記得昨天開場的「口令」故事嗎?

  • 站哨人員先問:「口令是什麼?」 → 認證(Authentication)
  • 口令正確後,他還會看你的身份:
    • 如果你是長官 → 放行,甚至敬禮
    • 如果你是普通士兵 → 檢查後才放行
    • 如果你是陌生人 → 直接扣留

這裡的「不同身份待遇」就是 授權(Authorization)

程式案例:API 呼叫

來看看在 Web 系統裡的對應:

  1. Authentication(認證) → 判斷你是誰
    • 使用者登入,輸入帳號密碼。
    • 系統確認帳號密碼正確 → 「這個人確實存在」。
  2. Authorization(授權) → 判斷你能做什麼
    • 使用者登入成功,但嘗試呼叫 /admin/deleteUser API。
    • 系統檢查使用者角色 → 如果不是 ADMIN → 拒絕存取。

常見的認證與授權方式

在 Web 開發中,認證「驗明正身」的方法,而這個認證可以由以下形式存在:

  • Cookie(Session 機制)

    登入後,伺服器幫你記住,之後靠 Cookie 就能認出你。

  • Token(憑證)

    不依靠伺服器記憶,而是每次請求都帶著 Token,伺服器驗證後才放行。

  • JWT(JSON Web Token)

    一種「自帶資訊」的 Token,裡面直接寫明使用者 ID、角色等,驗證簽名後就能判斷是否可信。

  • OAuth / OIDC

    幫你問別人(Google、Facebook):「這個人是誰?」讓外部身份提供者處理認證。

總結

到這裡,我們已經了解了授權跟認證的觀念,以及現今主流的在Web的認證機制。

今天的重點可以這樣總結:

  • Authentication = 你是誰(門口守衛、登入驗證)
  • Authorization = 你能做什麼(進哪個房間、操作哪個 API)

這兩者常常同時出現,但務必要分清楚:

  • 如果只有 Authentication → 系統只知道「你是誰」,卻不知道「能做什麼」,就像大家都能進公司大樓,但可能亂闖辦公室。
  • 如果只有 Authorization → 系統假設「你已經登入」,但卻沒有確認帳號密碼,這就等於大門洞開,完全不安全。

今天就到這裡了,那明天我們要來看程式上,第一個實際的驗證方式:

Basic Authentication(基本認證) —— 目前來說,最古老,卻依然存在的帳密傳輸方式。

明天我們會先談概念,之後再進入 Spring Boot Security 的實作。

感謝大家的收看,今天就分享到這裡,我們明天見!


上一篇
Day 1 系列介紹與學習目標
下一篇
Day 3 Basic Authentication (概念篇)
系列文
「站住 口令 誰」關於資安權限與授權的觀念教學,以Spring boot Security框架實作3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言