本篇文章更新時間:2025/01/26
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
先前已有筆記過使用 Nextcloud 的文章。都是偏向安裝、組態面居多。
這次需求是希望 Nextcloud 的服務只能限定是使用 Google Workspace 的同事們才能登入。
透過 SAML 協議,讓 Google 作為驗證服務提供者,然後 Nextcloud 使用這方式來當驗證,這樣就可以把使用的帳號與群組給同步進來管理。
這功能要分兩部分來進行設定:
- Google Workspace 管理後台
- Nextcloud 管理後台
Google Workspace 管理後台設定

主要就如上圖所示。需要先到「應用程式」的「網頁和行動應用程式」去新增一個「自訂 SAML 應用程式」。
應用名稱與說明就照需求打,重點是在下一步的畫面資料:

憑證過期需要管理又或是這頁面的資料在這階段顯示過後,就看不到。要到
安全性 > 將 Google 做為 SAML IdP 的單一登入 (SSO) 服務這邊來更新與查看。
這邊的資料(單一登入 SSO 網址、實體 ID、憑證)都是接下來會要回填回去 Nextcloud 服務的資訊。
下一步要帶入 Nextcloud 的資訊:
- ACS 網址:
https://nextcloud.mxp.tw/apps/user_saml/saml/acs - 實體 ID:
https://nextcloud.mxp.tw/apps/user_saml/saml/metadata - 名稱 ID 格式,選擇 EMAIL

這邊要注意 Nextcloud 這邊的網址要看伺服器的設定來決定,我有用 Nginx rewrite 處理過的會沒有
/index.php/這一段,有的話就要填寫。有改過也會需要對應當下完整!
接下來是對應 Google Directory 目錄屬性。這邊就是要去對應輸出給應用程式這邊的欄位值。Google 有自己的設計,但透過這個協議,可以在這階段約定好彼此要對應的欄位,像是登入用帳號(員工編號)還是信箱為主、姓名欄位對應、群組...等。
我的設定如下圖:

First name -> displayNamePrimary email -> emailAddressPrimary email -> username
應用程式屬性這邊是變數,使用服務雙邊約定好的就好。下方還有群組的功能可以選擇,如果公司有使用到也可以設定指定一個變數來使用,也會幫你把這群組名稱帶過去。
Nextcloud 管理後台的設定
首先要到應用程式中安裝這款「SSO & SAML authentication」最多人使用的 SAML 工具。
安裝完成後到「管理設定」找到左側選單的「SSO & SAML 驗證」,如下圖對應設定:

全域設定中「允許使用多個使用者後端」這個選項如果沒有其他登入方式,就不用打勾,這樣預設就是會自動跳轉 Google 登入驗證。
一般設定中,對映至 UID 的屬性,就是指前面在 Google Admin 那邊設定的帳號欄位也就是 username。
其他服務提供者資料如圖設定。名稱 ID 格式要選擇「電子郵件地址」,憑證就是從 Google 那邊提供的複製過來。

最後一步驟,就是設定身份提供者這邊的資料了!
IdP 實體的識別字串是對應 Google 這邊的「實體 ID」,另一個 URL 目標就是「單一登入 SSO 網址」。
屬性對映部分也是前面提到約定好變數的那些值,如圖設定就可以把預設的資料給帶入填寫囉!
後記
Nextcloud 這邊外掛的設定是有改值就會自動存,那個顯示名稱如果有動到,就會被當成是新的一組來設定,要注意!
還有就是如果使用了「單一登入」後,就沒有「登出」的功能,好像有那麼一點...奇怪XD
找這個 Nextcloud Google Workspace SSO 方法時看到這篇日文的教學很詳盡,也可以參考看看!
Ref: Nextcloud に Google アカウントで SSO できるようにする (SAML 認証)
