本文提供一個以AD FS與阿里雲進行使用者SSO的樣本,協助您理解企業IdP與阿里雲進行SSO的端到端配置流程。本文以在Windows Server 2012 R2 ECS執行個體上搭建的AD FS為例進行介紹。
準備工作
配置SSO登入前,您需要完成以下工作:
在Windows Server 2012 R2 ECS執行個體上搭建以下伺服器。
DNS伺服器:將身份認證請求解析到正確的Federation Service上。
Active Directory網域服務(AD DS):提供對域使用者和域裝置等對象的建立、查詢和修改等功能。
Active Directory Federation Service(AD FS):提供配置SSO信賴方的功能,並對配置好的信賴方提供SSO認證。
重要本文中涉及到Microsoft Active Directory配置的部分屬於建議,僅用於協助理解阿里雲SSO登入的端到端配置流程,阿里雲不提供Microsoft Active Directory配置的諮詢服務。關於如何搭建AD FS,請參見使用Windows執行個體搭建AD域。
規劃配置資料。
雲帳號的預設網域名稱:
secloud.onaliyun.com
。雲帳號下包含RAM使用者:
alice
,其完整的 UPN(User Principal Name)為alice@secloud.onaliyun.com
。建立的Microsoft AD中的AD FS服務名稱:
adfs.secloud.club
。建立的Microsoft AD的網域名稱:
secloud.club
,NETBIOS名為secloud
。RAM使用者
alice
在AD中的UPN:alice@secloud.club
,域內登入也可以使用secloud\alice
。
步驟一:在RAM中將AD FS配置為可信SAML IdP
在瀏覽器中輸入如下地址:
https://adfs.secloud.club/FederationMetadata/2007-06/FederationMetadata.xml
。將中繼資料XML檔案下載到本地。
在RAM控制台的SSO配置時使用下載好的中繼資料檔案。
具體操作,請參見進行使用者SSO時阿里雲SP的SAML配置。
說明如果中繼資料檔案超過大小限制,您可以嘗試刪除
<fed:ClaimTypesRequested>
和<fed:ClaimTypesOffered>
中的所有內容。
步驟二:在AD FS中將阿里雲配置為可信SAML SP
在AD FS中,SAML SP被稱作信賴方。
在伺服器管理員的工具菜單中選擇AD FS管理。
在AD FS管理工具中添加信賴方信任。
為新建立的信賴方設定阿里雲的SAML中繼資料。
阿里雲帳號的SAML服務提供者中繼資料URL可以登入RAM控制台,在左側功能表列,單擊SSO管理,在使用者SSO頁簽下的SSO登入設定地區下查看。AD FS信賴方可以直接配置中繼資料的URL。
完成配置信賴方之後,阿里雲和AD FS就產生了互信,阿里雲會將預設網域名稱為secloud.onaliyun.com
的雲帳號下所有RAM使用者的認證請求轉寄到AD FS:adfs.secloud.club
,AD FS也會接受來自於阿里雲的認證請求並向阿里雲轉寄認證響應。
步驟三:為阿里雲SP配置SAML斷言屬性
為了讓阿里雲能使用SAML響應定位到正確的RAM使用者,SAML斷言中的NameID
欄位取值應為RAM使用者的UPN。
我們需要配置AD中的UPN為SAML斷言中的NameID
。
為信賴方編輯聲明規則。
添加頒發轉換規則。
說明頒發轉換規則(Issuance Transform Rules):指如何將一個已知的使用者屬性,經過轉換後頒發為SAML斷言中的屬性。由於我們要將使用者在AD中的UPN頒發為
NameID
,因此需要添加一個新的規則。聲明規則模板選擇轉換傳入聲明。
編輯規則。
說明由於樣本中的雲帳號裡的UPN網域名稱為
secloud.onaliyun.com
,而AD中的UPN網域名稱為secloud.club
,如果直接將AD中的UPN映射為NameID
,阿里雲將無法匹配到正確的RAM使用者。下面提供幾種設定RAM使用者的UPN與AD使用者的UPN保持一致的方法:
方法一:將AD網域名稱設定為RAM的域別名。
如果AD網域名稱
secloud.club
是一個在公網DNS中註冊的網域名稱。使用者可以將secloud.club
設定為RAM的域別名。關於如何設定域別名,請參見建立並驗證域別名。完成設定後,在編輯規則對話方塊,將UPN映射為名稱ID(
NameID
)。方法二:在AD FS中設定網域名稱轉換。
如果網域名稱
secloud.club
是企業的內網網域名稱,那麼阿里雲將無法驗證企業對網域名稱的所有權。RAM就只能使用預設網域名稱secloud.onaliyun.com
。在AD FS給阿里雲頒發的SAML斷言中必須將UPN的網域名稱尾碼從
secloud.club
替換為:secloud.onaliyun.com
。方法三:將AD網域名稱設定為使用者SSO的輔助網域名稱。
如果網域名稱
secloud.club
是企業的內網網域名稱,那麼阿里雲將無法驗證企業對網域名稱的所有權。您可以將secloud.club
設定為使用者SSO的輔助網域名稱,無需進行網域名稱轉換。關於如何設定輔助網域名稱,請參見進行使用者SSO時阿里雲SP的SAML配置。完成設定後,在編輯規則對話方塊,將UPN映射為名稱ID(
NameID
)。