阿里雲支援基於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方式的適用情境。