身份安全採用單一登入(SSO)作為串接所有資訊系統的核心基礎,
透過預先整合的工具綁定、身份目錄服務的串接,
讓使用者可以同時擁有存取各個資源系統的便利,
也同時能有單一平台進行整體身份安全活動管控。
今天主要針對單一登入(SSO)技術做比較深入的分享與介紹。
安全性斷言標記語言 (SAML) 是基於 XML 的開放標準,
用於在身分識別提供者 (IdP) 和服務提供者 (SP) 兩方間安全地傳輸身分資料。
SAML 技術流程與細節:
OICD 是另一種開放標準的 "身份認證" 協議,
透過使用 REST API和 JSON 身份驗證令牌,
使網站或應用程式能透過另一個服務提供者(SP),
對使用者進行身份驗證來授予使用者存取權限,
跟 SAML 最大的區別在於採用 JSON 格式封裝身份驗證資訊。
OICD 位於 OAuth 之上,主要用於實現第三方應用程式等社交登入,
OAuth/OIDC 通常與 SAML 結合使用,用於跨軟體即服務 (SaaS),
或是其他雲端應用程式、行動應用程式等實現單一登入 SSO。
開放授權(OAuth)是開放的 "身份授權" 標準協議,
可在應用程式之間交換授權資料而無需揭露使用者密碼。
比起 SAML 而言,OAuth 最重要的是能安全地授權部分權限給外部系統。
意即,如果沒有 OAuth 機制,
應用程式間的 API 服務通常會要求驗證存取權限,
藉由傳統驗證程序會要求使用者提供合法認證與授權,
但這帶來幾個問題:
因此 OAuth 可以透過權杖(token)機制限制該外部系統的實際存取範圍或時間,
也可以透過指定所需的存取範圍,決定是否授予部分或全部請求的存取範圍。
同時權杖也會有時間效期的限制,故也不會有授權無法撤銷的問題。
權杖(Token)的形式,有"隨機索引(Random Index)"或 "JSON Web令牌(JWT)",
兩者都可以提供授權的範圍、標的、時間等,具體差別係:
透過往返查詢 Random Index 確認身份資訊,可以在失效時單純忽略即可,
JWT 透過 JSON 封裝無須往返查詢即可確認身份資訊,但在失效時需有集中式管控機制。
單一登入(SSO) 節省了使用者的時間和麻煩,
尤其組織個別用戶無需每天多次登入多個應用程序,
只需登入一次企業內部網路即可全天訪問他們需要的每個應用程式,
也同時減少更多身份憑證流竄在不同系統的風險與可能,
達到更好的生產力管理與資訊安全風險控管。