本文提供一個以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
)。