iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Security

30 天成為 IAM 達人系列 第 11

Day 11: 身份管理基礎:認證與授權機制(IAM)

  • 分享至 

  • xImage
  •  

身份安全的核心主軸即認證與授權,
認證 (Authentication) 確認當前是否為合法用戶;
授權 (Authorization) 給予適當的系統存取權限,
而現代化的身份安全系統,如何實施有效的認證與授權控管,
即是設計身份安全系統的第一要務。

認證機制 (Authentication)

身份認證的基礎,即為使用者憑證 (Credentials),
透過憑證的輸入、驗證來確認當前登入系統的為合法用戶。
當系統檢查憑證相符時,再予以後段的授權認證,
整體的身份認證過程,可以分一系列的步驟:

  1. 新用戶必須在身份驗證系統建立帳戶,可以是簡單密碼,也可以是實體指紋掃描。
  2. 將使用者憑證加密保存在目錄或資料庫,同時透過唯一識別ID和其他身份屬性相連。
  3. 當用戶登入系統時,驗證用戶ID與憑證是否相符。
  4. 即使是非人類帳號(即API),也可以完成身份認證驗證過程才予以存取API

不同的認證系統使用不同的認證機制,常見的類型包括:

  • 單因素身份驗證
  • 多因素身份驗證或雙重身份驗證
  • 條件式身份驗證
  • 無密碼身份驗證

其中身份認證最為重要的即是 SSO 的使用與實踐:

SAML/SAML 2.0
安全斷言標記語言(SAML)是歷史最悠久的開放標準協議,
用於在身分提供者 (Idp) 和多個服務提供者 (SP) 之間交換加密的身份驗證和授權資料。
由於 SAML 提供更好的安全控制,也廣泛運用於企業或政府領域實現 SSO。

OpenID 連線 (OIDC)
OICD 是另一種開放標準協議,透過 REST API和 JSON 身份驗證令牌,
使網站或應用程式能夠透過另一個服務提供者對使用者進行身份驗證來授予使用者存取權限。

OICD 位於 OAuth 之上,主要用於實現第三方應用程式,例如社交登入。
作為一種輕量級的實現,OAuth/OIDC 通常與 SAML 結合使用,
用於跨軟體即服務 (SaaS)和雲端應用程式、行動應用程式和物聯網 (IoT)裝置實現 SSO。

授權機制 (Authorization)

完成身份認證之後,緊接而來即為授權階段,
而授權方式與傳統依賴使用者名稱和密碼機制不同之處在於,
OAuth 是一種基於存取權杖 (Token) 的授權協定。
通過存取令牌來確立或允許應用程式存取特定資源的資訊。
而 OAuth 協定即是定義授權請求流程中每個構建如何批准、定義和管理存取權杖。

OAuth 通常使用 JSON Web 令牌 (JWT) 標準溝通,以下為 OAuth 應用流程:

  1. Mark(資源擁有者)希望允許社群媒體網站(用戶端)存取自己的電子郵件聯絡人(資源)
  2. 電子郵件 (例如 Gmail) 授權伺服器提示 Mark 同意此社群網站存取
  3. 收到 Mark 同意後,授權伺服器向社交媒體網站提供存取權杖 (JWT Token)
  4. 社群媒體網站向儲存 Mark 的電子郵件帳號資訊的資源伺服器提供存取權杖
  5. 資源伺服器識別存取權杖並授予社交媒體網站存取 Mark 的電子郵件聯絡人的權限,且由於存取權杖包含 Mark 同意授權的範圍,因此社群媒體網站無法存取 Mark 帳戶中的任何其他資料。

小結:SSO v.s. OAuth

單一登入(SSO) 屬於使用者身份驗證協議而 OAuth 則是授權協議。
SSO 通常係身分識別提供者(IdP)採用 XML 格式的安全斷言標記語言(SAML),
進而採用使用者名稱和密碼,或雙因子/多因子驗證使用者數位身分,
而 OAuth 則不會對使用者進行身份驗證,但會授權他們存取系統資源,
實務上 SSO 有時也會使用 OAuth 為經過驗證的使用者提供對企業資源的存取管控。

因此在日常普遍使用資訊系統的背後,
基本上即是透過這些技術協定來構成現代系統的身份安全基石。


上一篇
Day 10: 身份管理基礎:目錄服務(Directory)
下一篇
Day 12: 身份管理基礎:身份治理與管理(IGA)
系列文
30 天成為 IAM 達人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言