等待許久,Synology 在今年五月發表的 DSM 7.2 版本,終於正式開始支援 SAML,也就是說,想串接 SSO 身分驗證登入 Synology DSM 比以前更多樣化了,只要有提供 SAML 服務的 IdP (Identity Provider,身分識別提供者) 都可以串接,尤其是我一直想串接的 Microsoft Entra ID (以下簡稱 ME-ID),也就是前陣子改名的 Azure Active Directory (簡稱 AAD)。

我的測試架構及佈署情境,請先參考如下

  • Synology DSM 7.2
  • Synology DSM 未做任何 網域/LDAP 等其他設定
  • 地端 AD 與 Entra ID (AAD) 整合,AD 帳號同步到雲端
  • 測試 AD 帳號名 aska.nas,一般登入名稱為 aska.nas@askacloud.com
  • Microsoft Entra ID 為免費版授權 (來自 Microsoft 365 商務基本版隨附)

設定重心分三大塊

1. 在 ME-ID (AAD) 新增 SAML SSO 設定在企業應用程式

登入到 Microsoft Entra admin center,或 Azure Portal 選擇 Microsoft Entra ID。(以下示範均從 ME admin center 操作)

新增前,又要再提醒一次,請確認

  • 已使用最少具有新增企業應用程式之權限的帳號
  • 已登入或切換到正確的 Tenant (租用戶)
    如果一個人管多個 Tenant,很容易一開始就設定在錯誤的 Tenant 上

選擇 [應用程式] \ [企業應用程式],點擊 [新增應用程式]

點擊 [建立您自己的應用程式],在右邊窗格輸入欲創建的名稱,例如「SSO - Synology NAS」,然後點擊 [建立]

在新增的企業應用程式,選擇 [使用者和群組],設定可存取此企業應用程式的使用者或群組。用另一個方式來說,就是允許可登入 Synology DSM 的使用者或群組。

點擊上方的 [新增使用者/群組]

於此頁面,新增預備存取的使用者帳號或群組。

如果在畫面上看到「Groups are not available for assignment due to your Active Directory plan level. You can assign individual users to the application.」,且無法使用群組方式指派權限,代表你的 ME-ID 目前 P1 或 P2 付費版本。(20231022: 補充修正,僅付費版本可用群組方式指派權限)

若出現該訊息,單純無法採用群組方式做權限指派,但仍可如下圖方式,以加入使用者方式完成指派。 (感謝本文發表後,網友針對此處說明給予的意見回饋,已補充修正)

接著回到左側選單,選擇 [單一登入],點擊 [SAML]

在第一步的 [基本 SAML 設定],點擊 [編輯]

假設 Synology DSM 的登入網址為 https://mynas.askasu.com:5001,
僅需要參考下面圖說,對以下兩個欄位填入資訊
- 識別碼 (實體識別碼)
- 回覆 URL (判斷提示取用者服務 URL)

識別碼 / Identifier,必填

https://mynas.askasu.com:5001

回覆 URL / Reply URL,必填

https://mynas.askasu.com:5001

填入完畢,選擇上方的 [儲存]

第二步的 [屬性與宣告],點擊 [編輯]

選擇及編輯 [唯一使用者識別碼 (名稱識別碼)]

如前面提到的情境及架構,由於帳號是從地端 AD 同步到 ME-ID (AAD),所以請將
[名稱識別碼] 改為 未指定
[來源屬性] 預設的 user.userprincipalname (UPN),改為 user.onpremisessamaccountname

最後點擊 [儲存]

第三步的 [SAML 憑證],點擊 [編輯]

在 SAML 簽署憑證 的設定,於 [簽署選項] 務必選擇 [簽署 SAML 回應]。另外,由於憑證有效期及更新問題,建議 [通知電子郵件地址] 輸入有效的郵件地址。

接著將 憑證 (Base64) 格式的憑證檔,下載到你的本機電腦,稍後會需要上傳到 Synology DSM 端設定。

第四步,提供了三個欄位的資訊

將會使用到其中兩個,請將其複製到空白文件上,後續會在 Synology 端使用到。

#登入 URL, 對應 Synology 的 IdP 單一登入 URL
https://login.microsoftonline.com/TenantID/saml2
#Microsoft Entra ID 識別碼, 對應 Synology 的 IdP 實體 ID 
https://sts.windows.net/TenantID/

2. 在 Synology DSM 啟用 SAML SSO 服務

以具 Admin 管理員的帳號登入到 Synology DSM

選擇 [控制台] \ [網域/LDAP]

在 [SSO 用戶端],勾選 [啟用 SAML SSO 服務] ,點擊 [SAML SSO 設定]

留意下圖的範例和說明,選擇及填入資訊,並將上一步驟的憑證匯入

名稱 - 自定義
帳號類型 -
請選擇 [網域 / LDAP / 本地端]。如前面提到的架構,DSM 並未連接任何的網域或 LDAP,故請務必選擇帶有本地端的設定。
SP 實體 IP - 請填入 Synology DSM 的登入網址
IdP 實體 IP - 請填入在設定 ME-ID 時提供的 [Microsoft Entra ID 識別碼]
IdP 單一登入 URL - 請填入在設定 ME-ID 時提供的 [登入 URL]
憑證 - 請點擊 [瀏覽],匯入在設定 ME-ID 時下載的憑證
完成後,選擇 [儲存]

最後,不要忘記點擊 [套用]

3. 在 Synology DSM 新增對應帳號

如前面提過,Synology DSM 沒有加入網域,也未做任何 LDAP 串接,所以登入的帳號必須全以本地端方式建立,只是身分驗證過程串接了 SSO。

另外,該帳號其他像登入後的權限及應用程式使用範圍等,同樣是在 Synology DSM 本地端的帳號建立過程完成設置。

選擇 [控制台] \ [使用者 & 群組],在 [使用者帳號] 點擊 [新增]。請務必注意,帳號的名稱必須對應串接 SSO 的帳號名稱,例如 AD 帳號名為 aska.nas,這裡則必須建立一致的名稱。密碼的部分,由於後續是使用 SSO 串接身分驗證,建立時點選 [產生隨機密碼] 即可,也無需特別記下

完成上述工作後,就可以登出開始進行登入測試囉

記得在 Synology DSM 登入頁面選擇 [SSO 認證] 才能走 ME-ID 的 SSO 認證流程,示範如下

參考資料

Synology Knowledge Center - SSO Client