Using Gogs Git Service - Part.2 - Authentication - SMTP

在前篇 Using Gogs Git Service - Part.1 - Install on Windows 介紹簡單的安裝方式。

而在組織內使用時,就需要配合內部所規範的權限來操作。而 Gogs 內建除了本地端註冊外,還支援其他四種認證方式:

  • LDAP ( via BindDN )
  • LDAP ( Sample Auth )
  • SMTP
  • PAM

接下來將自己在實務上,操作過的 SMTP 做紀錄。

前言

一般在公司使用時,為了控管方便,會希望大家使用 AD 登入,或使用公司 Email 登入。統一新增、刪除人員,不用維護多套人員資料。

所以在自己實務上的經驗,本地端使用者註冊功能,除了一開始安裝時的 Admin 外,就只會再新增一組 CI Server 所需要的帳號。( e.g. Jenkins )

其他人就會依要求使用 AD 帳號 or SMTP 方式,登入 Gogs 操作系統。( Fork , Create Pull Request 等 )

操作

使用管理者帳號登入後 ,點擊「Admin Panel」,進入「Authentication」,就可以設定其他認證方式。

Step1. 建立 SMTP 認證

  1. 新增 Name:因為我使用 Gmail 為認證端,故輸入 Gmail-SMTP。( 必填 )
  2. 輸入SMTP Host , Port:smtp.gmail.com , 587。 ( 必填 )
  3. Allowed Domains:因部分組織使用 Gmail 為公司信箱,會使用自訂 Domain,設定上就可以加註 Domain 來過濾;多組可用 , 隔開。 ( 選填 )
  4. Enable TLS Encryption:勾選啟用。 ( 必填 )
  5. 儲存即可。

Step2. 使用 Gmail 帳號登入

使用正確的帳號 + 密碼,卻無法登入。

這時使用的 Gmail 信箱會收到一封警告信。「登入嘗試遭拒」,原來是因為架設的 Gogs 沒有上 SSL。

Gmail 為了安全起見,主動阻擋應用程式進行帳號串接。

因為這是示範,又是本機環境,所以我切換到 Gmail 帳戶安全管理「已連結的網站與應用程式」,啟用「允許安全性較低的應用程式」

回到 Gogs,重新登入,就能正常進入系統。可能看到 Gogs 自動新增該名使用者的資料。

接下來,賦予該名使用者相關權限後,他就能開始 Ggos 服務了,若有天他離開組織時,因相關單位會拔除他的信箱,自然地就被移除資料了。

在實務上,如果還要使用者自己去開啟「允許安全性較低的應用程式」,似乎麻煩又不直覺了。若可以的話,就幫 Gogs 服務套用 SSL 吧。

以上就是 SMTP 的設定,打完收工。

備註

若對於 LDAP ( via BindDN ) 有興趣的人,可參閱小莊大文章 - 在 CentOS 7 上安裝 Gogs 並透過 LDAP 接 AD 驗證使用者