本篇文章更新時間:2025/01/26
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


先前已有筆記過使用 Nextcloud 的文章。都是偏向安裝、組態面居多。

這次需求是希望 Nextcloud 的服務只能限定是使用 Google Workspace 的同事們才能登入。

透過 SAML 協議,讓 Google 作為驗證服務提供者,然後 Nextcloud 使用這方式來當驗證,這樣就可以把使用的帳號與群組給同步進來管理。

這功能要分兩部分來進行設定:

  1. Google Workspace 管理後台
  2. Nextcloud 管理後台

Google Workspace 管理後台設定

Admin_screen

主要就如上圖所示。需要先到「應用程式」的「網頁和行動應用程式」去新增一個「自訂 SAML 應用程式」。

應用名稱與說明就照需求打,重點是在下一步的畫面資料:

Admin_screen

憑證過期需要管理又或是這頁面的資料在這階段顯示過後,就看不到。要到 安全性 > 將 Google 做為 SAML IdP 的單一登入 (SSO) 服務 這邊來更新與查看。

這邊的資料(單一登入 SSO 網址、實體 ID、憑證)都是接下來會要回填回去 Nextcloud 服務的資訊。

下一步要帶入 Nextcloud 的資訊:

  1. ACS 網址: https://nextcloud.mxp.tw/apps/user_saml/saml/acs
  2. 實體 ID: https://nextcloud.mxp.tw/apps/user_saml/saml/metadata
  3. 名稱 ID 格式,選擇 EMAIL

Admin_screen

這邊要注意 Nextcloud 這邊的網址要看伺服器的設定來決定,我有用 Nginx rewrite 處理過的會沒有 /index.php/ 這一段,有的話就要填寫。有改過也會需要對應當下完整!

接下來是對應 Google Directory 目錄屬性。這邊就是要去對應輸出給應用程式這邊的欄位值。Google 有自己的設計,但透過這個協議,可以在這階段約定好彼此要對應的欄位,像是登入用帳號(員工編號)還是信箱為主、姓名欄位對應、群組...等。

我的設定如下圖:

Admin_screen

  • First name -> displayName
  • Primary email -> emailAddress
  • Primary email -> username

應用程式屬性這邊是變數,使用服務雙邊約定好的就好。下方還有群組的功能可以選擇,如果公司有使用到也可以設定指定一個變數來使用,也會幫你把這群組名稱帶過去。

Nextcloud 管理後台的設定

首先要到應用程式中安裝這款「SSO & SAML authentication」最多人使用的 SAML 工具。

安裝完成後到「管理設定」找到左側選單的「SSO & SAML 驗證」,如下圖對應設定:

Admin_screen_part1

全域設定中「允許使用多個使用者後端」這個選項如果沒有其他登入方式,就不用打勾,這樣預設就是會自動跳轉 Google 登入驗證。

一般設定中,對映至 UID 的屬性,就是指前面在 Google Admin 那邊設定的帳號欄位也就是 username

其他服務提供者資料如圖設定。名稱 ID 格式要選擇「電子郵件地址」,憑證就是從 Google 那邊提供的複製過來。

Admin_screen_part2

最後一步驟,就是設定身份提供者這邊的資料了!

IdP 實體的識別字串是對應 Google 這邊的「實體 ID」,另一個 URL 目標就是「單一登入 SSO 網址」。

屬性對映部分也是前面提到約定好變數的那些值,如圖設定就可以把預設的資料給帶入填寫囉!

後記

Nextcloud 這邊外掛的設定是有改值就會自動存,那個顯示名稱如果有動到,就會被當成是新的一組來設定,要注意!

還有就是如果使用了「單一登入」後,就沒有「登出」的功能,好像有那麼一點...奇怪XD

找這個 Nextcloud Google Workspace SSO 方法時看到這篇日文的教學很詳盡,也可以參考看看!

Ref: Nextcloud に Google アカウントで SSO できるようにする (SAML 認証)


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon