极狐GitLab 正式推出面向 GitLab 老旧版本(12.x、13.x、14.x、15.x 等)免费用户的专业升级服务,点击查看详情

返回列表 发布新帖

LDAP 同步-01

791 0
发表于 2024-4-9 11:52:28 | 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
LDAP 同步
如果你已经配置 LDAP 与极狐GitLab 一起使用,系统可以自动同步用户和群组。此过程更新用户和群组信息。
您可以更改同步发生的时间。

用户同步
阻止 LDAP 用户的个人资料名称同步功能引入于 15.11 版本。
每天一次,系统运行一个 worker 来根据 LDAP 检查和更新极狐GitLab 用户。
该流程执行以下访问检查:
  • 确保用户仍然存在于 LDAP 中。
  • 如果 LDAP 服务器是 Active Directory,请确保用户处于激活状态(未处于阻止/禁用状态)。只有在 LDAP 配置中设置了 active_directory: true 时,才会执行此检查。
在 Active Directory 中,如果用户账户控制属性 (userAccountControl:1.2.840.113556.1.4.803) 设置了 bit 2,则用户被标记为禁用/阻止。
有关详细信息,请参阅 LDAP 中的 Bitmask Searches
如果前面的条件失败,则用户在极狐GitLab 中将设置为 ldap_blocked 状态,用户无法登录或推送或拉取代码。
该流程还会更新以下用户信息:
  • 姓名。如果启用了禁止用户更改个人资料名称,则不同步 name。
  • 电子邮件地址
  • SSH 公钥(如果设置了 sync_ssh_keys)
  • Kerberos 身份(如果启用了 Kerberos)
同步 LDAP 用户的个人资料名称
默认情况下,极狐GitLab 会同步 LDAP 用户的个人资料名称字段。
要阻止这种同步,您可以将 sync_name 设置为 false。
Omnibus
  • 编辑 /etc/gitlab/gitlab.rb:
    gitlab_rails['ldap_servers' = {  'main' => {    'sync_name' => false,    }}
  • 保存文件并重新配置极狐GitLab:
    sudo gitlab-ctl reconfigure
Kubernetes
  • 导出 Helm 值:
    helm get values gitlab > gitlab_values.yaml
  • 编辑 gitlab_values.yaml:
    global:  appConfig:    ldap:      servers:        main:          sync_name: false
  • 保存文件并应用新值:
    helm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab
Docker
  • 编辑 docker-compose.yml:
    version: "3.6"services:  gitlab:    environment:      GITLAB_OMNIBUS_CONFIG: |        gitlab_rails['ldap_servers'] = {          'main' => {            'sync_name' => false,            }        }
  • 保存文件并重启极狐GitLab:
    docker compose up -d
源安装
  • 编辑 /home/git/gitlab/config/gitlab.yml:
    production: &base  ldap:    servers:      main:        sync_name: false
  • 保存文件并重启极狐GitLab:
    # For systems running systemdsudo systemctl restart gitlab.target# For systems running SysV initsudo service gitlab restart
禁用用户
在以下情况,用户会被禁用:
  • 访问检查失败并且该用户在极狐GitLab 中设置为 ldap_blocked 状态。
  • 当该用户登录时,LDAP 服务器不可用。
如果用户被禁用,则该用户无法登录,无法推送或拉取代码。
如果满足以下所有条件,则被禁用的用户在使用 LDAP 登录时将被解除禁用:
  • 所有访问检查条件均为 true。
  • 用户登录时 LDAP 服务器可用。
如果运行 LDAP 用户同步时 LDAP 服务器不可用,所有用户都会被禁用。
如果在运行 LDAP 用户同步时由于 LDAP 服务器不可用而禁用所有用户,则后续 LDAP 用户同步不会自动取消禁用这些用户。

调整 LDAP 用户同步计划
默认情况下,GitLab 每天在服务器时间上午 01:30 运行一次 worker,根据 LDAP 检查和更新极狐GitLab 用户。
您可以通过 cron 格式,设置以下配置值来手动配置 LDAP 用户同步时间。如果需要,您可以使用 crontab 生成器。 下面的示例显示了如何将 LDAP 用户同步设置为每 12 小时在每小时运行一次。
Omnibus
  • 编辑 /etc/gitlab/gitlab.rb:
    gitlab_rails['ldap_sync_worker_cron' = "0 */12 * * *"
  • 保存文件并重新配置极狐GitLab:
    sudo gitlab-ctl reconfigure
Kubernetes
  • 导出 Helm 值:
    helm get values gitlab > gitlab_values.yaml
  • 编辑 gitlab_values.yaml:
    global:  appConfig:    cron_jobs:      ldap_sync_worker:        cron: "0 */12 * * *"
  • 保存文件并应用新值:
    helm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab
Docker
  • 编辑 docker-compose.yml:
    version: "3.6"services:  gitlab:    environment:      GITLAB_OMNIBUS_CONFIG: |        gitlab_rails['ldap_sync_worker_cron'] = "0 */12 * * *"
  • 保存文件并重启极狐GitLab:
    docker compose up -d
源安装
  • 编辑 /home/git/gitlab/config/gitlab.yml:
    production: &base  ee_cron_jobs:    ldap_sync_worker:      cron: "0 */12 * * *"
  • 保存文件并重启极狐GitLab:
    # For systems running systemdsudo systemctl restart gitlab.target# For systems running SysV initsudo service gitlab restart

回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2024 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表