Update zh tw languages and fix some broken links (#455)

---------

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: silverwind <2021+silverwind@noreply.gitea.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/455
Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
Lunny Xiao
2026-07-09 23:41:46 +00:00
co-authored by silverwind silverwind
parent c0f8a04185
commit 965c269495
652 changed files with 30864 additions and 30792 deletions
@@ -8,206 +8,206 @@ aliases:
# 認證
## 轻量级目錄访问协议(Lightweight Directory Access Protocol,LDAP)
## 輕量級目錄訪問協議(Lightweight Directory Access Protocol,LDAP)
通過 BindDN 的 LDAP 和简單認證方式 LDAP 共享以下字段:
透過 BindDN 的 LDAP 和簡單認證方式 LDAP 共享以下欄位:
- 認證名稱 **(必選)**
- 分配给新授权方法的名稱。
- 分配給新授權方法的名稱。
- 主机名 **(必選)**
- 主機名 **(必選)**
- LDAP 服务的主机地址.
- LDAP 服務的主機地址.
- 例如:`mydomain.com`
- 端口号 **(必選)**
- 端口號 **(必選)**
- LDAP 服务的端口号.
- LDAP 服務的端口號.
- 例如: LDAP `389`/ LDAPs `636`
- 安全协议 (可選)
- 安全協議 (可選)
- 连接 LDAP 服务器时是否使用 TLS 协议。
- 連接 LDAP 伺服器時是否使用 TLS 協議。
- 管理员過滤規則 (可選)
- 管理員過濾規則 (可選)
- 一个 LDAP 過滤器,用于指定哪些使用者應該被赋予管理员特权。如果使用者帳戶符合過滤器条件,则該使用者将被授予管理员权限。
- 示例:`(objectClass=adminAccount)`
- 适用于 Microsoft Active Directory(AD)的示例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- 一個 LDAP 過濾器,用於指定哪些使用者應該被賦予管理員特權。如果使用者帳戶符合過濾器條件,則該使用者將被授予管理員權限。
- 範例:`(objectClass=adminAccount)`
- 適用於 Microsoft Active Directory(AD)的範例:`memberOf=CN=admin-group,OU=example,DC=example,DC=org`
- 使用者名属性(可選)
- 使用者名稱屬性(可選)
- 使用者 LDAP 记录中包含使用者名稱的属性。在第一次成功登入后,将使用指定的属性值作為新的 Gitea 账户使用者名。若留空,则使用登入表單上提供的使用者名。
- 当提供的登入名与多个属性匹配时,这一選项非常有用,但是只有一个特定属性應該用于 Gitea 账户名稱,請参阅"使用者過滤器"。
- 示例:uid
- 适用于 Microsoft Active Directory(AD)的示例:`sAMAccountName`
- 使用者 LDAP 記錄中包含使用者名稱稱的屬性。在第一次成功登入後,將使用指定的屬性值作為新的 Gitea 帳號使用者名稱。若留空,則使用登入表單上提供的使用者名稱。
- 當提供的登入名與多個屬性匹配時,這一選項非常有用,但是隻有一個特定屬性應該用於 Gitea 帳號名稱,請參閱"使用者過濾器"。
- 範例:uid
- 適用於 Microsoft Active Directory(AD)的範例:`sAMAccountName`
- 名字属性(可選)
- 名字屬性(可選)
- 使用者 LDAP 记录中包含使用者名字的属性。将用于填充他们的账户信息。
- 示例:givenName
- 使用者 LDAP 記錄中包含使用者名稱字的屬性。將用於填充他們的帳號資訊。
- 範例:givenName
- 姓氏属性(可選)
- 姓氏屬性(可選)
- 使用者 LDAP 记录中包含使用者姓氏的属性。将用于填充他们的账户信息。
- 示例:`sn`
- 使用者 LDAP 記錄中包含使用者姓氏的屬性。將用於填充他們的帳號資訊。
- 範例:`sn`
- 电子邮件属性 **(必選)**
- 使用者 LDAP 记录中包含使用者电子邮件地址的属性。将用于填充他们的账户信息。
- 示例:`mail`
- 電子郵件屬性 **(必選)**
- 使用者 LDAP 記錄中包含使用者電子電子郵件地址的屬性。將用於填充他們的帳號資訊。
- 範例:`mail`
### LDAP(via BindDN)
需要额外设置以下字段:
需要額外設定以下欄位:
- 绑定 DN (可選)
- 綁定 DN (可選)
- 搜索使用者时绑定到 LDAP 服务器的 DN。这可以留空以執行匿名搜索。
- 示例: `cn=Search,dc=mydomain,dc=com`
- 搜索使用者時綁定到 LDAP 伺服器的 DN。這可以留空以執行匿名搜索。
- 範例: `cn=Search,dc=mydomain,dc=com`
- 绑定密碼 (可選)
- 綁定密碼 (可選)
- 上述指定的 Bind DN(绑定区别名)的密碼,如果有的话。注意:該密碼在服务器上使用 SECRET_KEY 進行加密存儲。仍然建议确保 Bind DN 具有尽可能少的权限。
- 上述指定的 Bind DN(綁定區別名)的密碼,如果有的話。注意:該密碼在伺服器上使用 SECRET_KEY 進行加密儲存。仍然建議確保 Bind DN 具有儘可能少的權限。
- 使用者搜索基准 **(必選)**
- 使用者搜索基準 **(必選)**
- 这是用于搜索使用者帳戶的 LDAP 基础路径.
- 示例: `ou=Users,dc=mydomain,dc=com`
- 這是用於搜索使用者帳戶的 LDAP 基礎路徑.
- 範例: `ou=Users,dc=mydomain,dc=com`
- 使用者過滤規則 **(必選)**
- LDAP 過滤器声明如何查找试图進行身份驗證的使用者记录
`%[1]s`匹配參數将替换為登入表單中给出的登入名
- 示例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 示例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替换,應使用 `%[1]s`,例如在将提供的登入名与多个属性(如使用者标识符、电子邮件甚至电话号码)進行匹配时。
- 示例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 启用使用者同步
- 这个選项启用了一个周期性任务,用于将 Gitea 使用者与 LDAP 服务器進行同步。默认的同步周期是每 24 小时,
- 使用者過濾規則 **(必選)**
- LDAP 過濾器聲明如何查找試圖進行身份驗證的使用者記錄
`%[1]s`匹配參數將替換為登入表單中給出的登入名
- 範例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 範例 for Microsoft Active Directory (AD): `(&(objectCategory=Person)(memberOf=CN=user-group,OU=example,DC=example,DC=org)(sAMAccountName=%s)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))`
- 如需多次替換,應使用 `%[1]s`,例如在將提供的登入名與多個屬性(如使用者標識符、電子郵件甚至電話號碼)進行匹配時。
- 範例: `(&(objectClass=Person)(|(uid=%[1]s)(mail=%[1]s)(mobile=%[1]s)))`
- 啟用使用者同步
- 這個選項啟用了一個週期性任務,用於將 Gitea 使用者與 LDAP 伺服器進行同步。預設的同步週期是每 24 小時,
但您可以在 app.ini 文件中進行更改。
有关此部分的详细说明,請参阅[sample
有關此部分的詳細說明,請參閱[sample
app.ini](https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini)
的*cron.sync_external_users* 部分的注释。前面提到的*User Search Base*和*User Filter*
设置将限制哪些使用者可以使用 Gitea 以及哪些使用者将被同步。
在初始运行任务时,将根据给定的设置建立所有与 LDAP 匹配的使用者,因此在使用大型企业 LDAP 目錄时需要小心。
的*cron.sync_external_users* 部分的註釋。前面提到的*User Search Base*和*User Filter*
設定將限制哪些使用者可以使用 Gitea 以及哪些使用者將被同步。
在初始運行任務時,將根據給定的設定建立所有與 LDAP 匹配的使用者,因此在使用大型企業 LDAP 目錄時需要小心。
### LDAP(simple auth)
需要额外设置以下字段:
需要額外設定以下欄位:
- 使用者 DN **(必選)**
- 用作使用者 DN 的模板。匹配參數 `%s` 将替换為登入表單中的登入名。
- 示例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 示例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 用作使用者 DN 的模板。匹配參數 `%s` 將替換為登入表單中的登入名。
- 範例: `cn=%s,ou=Users,dc=mydomain,dc=com`
- 範例: `uid=%s,ou=Users,dc=mydomain,dc=com`
- 使用者搜索基准 (可選)
- 使用者搜索基準 (可選)
- 使用者搜索基准声明哪些使用者帳戶将被搜索.
- 示例: `ou=Users,dc=mydomain,dc=com`
- 使用者搜索基準聲明哪些使用者帳戶將被搜索.
- 範例: `ou=Users,dc=mydomain,dc=com`
- 使用者過滤規則 **(必選)**
- LDAP 過滤器声明何时允许使用者登入
`%[1]s`匹配參數将替换為登入表單中给出的登入名。
- 示例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 示例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
- 使用者過濾規則 **(必選)**
- LDAP 過濾器聲明何時允許使用者登入
`%[1]s`匹配參數將替換為登入表單中給出的登入名。
- 範例: `(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))`
- 範例: `(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))`
### 使用 LDAP 驗證分组成员
### 使用 LDAP 驗證分組成員
使用以下字段:
使用以下欄位:
- 群组搜索基础 DN(可選)
- 群組搜索基礎 DN(可選)
- 组使用的 LDAP DN。
- 示例: `ou=group,dc=mydomain,dc=com`
- 組使用的 LDAP DN。
- 範例: `ou=group,dc=mydomain,dc=com`
- 组名過滤器 (可選)
- 組名過濾器 (可選)
- LDAP 過滤器,声明如何在上述 DN 中查找有效组。
- 示例: `(|(cn=gitea_users)(cn=admins))`
- LDAP 過濾器,聲明如何在上述 DN 中查找有效組。
- 範例: `(|(cn=gitea_users)(cn=admins))`
- 组中的使用者属性 (可選)
- 組中的使用者屬性 (可選)
- 组中列出了哪个使用者的 LDAP 属性。
- 示例: `uid`
- 組中列出了哪個使用者的 LDAP 屬性。
- 範例: `uid`
- 使用者组属性 (可選)
- 哪个组的 LDAP 属性包含一个高于使用者属性名稱的数组。
- 示例: `memberUid`
- 使用者組屬性 (可選)
- 哪個組的 LDAP 屬性包含一個高於使用者屬性名稱的數組。
- 範例: `memberUid`
## 可插拔式認證模組(Pluggable Authentication Module,PAM)
这个過程启用了 PAM(Pluggable Authentication Modules)認證。使用者仍然可以通過使用者管理手动添加到系统中。
PAM 提供了一种機制,通過对使用者進行 PAM 認證来自动将其添加到当前数据库中。為了与普通的 Linux 密碼一起使用,
运行 Gitea 的使用者還必須具有对`/etc/shadow`的读取权限,以便在使用公钥登入时检查账户的有效性。
這個過程啟用了 PAM(Pluggable Authentication Modules)認證。使用者仍然可以透過使用者管理手動添加到系統中。
PAM 提供了一種機制,通過對使用者進行 PAM 認證來自動將其添加到當前資料庫中。為了與普通的 Linux 密碼一起使用,
運行 Gitea 的使用者還必須具有對`/etc/shadow`的讀取權限,以便在使用公鑰登入時檢查帳號的有效性。
**注意**:如果使用者已将 SSH 公钥添加到 Gitea 中,使用这些密钥可能会绕過登入检查系统。因此,
如果您希望禁用使用 PAM 進行身份驗證的使用者,應該在 Gitea 中手动禁用該账户,使用内置的使用者管理功能。
**注意**:如果使用者已將 SSH 公鑰添加到 Gitea 中,使用這些密鑰可能會繞過登入檢查系統。因此,
如果您希望禁用使用 PAM 進行身份驗證的使用者,應該在 Gitea 中手動禁用該帳號,使用內置的使用者管理功能。
1. 配置和安裝准备.
- 建议您建立一个管理使用者.
- 建议取消自动注册.
1. 一旦数据库已初始化完成,使用新建立的管理员账户登入.
1. 导航至使用者设置(右上角的图标),然后選择
`Site Administration` -> `Authentication Sources`, 並選择
1. 設定和安裝準備.
- 建議您建立一個管理使用者.
- 建議取消自動註冊.
1. 一旦資料庫已初始化完成,使用新建立的管理員帳號登入.
1. 導航至使用者設定(右上角的圖標),然後選擇
`Site Administration` -> `Authentication Sources`, 並選擇
`Add Authentication Source`.
1. 填写字段如下:
1. 填寫欄位如下:
- 認證類型:`PAM`。
- 名稱:任何有效的值都可以,如果您愿意,可以使用"System Authentication"。
- PAM 服务名稱:从/etc/pam.d/目錄下選择适用于所需認證的正确文件[^1]。
- PAM 电子邮件域:使用者認證时要附加的电子邮件后缀。例如,如果登入系统期望一个名為 gituse 的使用者,
並且将此字段设置為 mail.com,那么 Gitea 在驗證一个 GIT 实例的使用者时将期望 user emai 字段為gituser@mail.com[^2]。
- 名稱:任何有效的值都可以,如果您願意,可以使用"System Authentication"。
- PAM 服務名稱:從/etc/pam.d/目錄下選擇適用於所需認證的正確文件[^1]。
- PAM 電子郵件域:使用者認證時要附加的電子郵件後綴。例如,如果登入系統期望一個名為 gituse 的使用者,
並且將此欄位設定為 mail.com,那麼 Gitea 在驗證一個 GIT 實例的使用者時將期望 user emai 欄位為gituser@mail.com[^2]。
**Note**: PAM 支持通過[build-time flags](installation/from-source.md#build)添加,
而官方提供的二進制文件通常不会默认启用此功能。PAM 需要确保系统上有必要的 libpam 动态库,並且编译器可以访问必要的 PAM 开发头文件。
**Note**: PAM 支援通過[build-time flags](installation/from-source.md)添加,
而官方提供的二進制文件通常不會預設啟用此功能。PAM 需要確保系統上有必要的 libpam 動態庫,並且編譯器可以訪問必要的 PAM 開發頭文件。
[^1]:
例如,在 Debian "Bullseye"上使用标准 Linux 登入,可以使用`common-session-noninteractive`。这个值對於其他版本的 Debian,
包括 Ubuntu 和 Mint,可能也是有效的,請查阅您所使用发行版的文檔以确认。
例如,在 Debian "Bullseye"上使用標準 Linux 登入,可以使用`common-session-noninteractive`。這個值對於其他版本的 Debian,
包括 Ubuntu 和 Mint,可能也是有效的,請查閱您所使用發行版的文件以確認。
[^2]: **PAM 的必選项** 請注意:在上面的示例中,使用者将作為`gituser`而不是`gituser@mail.com`登入到 Gitea 的 Web 界面。
[^2]: **PAM 的必選項** 請注意:在上面的範例中,使用者將作為`gituser`而不是`gituser@mail.com`登入到 Gitea 的 Web 介面。
## 简單邮件传输协议(Simple Mail Transfer Protocol,SMTP)
## 簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)
此選项允许 Gitea 以 Gitea 使用者身份登入 SMTP 主机。請设置以下字段:
此選項允許 Gitea 以 Gitea 使用者身份登入 SMTP 主機。請設定以下欄位:
- 身份驗證名稱 **(必選)**
- 分配给新授权方法的名稱
- 分配給新授權方法的名稱
- SMTP 驗證類型 **(必選)**
- 用于连接 SMTP 主机的驗證類型,plain 或 login
- 用於連接 SMTP 主機的驗證類型,plain 或 login
- 主机名 **(必選)**
- 主機名 **(必選)**
- SMTP 服务的主机地址
- SMTP 服務的主機地址
- 例如:`smtp.mydomain.com`
- 端口号 **(必選)**
- 端口號 **(必選)**
- SMTP 服务的端口号
- SMTP 服務的端口號
- 例如: `587`
- 允许的域名
- 允許的域名
- 如果使用公共 SMTP 主机或有多个域的 SMTP 主机,限制哪些域可以登入
- 如果使用公共 SMTP 主機或有多個域的 SMTP 主機,限制哪些域可以登入
限制哪些域可以登入。
- 示例: `gitea.com,mydomain.com,mydomain2.com`
- 範例: `gitea.com,mydomain.com,mydomain2.com`
- 强制使用 SMTPS
- 默认情况下将使用 SMTPS 连接到端口 465.如果您希望将 smtp 用于其他端口,自行设置
- 否则,如果服务器提供' STARTTLS '扩展名,则将使用此扩展名
- 強制使用 SMTPS
- 預設情況下將使用 SMTPS 連接到端口 465.如果您希望將 smtp 用於其他端口,自行設定
- 否則,如果伺服器提供' STARTTLS '擴展名,則將使用此擴展名
- 跳過 TLS 驗證
- 禁用 TLS 驗證身份.
- 該認證源处于激活状态
- 启用或禁用此身份驗證源
- 該認證源處於激活狀態
- 啟用或禁用此身份驗證源
## FreeIPA
- 要使用 FreeIPA 凭据登入 Gitea,需要為 Gitea 建立一个绑定帳戶。
建立一个绑定帳戶:
- 在 FreeIPA 服务器上建立一个 gitea.ldif 文件,並将`dc=example,dc=com`替换為您的`dn`,然后提供一个适当安全的密碼。
- 要使用 FreeIPA 憑據登入 Gitea,需要為 Gitea 建立一個綁定帳戶。
建立一個綁定帳戶:
- 在 FreeIPA 伺服器上建立一個 gitea.ldif 文件,並將`dc=example,dc=com`替換為您的`dn`,然後提供一個適當安全的密碼。
```sh
dn: uid=gitea,cn=sysaccounts,cn=etc,dc=example,dc=com
@@ -220,76 +220,76 @@ PAM 提供了一种機制,通過对使用者進行 PAM 認證来自动将其
nsIdleTimeout: 0
```
- 导入 LDIF 文件(如果需要,請将 localhost 更改為 IPA 服务器)。系统会提示您输入 Directory Manager 的密碼。:
- 導入 LDIF 文件(如果需要,請將 localhost 更改為 IPA 伺服器)。系統會提示您輸入 Directory Manager 的密碼。:
```sh
ldapmodify -h localhost -p 389 -x -D \
"cn=Directory Manager" -W -f gitea.ldif
```
- 為`gitea_users`添加 IPA 组:
- 為`gitea_users`添加 IPA 組:
```sh
ipa group-add --desc="Gitea Users" gitea_users
```
- **提示**:對於 IPA 凭证错误,运行' kinit admin '並提供域管理帳戶密碼.
- 以管理员身份登入 Gitea,點擊 Admin Panel 下的`Authentication`。然后單擊`Add New Source`並填写详细信息,更改所有适当的地方。
- **提示**:對於 IPA 憑證錯誤,運行' kinit admin '並提供域管理帳戶密碼.
- 以管理員身份登入 Gitea,點擊 Admin Panel 下的`Authentication`。然後單擊`Add New Source`並填寫詳細資訊,更改所有適當的地方。
## SPNEGO with SSPI (Kerberos/NTLM, for Windows only)
Gitea 支持通過 Windows 内置的安全支持提供程序接口(Security Support Provider Interface,SSPI)实現 SPNEGO 單点登入認證(由 RFC4559 定义的方案),用于服务器的 Web 部分。SSPI 僅在 Windows 环境中工作,即当服务器和客户端都在 Windows 操作系统上运行时。
Gitea 支援通過 Windows 內置的安全支援提供程式介面(Security Support Provider Interface,SSPI)實現 SPNEGO 單點登入認證(由 RFC4559 定義的方案),用於伺服器的 Web 部分。SSPI 僅在 Windows 環境中工作,即當伺服器和客戶端都在 Windows 操作系統上運行時。
在激活 SSPI 單点登入認證(SSO)之前,您需要准备您的环境:
在激活 SSPI 單點登入認證(SSO)之前,您需要準備您的環境:
- 在 Active Directory 中建立一个單独的使用者账户,gitea.exe 進程将在該账户下运行(例如,在 domain.local 域下建立一个名為 user 的账户:
- 為运行 gitea.exe 的主机建立一个服务主體名稱(Service Principal Name,SPN),其类别為 HTTP:
- 在 Active Directory 中建立一個單獨的使用者帳號,gitea.exe 進程將在該帳號下運行(例如,在 domain.local 域下建立一個名為 user 的帳號:
- 為運行 gitea.exe 的主機建立一個服務主體名稱(Service Principal Name,SPN),其類別為 HTTP:
- 以特权域使用者(例如域管理员)的身份启动“命令提示符”或“PowerShell”。
- 运行下面的命令,将 host.domain.local 替换為 Web 應用程序将运行的服务器的完全限定域名(FQDN),将 domain\user 替换為在前一步中建立的账户名稱:
- 以特權域使用者(例如域管理員)的身份啟動“命令提示符”或“PowerShell”。
- 運行下面的命令,將 host.domain.local 替換為 Web 應用程式將運行的伺服器的完全限定域名(FQDN),將 domain\user 替換為在前一步中建立的帳號名稱:
```sh
setspn -A HTTP/host.domain.local domain\user
```
在遵循上述步骤之前,請确保您按照以下流程進行操作:
在遵循上述步驟之前,請確保您按照以下流程進行操作:
1. 用之前建立的使用者登入(如果已经登入,請先注销)。
2. 确保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`设置為 Web 應用程序将运行的服务器的完全限定域名(FQDN),与之前建立服务主體名稱时使用的一致(例如,`host.domain.local`)。
3. 启动 Web 服务器(运行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一个 `SPNEGO with SSPI` 認證源,以启用 SSPI 認證。
5. 在域中的客户端计算机上,使用任何域使用者登入(与运行`gitea.exe`的服务器不同)。
6. 如果您使用 Chrome 或 Edge 浏览器,請将 Web 應用程序的 URL 添加到“本地站点”(`Internet選项 -> 安全 -> 本地站点 -> 站点`)。
7. 启动 Chrome 或 Edge 浏览器,导航到 Gitea 的 FQDN URL(例如,`http://host.domain.local:3000`)。
8. 在控制面板中點擊“Sign In”按钮,然后選择 SSPI,将会自动使用当前登入到计算机的使用者進行登入。
9. 如果無法正常工作,請确保:
- 您不是在运行`gitea.exe`的同一台服务器上运行 Web 浏览器。應該在与服务器不同的域加入计算机(客户端)上运行 Web 浏览器。如果客户端和服务器都在同一台计算机上运行,则 NTLM 将优先于 Kerberos。
- 主机上只有一个`HTTP/...`的 SPN。
- SPN 中只包含主机名,不包含端口号。
- 将 Web 應用程序的 URL 添加到"本地站点"。
- 服务器和客户端的时钟差异不超過 5 分钟(取决于组策略)。
- 在 Internet Explorer 中启用了"集成 Windows 身份驗證"(在"高级设置"下)。
1. 用之前建立的使用者登入(如果已經登入,請先註銷)。
2. 確保在`custom/conf/app.ini`文件的`[server]`部分中,`ROOT_URL`設定為 Web 應用程式將運行的伺服器的完全限定域名(FQDN),與之前建立服務主體名稱時使用的一致(例如,`host.domain.local`)。
3. 啟動 Web 伺服器(運行 `gitea.exe web`)。
4. 在 `Site Administration -> Authentication Sources` 中添加一個 `SPNEGO with SSPI` 認證源,以啟用 SSPI 認證。
5. 在域中的客戶端計算機上,使用任何域使用者登入(與運行`gitea.exe`的伺服器不同)。
6. 如果您使用 Chrome 或 Edge 瀏覽器,請將 Web 應用程式的 URL 添加到“本地站點”(`Internet選項 -> 安全 -> 本地站點 -> 站點`)。
7. 啟動 Chrome 或 Edge 瀏覽器,導航到 Gitea 的 FQDN URL(例如,`http://host.domain.local:3000`)。
8. 在控制面板中點擊“Sign In”按鈕,然後選擇 SSPI,將會自動使用當前登入到計算機的使用者進行登入。
9. 如果無法正常工作,請確保:
- 您不是在運行`gitea.exe`的同一臺伺服器上運行 Web 瀏覽器。應該在與伺服器不同的域加入計算機(客戶端)上運行 Web 瀏覽器。如果客戶端和伺服器都在同一臺計算機上運行,則 NTLM 將優先於 Kerberos。
- 主機上只有一個`HTTP/...`的 SPN。
- SPN 中只包含主機名,不包含端口號。
- 將 Web 應用程式的 URL 添加到"本地站點"。
- 伺服器和客戶端的時鐘差異不超過 5 分鐘(取決於組策略)。
- 在 Internet Explorer 中啟用了"整合 Windows 身份驗證"(在"高級設定"下)。
遵循这些步骤,您應該能够成功启用和使用 SSPI 單点登入認證(SSO)。
遵循這些步驟,您應該能夠成功啟用和使用 SSPI 單點登入認證(SSO)。
## 反向代理認證
Gitea 支持通過读取反向代理传递的 HTTP 头中的登入名或者 email 地址来支持反向代理来認證。默认是不启用的,你可以用以下配置启用。
Gitea 支援通過讀取反向代理傳遞的 HTTP 頭中的登入名或者 email 地址來支援反向代理來認證。預設是不啟用的,你可以用以下設定啟用。
```ini
[service]
ENABLE_REVERSE_PROXY_AUTHENTICATION = true
```
默认的登入使用者名的 HTTP 头是 `X-WEBAUTH-USER`,你可以通過修改 `REVERSE_PROXY_AUTHENTICATION_USER` 来变更它。如果使用者不存在,可以自动建立使用者,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。
預設的登入使用者名稱的 HTTP 頭是 `X-WEBAUTH-USER`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_USER` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。
默认的登入使用者 Email 的 HTTP 头是 `X-WEBAUTH-EMAIL`,你可以通過修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 来变更它。如果使用者不存在,可以自动建立使用者,当然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 来启用它。你也可以通過修改 `ENABLE_REVERSE_PROXY_EMAIL` 来启用或停用这个 HTTP 头。
預設的登入使用者 Email 的 HTTP 頭是 `X-WEBAUTH-EMAIL`,你可以透過修改 `REVERSE_PROXY_AUTHENTICATION_EMAIL` 來變更它。如果使用者不存在,可以自動建立使用者,當然你需要修改 `ENABLE_REVERSE_PROXY_AUTO_REGISTRATION=true` 來啟用它。你也可以透過修改 `ENABLE_REVERSE_PROXY_EMAIL` 來啟用或停用這個 HTTP 頭。
如果设置了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`,则使用者的全名会从 `X-WEBAUTH-FULLNAME` 读取,这样在自动建立使用者时将使用这个字段作為使用者全名,你也可以通過修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 来变更 HTTP 头。
如果設定了 `ENABLE_REVERSE_PROXY_FULL_NAME=true`,則使用者的全名會從 `X-WEBAUTH-FULLNAME` 讀取,這樣在自動建立使用者時將使用這個欄位作為使用者全名,你也可以透過修改 `REVERSE_PROXY_AUTHENTICATION_FULL_NAME` 來變更 HTTP 頭。
你也可以通過修改 `REVERSE_PROXY_TRUSTED_PROXIES` 来设置反向代理的 IP 地址范围,加强安全性,默认值是 `127.0.0.0/8,::1/128`。 通過 `REVERSE_PROXY_LIMIT`, 可以设置最多信任几级反向代理。
你也可以透過修改 `REVERSE_PROXY_TRUSTED_PROXIES` 來設定反向代理的 IP 地址範圍,加強安全性,預設值是 `127.0.0.0/8,::1/128`。 通過 `REVERSE_PROXY_LIMIT`, 可以設定最多信任幾級反向代理。
你可以通過以下配置為 API 启用此認證方法:
你可以透過以下設定為 API 啟用此認證方法:
```ini
[service]
@@ -297,5 +297,5 @@ ENABLE_REVERSE_PROXY_AUTHENTICATION_API = true
```
:::note
当此方法用于 API 时,反向代理负责处理 CSRF 保护。
當此方法用於 API 時,反向代理負責處理 CSRF 保護。
:::