全部產品
Search
文件中心

Resource Access Management:使用AD FS進行使用者SSO的樣本

更新時間:Jul 02, 2024

本文提供一個以AD FS與阿里雲進行使用者SSO的樣本,協助您理解企業IdP與阿里雲進行SSO的端到端配置流程。本文以在Windows Server 2012 R2 ECS執行個體上搭建的AD FS為例進行介紹。

準備工作

配置SSO登入前,您需要完成以下工作:

  1. 在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域

  2. 規劃配置資料。

    • 雲帳號的預設網域名稱: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

  1. 在瀏覽器中輸入如下地址:https://adfs.secloud.club/FederationMetadata/2007-06/FederationMetadata.xml

  2. 將中繼資料XML檔案下載到本地。

  3. 在RAM控制台的SSO配置時使用下載好的中繼資料檔案。

    具體操作,請參見進行使用者SSO時阿里雲SP的SAML配置

    說明

    如果中繼資料檔案超過大小限制,您可以嘗試刪除<fed:ClaimTypesRequested><fed:ClaimTypesOffered>中的所有內容。

步驟二:在AD FS中將阿里雲配置為可信SAML SP

在AD FS中,SAML SP被稱作信賴方

  1. 伺服器管理員工具菜單中選擇AD FS管理

    image

  2. AD FS管理工具中添加信賴方信任

    添加信賴方信任

  3. 為新建立的信賴方設定阿里雲的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

  1. 為信賴方編輯聲明規則

    編輯聲明規則

  2. 添加頒發轉換規則

    說明

    頒發轉換規則(Issuance Transform Rules):指如何將一個已知的使用者屬性,經過轉換後頒發為SAML斷言中的屬性。由於我們要將使用者在AD中的UPN頒發為NameID,因此需要添加一個新的規則。

    頒發轉換規則

  3. 聲明規則模板選擇轉換傳入聲明

    轉換傳入聲明

  4. 編輯規則

    說明

    由於樣本中的雲帳號裡的UPN網域名稱為secloud.onaliyun.com,而AD中的UPN網域名稱為secloud.club,如果直接將AD中的UPN映射為NameID,阿里雲將無法匹配到正確的RAM使用者。

    下面提供幾種設定RAM使用者的UPN與AD使用者的UPN保持一致的方法:

    1. 方法一:將AD網域名稱設定為RAM的域別名

      如果AD網域名稱secloud.club是一個在公網DNS中註冊的網域名稱。使用者可以將secloud.club設定為RAM的域別名。關於如何設定域別名,請參見建立並驗證域別名

      完成設定後,在編輯規則對話方塊,將UPN映射為名稱ID(NameID)。

      編輯規則_方法1

    2. 方法二:在AD FS中設定網域名稱轉換。

      如果網域名稱secloud.club是企業的內網網域名稱,那麼阿里雲將無法驗證企業對網域名稱的所有權。RAM就只能使用預設網域名稱secloud.onaliyun.com

      在AD FS給阿里雲頒發的SAML斷言中必須將UPN的網域名稱尾碼從secloud.club替換為:secloud.onaliyun.com編輯規則_方法2

    3. 方法三:將AD網域名稱設定為使用者SSO的輔助網域名稱。

      如果網域名稱secloud.club是企業的內網網域名稱,那麼阿里雲將無法驗證企業對網域名稱的所有權。您可以將secloud.club設定為使用者SSO的輔助網域名稱,無需進行網域名稱轉換。關於如何設定輔助網域名稱,請參見進行使用者SSO時阿里雲SP的SAML配置

      完成設定後,在編輯規則對話方塊,將UPN映射為名稱ID(NameID)。

      編輯規則_方法3