iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
Security

30 天成為 IAM 達人系列 第 15

Day 15: 身份管理進階:單一登入 (SSO) 技術

  • 分享至 

  • xImage
  •  

身份安全採用單一登入(SSO)作為串接所有資訊系統的核心基礎,
透過預先整合的工具綁定、身份目錄服務的串接,
讓使用者可以同時擁有存取各個資源系統的便利,
也同時能有單一平台進行整體身份安全活動管控。

今天主要針對單一登入(SSO)技術做比較深入的分享與介紹。

安全斷言標記語言(SAML)

安全性斷言標記語言 (SAML) 是基於 XML 的開放標準,
用於在身分識別提供者 (IdP) 和服務提供者 (SP) 兩方間安全地傳輸身分資料。

  • 身分提供者(Identity Provider)
    執行身份認證並建立使用者身分識別令牌(稱為 SAML 斷言),
    然後將其傳輸到服務提供者(SP),通常令牌會包含使用者屬性,以及系統授權範圍等。
  • 服務提供者(Service Provider)
    信任身分提供者並能夠以加密方式驗證使用者身分令牌。

SAML 技術流程與細節:

  1. 使用者嘗試登入應用程式(SP)
  2. 應用程式(SP)發送請求以透過瀏覽器進行身份驗證(AuthnRequest)
  3. AuthnRequest 可作為查詢字串參數(稱為 SAML redirect 綁定)
  4. IdP 驗證 AuthnRequest 確認使用者是否已通過身份驗證
  5. IdP 建立 SAML 斷言,其中包含使用者的識別資訊
  6. IdP 建立 HTML FORM 將該 AuthnResponse 發佈到 SP 當中
  7. 使用者成功登入應用程式平台

OpenID 連線 (OIDC)

OICD 是另一種開放標準的 "身份認證" 協議,
透過使用 REST API和 JSON 身份驗證令牌,
使網站或應用程式能透過另一個服務提供者(SP),
對使用者進行身份驗證來授予使用者存取權限,
跟 SAML 最大的區別在於採用 JSON 格式封裝身份驗證資訊。

OICD 位於 OAuth 之上,主要用於實現第三方應用程式等社交登入,
OAuth/OIDC 通常與 SAML 結合使用,用於跨軟體即服務 (SaaS),
或是其他雲端應用程式、行動應用程式等實現單一登入 SSO。

OAuth 開放授權 (OAuth)

開放授權(OAuth)是開放的 "身份授權" 標準協議,
可在應用程式之間交換授權資料而無需揭露使用者密碼。
比起 SAML 而言,OAuth 最重要的是能安全地授權部分權限給外部系統。
意即,如果沒有 OAuth 機制,
應用程式間的 API 服務通常會要求驗證存取權限,
藉由傳統驗證程序會要求使用者提供合法認證與授權,

但這帶來幾個問題:

  1. 使用者無法限制該應用程式獲得憑證後執行什麼操作?
  2. 使用者也無法撤銷應用程式存取權限

因此 OAuth 可以透過權杖(token)機制限制該外部系統的實際存取範圍或時間,
也可以透過指定所需的存取範圍,決定是否授予部分或全部請求的存取範圍。
同時權杖也會有時間效期的限制,故也不會有授權無法撤銷的問題。

權杖(Token)的形式,有"隨機索引(Random Index)"或 "JSON Web令牌(JWT)",
兩者都可以提供授權的範圍、標的、時間等,具體差別係:
透過往返查詢 Random Index 確認身份資訊,可以在失效時單純忽略即可,
JWT 透過 JSON 封裝無須往返查詢即可確認身份資訊,但在失效時需有集中式管控機制。

小結

單一登入(SSO) 節省了使用者的時間和麻煩,
尤其組織個別用戶無需每天多次登入多個應用程序,
只需登入一次企業內部網路即可全天訪問他們需要的每個應用程式,
也同時減少更多身份憑證流竄在不同系統的風險與可能,
達到更好的生產力管理與資訊安全風險控管。


上一篇
Day 14: 身份管理基礎:身份編排(Orchestration)
下一篇
Day 16: 身份管理進階:多因子認證 (MFA) 機制
系列文
30 天成為 IAM 達人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言