AWS 使用 SAML 2.0(安全斷言標記語言 2.0)支持聯合身份驗證,SAML 2.0 是許多身份驗證提供商 (IdP) 使用的一種開放標准。此功能可實現聯合單一登錄 (SSO),因此用戶可以登錄 AWS 管理控制台或調用 AWS API 操作,而不必為組織中的每個人都創建一個 IAM 用戶。由於可以使用 IdP 的服務而不必編寫自定義身份代理代碼,因此您可以通過使用 SAML 來簡化為 AWS 配置聯合身份驗證的過程。
IAM 聯合支持這些使用案例:
-
允許組織中的用戶或應用程序調用 AWS API 操作的聯合訪問權限。您可以使用組織內生成的 SAML 斷言 (身份驗證響應的一部分) 獲得臨時安全憑證。此方案類似於 IAM 支持的其他聯合方案,如請求臨時安全憑證和關於 Web 聯合身份驗證中介紹的方案。但是,組織中基於 SAML 2.0 的 IdP 可以在運行時處理許多細節功能,以用於執行身份驗證和授權檢查。這是本主題中討論的方案。
-
從組織向 AWS 管理控制台進行基於 Web 的單一登錄 (SSO)。用戶可以登錄組織中由可與 SAML 2.0 兼容的 IdP 托管的門戶網站,選擇轉到 AWS 的選項,即可重定向到控制台,而無需提供其他登錄信息。您可以使用第三方 SAML IdP 建立對控制台的 SSO 訪問,或者可以創建自定義 IdP 來支持外部用戶的控制台訪問。有關構建自定義 IdP 的更多信息,請參閱創建一個使聯合用戶能夠訪問 AWS 管理控制台(自定義聯合代理)的 URL。
使用基於 SAML 的聯合身份驗證來對 AWS 進行 API 訪問
假設您想要為員工提供一種將數據從他們的計算機中復制到備份文件夾的方法。您可以構建一個可在用戶的計算機上運行的應用程序。在后端,該應用程序可在 S3 存儲桶中讀寫對象。用戶沒有直接訪問 AWS 的權限。而應使用以下過程:
-
您組織中的用戶使用客戶端應用程序來請求您組織的 IdP 進行身份驗證。
-
IdP 根據組織的身份存儲對用戶進行身份驗證。
-
IdP 構建一個具有用戶相關信息的 SAML 斷言,並將此斷言發送到客戶端應用程序。
-
客戶端應用程序調用 AWS STS
AssumeRoleWithSAMLAPI,並傳遞 SAML 提供商的 ARN、要代入的角色的 ARN 以及來自 IdP 的 SAML 斷言。 -
API 對客戶端應用程序的響應包括臨時安全憑證。
-
客戶端應用程序使用臨時安全憑證來調用 Amazon S3 API 操作。
配置基於 SAML 2.0 的聯合身份驗證的概述
在使用前面方案和圖表中所述的基於 SAML 2.0 的聯合身份驗證之前,您必須先配置組織的 IdP 和您的 AWS 賬戶,使之相互信任。以下步驟介紹了用於配置此信任的一般過程。組織內部必須有支持 SAML 2.0 的 IdP,例如 Microsoft Active Directory 聯合身份驗證服務 (AD FS,Windows Server 的一部分)、Shibboleth 或其他兼容的 SAML 2.0 提供商。
