本文提供一個以Microsoft Entra ID(原Azure AD)與阿里雲進行角色SSO的樣本。配置完成後,您將可以使用Microsoft Entra ID中的使用者帳號通過SAML SSO的方式登入到阿里雲,並臨時扮演阿里雲RAM角色。
在決定是否要在您的環境中配置角色SSO之前,請確認您要使用的雲端服務是否支援使用RAM角色:支援STS的雲端服務。
應用情境
在本樣本中,企業擁有一個阿里雲帳號和一個Microsoft Entra ID租戶。在Microsoft Entra ID租戶中,您有一個管理使用者(已授予全域管理員許可權)和一個企業員工使用者(UPN為ssotest01@example.onmicrosoft.com)。您希望經過配置,使企業員工使用者(ssotest01@example.onmicrosoft.com)在登入Microsoft Entra ID後,通過角色SSO訪問阿里雲。
配置角色SSO不影響RAM使用者的正常登入,這意味著使用者可以從IdP進行角色SSO登入到阿里雲的RAM角色,也可以繼續使用RAM使用者登入(包括密碼、使用者SSO等登入方式)。當需要使用角色SSO進行登入時,您需要從IdP側發起登入(這被稱之為IdP發起的SSO)。角色SSO不支援從SP側(即阿里雲)發起登入。
另外需要注意的是,使用角色SSO並不需要在阿里雲預先建立與IdP中匹配的使用者。使用者通過IdP發起SSO登入後,阿里雲會根據SAML斷言中指定的RAM角色,臨時扮演該角色進行訪問。
關於更多使用者SSO與角色SSO的比較,請參見:SSO方式比較。
準備工作
您需要通過Resource Access Management員(已授予
AliyunRAMFullAccess許可權)執行本樣本阿里雲RAM中的操作。關於如何在RAM中建立使用者並授權,請參見建立RAM使用者、為RAM使用者授權。您需要通過 Microsoft Entra ID 管理使用者(已授予全域管理員許可權)執行本樣本 Microsoft Entra ID 中的操作。關於如何在Microsoft Entra ID中建立使用者並授權,請參見Microsoft Entra ID文檔。
配置流程
在本樣本中,Microsoft Entra ID是身份供應商(IdP),阿里雲RAM是服務提供者(SP)。我們的配置核心是在IdP和SP之間建立雙向的信任關係,並將Microsoft Entra ID上的應用程式角色映射為在阿里雲上配置的RAM角色。
步驟一:在 Microsoft Entra ID 建立公司專屬應用程式。從Microsoft Entra ID應用程式庫中使用Alibaba Cloud Service (Role-based SSO)應用模板來建立公司專屬應用程式程式。
步驟二:在Microsoft Entra ID中配置SAML。在Microsoft Entra ID中將阿里雲角色SSO配置為受信的SAML服務提供者。
步驟三:在阿里雲建立身份供應商。在阿里雲RAM中將Microsoft Entra ID配置為受信的SAML身份供應商。
步驟四:在阿里雲建立RAM角色。在阿里雲RAM中建立信任主體類型為身份供應商的RAM角色。
步驟五:在 Microsoft Entra ID 建立應用角色並分配使用者。在Microsoft Entra ID中為阿里雲角色SSO應用程式建立和配置應用角色,並將測試使用者指派給公司專屬應用程式程式。
驗證 SSO 登入。驗證角色SSO登入是否可以正常工作。
步驟一:在 Microsoft Entra ID 建立公司專屬應用程式
使用Microsoft Entra ID管理使用者登入Azure門戶。
在首頁左上方,單擊
表徵圖。在左側導覽列,選擇。
單擊建立應用程式。
搜尋Alibaba Cloud Service (Role-based SSO)並單擊選擇。
輸入應用程式名稱,然後單擊建立。
本樣本中,使用預設應用程式名稱
Alibaba Cloud Service (Role-based SSO),您也可以自訂應用程式名稱。
步驟二:在Microsoft Entra ID中配置SAML
在Alibaba Cloud Service (Role-based SSO)頁面的左側導覽列,選擇。
單擊SAML。
配置SSO資訊。
在頁面左上方,單擊上傳中繼資料檔案,選擇阿里雲的角色SSO中繼資料檔案後,單擊添加。
說明您可以在新的瀏覽器視窗中通過以下URL擷取中繼資料檔案:
https://signin.alibabacloud.com/saml-role/sp-metadata.xml,並將中繼資料XML檔案另存到本地。在基本SAML配置頁面,配置以下資訊,然後單擊儲存。
標識符(實體 ID):從上一步的中繼資料檔案中自動讀取
entityID的值。回複 URL(判斷提示取用者服務 URL):從上一步的中繼資料檔案中自動讀取
Location的值。中繼狀態:用來配置角色SSO登入成功後跳轉到的阿里雲頁面。此配置為可選項。
說明出於安全原因,您只能填寫阿里巴巴旗下的網域名稱URL作為中繼狀態的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否則配置無效。若不配置,預設跳轉到阿里雲控制台首頁。
在屬性和聲明地區,單擊
表徵圖,檢查是否存在以下兩條聲明。
如果不存在,請單擊添加新的聲明,按下表資訊依次添加兩條聲明。
名稱
命名空間
源
源屬性
Rolehttps://www.aliyun.com/SAML-Role/Attributes屬性
user.assignedroles
RoleSessionNamehttps://www.aliyun.com/SAML-Role/Attributes屬性
user.userprincipalname
在SAML認證地區,單擊下載,擷取聯合中繼資料XML。
步驟三:在阿里雲建立身份供應商
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇。
在角色SSO頁簽,單擊SAML頁簽,然後單擊建立身份供應商。
在建立身份供應商頁面,輸入身份供應商名稱
AAD。單擊上傳中繼資料,上傳在步驟二:在Microsoft Entra ID中配置SAML中下載的聯合中繼資料XML。
單擊建立身份供應商。
點擊建立好的身份供應商
AAD。在基本資料中找到身份供應商的ARN並複製,方便後續配置。
步驟四:在阿里雲建立RAM角色
在RAM控制台的左側導覽列,選擇。
在角色頁面,單擊建立角色。
在建立角色頁面的右上方,單擊切換編輯器。
在編輯器中指定具體的SAML身份供應商。
編輯器支援可視化編輯和指令碼編輯兩種模式,您可以任選其一。以可視化編輯模式為例,您需要在主體中選擇身份供應商類型,點擊編輯。然後指定AAD為身份供應商,身份供應商類型選擇SAML。
在建立角色對話方塊,輸入角色名稱(AADrole),然後單擊確定完成角色建立。
點擊建立好的RAM角色,在基本資料中找到角色的ARN並複製,方便後續配置。
您可以根據需要為RAM角色添加許可權。具體操作,請參見為RAM角色授權。
步驟五:在 Microsoft Entra ID 建立應用角色並分配使用者
在Microsoft Entra ID中建立角色。
管理使用者登入Azure門戶。
在左側導覽列,選擇。
單擊所有應用程式頁簽,然後單擊Alibaba Cloud Service (Role-based SSO)。
在左側導覽列,選擇。
單擊建立應用程式角色。
在建立應用程式角色頁面,配置以下角色資訊,然後單擊應用。
顯示名稱:本樣本中輸入
Admin。允許的成員類型:本樣本中選中使用者/組+應用程式。
值:輸入RAM角色ARN和身份供應商ARN,兩者之間用半形逗號(,)分隔。本樣本中輸入
acs:ram::187125022722****:role/aadrole,acs:ram::187125022722****:saml-provider/AAD。說明請注意這裡的輸入順序必須是
RAM角色ARN,身份供應商ARN。順序錯誤會導致角色SSO登入失敗。說明:輸入備忘資訊。
選中是否要啟用此應用程式角色。
說明如果您需要在Microsoft Entra ID中建立多個角色,請重複上述步驟並設定不同的顯示名稱和應用程式角色值。
將使用者指派給公司專屬應用程式並指定角色。
在左側導覽列,選擇。
在名稱列表下,單擊Alibaba Cloud Service (Role-based SSO)。
在左側導覽列,選擇。
單擊左上方的添加使用者/組。
在添加分配頁面,選擇目標使用者,然後單擊選擇。
確認選擇的角色是否為Admin,如果不是請更換為Admin。然後單擊分配。
說明在實際生產環境中,更加推薦您在Microsoft Entra ID中將使用者加入到使用者組,然後將使用者組分配給公司專屬應用程式程式。
在設定了多個角色的情況下,您可以將不同的使用者組關聯到不同的角色(例如:建立ecs-admin組關聯到ecs-admin角色,oss-admin組關聯到oss-admin角色),以實現更精細化的許可權管控和更高效的使用者管理。
驗證 SSO 登入
角色SSO僅支援從IdP側發起SSO登入,因此您需要從Microsoft Entra ID側進行登入來驗證結果。
擷取使用者訪問URL。
管理使用者登入Azure門戶。
在左側導覽列,選擇。
在名稱列表下,單擊Alibaba Cloud Service (Role-based SSO)。
在左側導覽列,選擇,擷取使用者訪問URL。

使用者(ssotest01@example.onmicrosoft.com)從管理使用者處擷取上述使用者訪問URL,然後在瀏覽器中輸入該URL,使用自己的帳號登入。登入成功後,預設使用者會登入到阿里雲控制台。可以在帳號名前面看到我們定義的RAM角色(
aadrole)。
系統將自動SSO登入並重新導向到您指定的中繼狀態頁面。如果未指定中繼狀態或超出允許範圍,則系統會訪問阿里雲控制台首頁。
進階:配置Microsoft Entra ID與多個阿里雲帳號的角色SSO
假設您有兩個阿里雲帳號(Account1和Account2),您希望經過配置,使得企業員工使用者(ssotest01@example.onmicrosoft.com)在登入Microsoft Entra ID後,通過角色SSO既能訪問阿里雲帳號(Account1),也能訪問阿里雲帳號(Account2)。
在Microsoft Entra ID庫中添加應用程式
Alibaba Cloud Service (Role-based SSO)。具體操作,請參見步驟一:在 Microsoft Entra ID 建立公司專屬應用程式。
配置Microsoft Entra ID SSO。
具體操作,請參見步驟二:在Microsoft Entra ID中配置SAML。
在阿里雲建立身份供應商。
您需要在兩個阿里雲帳號(Account1和Account2)中分別建立身份供應商
AAD。每個阿里雲帳號內的具體操作,請參見步驟三:在阿里雲建立身份供應商。
在阿里雲建立RAM角色。
您需要在兩個阿里雲帳號(Account1和Account2)中分別建立RAM角色,本樣本中假設在阿里雲帳號(Account1)中建立兩個RAM角色,在阿里雲帳號(Account2)中建立一個RAM角色。具體如下:
阿里雲帳號(Account1)的RAM角色:
adminaad和readaad。阿里雲帳號(Account2)的RAM角色:
financeaad。
每個阿里雲帳號內的具體操作,請參見步驟四:在阿里雲建立RAM角色。
將阿里雲RAM角色與Microsoft Entra ID使用者進行關聯。
在Microsoft Entra ID中建立三個應用程式角色,將三個角色指派給使用者(ssotest01@example.onmicrosoft.com)。三個角色的值分別為:
acs:ram::<Account1_ID>:role/adminaad,acs:ram::<Account1_ID>:saml-provider/AADacs:ram::<Account1_ID>:role/readaad,acs:ram::<Account1_ID>:saml-provider/AADacs:ram::<Account2_ID>:role/financeaad,acs:ram::<Account2_ID>:saml-provider/AAD
Microsoft Entra ID使用者通過角色SSO訪問阿里雲。
使用者(ssotest01@example.onmicrosoft.com)登入Azure的我的應用程式頁面,單擊應用程式Alibaba Cloud Service (Role-based SSO)。然後在阿里雲介面上,您需要根據提示選擇要訪問的阿里雲帳號(Account1或Account2)及其角色,從而以角色SSO方式訪問阿里雲。
問題排查
請參見單點登入(SSO)常見問題。