date: “2016-12-01T16:00:00+02:00” title: “认证” slug: “authentication” sidebar_position: 10 toc: false draft: false aliases:
通过BindDN的LDAP和简单认证方式LDAP共享以下字段:
认证名称 (必选)
主机名 (必选)
mydomain.com
端口号 (必选)
389
/ LDAPs 636
安全协议 (可选)
管理员过滤规则 (可选)
(objectClass=adminAccount)
memberOf=CN=admin-group,OU=example,DC=example,DC=org
用户名属性(可选)
sAMAccountName
名字属性(可选)
姓氏属性(可选)
sn
电子邮件属性 (必选)
mail
需要额外设置以下字段:
绑定DN (可选)
cn=Search,dc=mydomain,dc=com
绑定密码 (可选)
用户搜索基准 (必选)
ou=Users,dc=mydomain,dc=com
用户过滤规则 (必选)
%[1]s
匹配参数将替换为登录表单中给出的登录名(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))
(&(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)))
启用用户同步
需要额外设置以下字段:
用户DN (必选)
%s
将替换为登录表单中的登录名。cn=%s,ou=Users,dc=mydomain,dc=com
uid=%s,ou=Users,dc=mydomain,dc=com
用户搜索基准 (可选)
ou=Users,dc=mydomain,dc=com
用户过滤规则 (必选)
%[1]s
匹配参数将替换为登录表单中给出的登录名。(&(objectClass=posixAccount)(|(cn=%[1]s)(mail=%[1]s)))
(&(objectClass=posixAccount)(|(uid=%[1]s)(mail=%[1]s)))
使用以下字段:
群组搜索基础DN(可选)
ou=group,dc=mydomain,dc=com
组名过滤器 (可选)
(|(cn=gitea_users)(cn=admins))
组中的用户属性 (可选)
uid
用户组属性 (可选)
memberUid
这个过程启用了PAM(Pluggable Authentication Modules)认证。用户仍然可以通过用户管理手动添加到系统中。
PAM提供了一种机制,通过对用户进行PAM认证来自动将其添加到当前数据库中。为了与普通的Linux密码一起使用,
运行Gitea的用户还必须具有对/etc/shadow
的读取权限,以便在使用公钥登录时检查账户的有效性。
注意:如果用户已将SSH公钥添加到Gitea中,使用这些密钥可能会绕过登录检查系统。因此, 如果您希望禁用使用PAM进行身份验证的用户,应该在Gitea中手动禁用该账户,使用内置的用户管理功能。
Site Administration
-> Authentication Sources
, 并选择
Add Authentication Source
.Note: PAM 支持通过build-time flags添加, 而官方提供的二进制文件通常不会默认启用此功能。PAM需要确保系统上有必要的libpam动态库,并且编译器可以访问必要的PAM开发头文件。
包括Ubuntu和Mint,可能也是有效的,请查阅您所使用发行版的文档以确认。
此选项允许 Gitea 以 Gitea 用户身份登录 SMTP 主机。请设置以下字段:
身份验证名称 (必选)
SMTP 验证类型 (必选)
主机名 (必选)
smtp.mydomain.com
端口号 (必选)
587
允许的域名
gitea.io,mydomain.com,mydomain2.com
强制使用 SMTPS
跳过 TLS 验证
该认证源处于激活状态
dc=example,dc=com
替换为您的dn
,然后提供一个适当安全的密码。 dn: uid=gitea,cn=sysaccounts,cn=etc,dc=example,dc=com
changetype: add
objectclass: account
objectclass: simplesecurityobject
uid: gitea
userPassword: secure password
passwordExpirationTime: 20380119031407Z
nsIdleTimeout: 0
ldapmodify -h localhost -p 389 -x -D \
"cn=Directory Manager" -W -f gitea.ldif
gitea_users
添加IPA组: ipa group-add --desc="Gitea Users" gitea_users
Authentication
。然后单击Add New Source
并填写详细信息,更改所有适当的地方。Gitea支持通过Windows内置的安全支持提供程序接口(Security Support Provider Interface,SSPI)实现SPNEGO单点登录认证(由RFC4559定义的方案),用于服务器的Web部分。SSPI仅在Windows环境中工作,即当服务器和客户端都在Windows操作系统上运行时。
在激活SSPI单点登录认证(SSO)之前,您需要准备您的环境:
为运行gitea.exe的主机创建一个服务主体名称(Service Principal Name,SPN),其类别为HTTP:
setspn -A HTTP/host.domain.local domain\user
在遵循上述步骤之前,请确保您按照以下流程进行操作:
custom/conf/app.ini
文件的[server]
部分中,ROOT_URL
设置为Web应用程序将运行的服务器的完全限定域名(FQDN),与之前创建服务主体名称时使用的一致(例如,host.domain.local
)。gitea.exe web
)。Site Administration -> Authentication Sources
中添加一个 SPNEGO with SSPI
认证源,以启用SSPI认证。gitea.exe
的服务器不同)。Internet选项 -> 安全 -> 本地站点 -> 站点
)。http://host.domain.local:3000
)。gitea.exe
的同一台服务器上运行Web浏览器。应该在与服务器不同的域加入计算机(客户端)上运行Web浏览器。如果客户端和服务器都在同一台计算机上运行,则NTLM将优先于Kerberos。HTTP/...
的SPN。遵循这些步骤,您应该能够成功启用和使用SSPI单点登录认证(SSO)。
Gitea 支持通过读取反向代理传递的 HTTP 头中的登录名或者 email 地址来支持反向代理来认证。默认是不启用的,你可以用以下配置启用。
[service]
ENABLE_REVERSE_PROXY_AUTHENTICATION = 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 头。
如果设置了 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
, 可以设置最多信任几级反向代理。
注意:反向代理认证不支持认证 API,API 仍旧需要用 access token 来进行认证。
common-session-noninteractive
。这个值对于其他版本的Debian,
gituser
而不是gituser@mail.com
登录到Gitea的Web界面。