阿里云支持基于SAML 2.0和OIDC的SSO(Single Sign On,單點登錄),也稱為身份聯合登錄。本文為您介紹企業如何使用自有的身份系統實現與阿里云的SSO。
SSO基本概念
概念 | 說明 |
身份提供商(IdP) | 一個包含有關外部身份提供商元數據的RAM實體,身份提供商可以提供身份管理服務。
|
服務提供商(SP) | 利用IdP的身份管理功能,為用戶提供具體服務的應用,SP會使用IdP提供的用戶信息。一些非SAML協議的身份系統(例如:OpenID Connect),也把服務提供商稱作IdP的信賴方。 |
安全斷言標記語言(SAML 2.0) | 實現企業級用戶身份認證的標準協議,它是SP和IdP之間實現溝通的技術實現方式之一。SAML 2.0已經是目前實現企業級SSO的一種事實標準。 |
SAML斷言(SAML assertion) | SAML協議中用來描述認證請求和認證響應的核心元素。例如:用戶的具體屬性就包含在認證響應的斷言里。 |
信賴(Trust) | 建立在SP和IdP之間的互信機制,通常由公鑰和私鑰來實現。SP通過可信的方式獲取IdP的SAML元數據,元數據中包含IdP簽發SAML斷言的簽名驗證公鑰,SP則使用公鑰來驗證斷言的完整性。 |
OIDC | OIDC(OpenID Connect)是建立在OAuth 2.0基礎上的一個認證協議。OAuth是授權協議,而OIDC在OAuth協議上構建了一層身份層,除了OAuth提供的授權能力,它還允許客戶端能夠驗證終端用戶的身份,以及通過OIDC協議的API(HTTP RESTful形式)獲取用戶的基本信息。 |
OIDC令牌 | OIDC可以給應用簽發代表登錄用戶的身份令牌,即OIDC令牌(OIDC Token)。OIDC令牌用于獲取登錄用戶的基本信息。 |
客戶端ID | 您的應用在外部IdP注冊的時候,會生成一個客戶端ID(Client ID)。當您從外部IdP申請簽發OIDC令牌時必須使用該客戶端ID,簽發出來的OIDC令牌也會通過 |
驗證指紋 | 為了防止頒發者URL被惡意劫持或篡改,您需要配置外部IdP的HTTPS CA證書生成的驗證指紋。阿里云會輔助您自動計算該驗證指紋,但是建議您在本地自己計算一次(例如:使用OpenSSL計算指紋),與阿里云計算的指紋進行對比。如果對比發現不同,則說明該頒發者URL可能已經受到攻擊,請您務必再次確認,并填寫正確的指紋。 |
頒發者URL | 頒發者URL由外部IdP提供,對應OIDC Token中的 |
臨時身份憑證 | STS(Security Token Service)是阿里云提供的一種臨時訪問權限管理服務,通過STS獲取可以自定義時效和訪問權限的臨時身份憑證(STS Token)。 |
SSO方式
阿里云提供以下兩種SSO方式:
用戶SSO
阿里云通過IdP頒發的SAML斷言確定企業用戶與阿里云RAM用戶的對應關系 。企業用戶登錄后,使用該RAM用戶訪問阿里云資源。更多信息,請參見用戶SSO概覽。
角色SSO
支持基于SAML 2.0和OIDC的兩種角色SSO:
SAML角色SSO:阿里云通過IdP頒發的SAML斷言確定企業用戶在阿里云上可以使用的RAM角色。企業用戶登錄后,使用SAML斷言中指定的RAM角色訪問阿里云資源。請參見SAML角色SSO概覽。
OIDC角色SSO:企業用戶通過IdP簽發的OIDC令牌(OIDC Token),調用阿里云API扮演指定角色并換取角色臨時身份憑證(STS Token),然后使用STS Token安全地訪問阿里云資源。更多信息,請參見OIDC角色SSO概覽。
SSO方式比較
SSO方式 | SP發起的SSO | IdP發起的SSO | 使用RAM用戶賬號和密碼登錄 | 一次性配置IdP關聯多個阿里云賬號 | 多個IdP |
用戶SSO | 支持 | 支持 | 不支持 | 不支持 | 不支持 |
角色SSO | 不支持 | 支持 | 支持 | 支持 | 支持 |
關于用戶SSO與角色SSO的更多比較,請參見SSO方式的適用場景。