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