j1ngk3.sssd_ldap

构建状态 Galaxy 角色

lae.system_ldap

安装并配置SSSD,以便实现对启用LDAP的Active Directory服务器的系统级LDAP身份验证。

角色变量

请查看defaults/main.yml以获取所有可配置角色变量的列表。由于默认设置通常足以满足大多数用户,因此我们只讨论需要在此部分定义的变量。

以下变量必须配置,以便与您的LDAP/AD服务器进行通信:

变量 示例 描述
system_ldap_domain LDAP sssd用来识别此配置/域的标签。
system_ldap_search_base OU=Idol Schools,DC=Aikatsu,DC=net 用于执行LDAP用户操作的默认基础DN。
system_ldap_uris - ldaps://ldap-tyo.example.aikatsu.net:636
- ldaps://ldap-ngo.example.aikatsu.net:636
sssd应该连接的LDAP服务器的URI列表。
system_ldap_bind_dn CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net 用于执行LDAP操作的默认绑定DN。
system_ldap_bind_password sunrise 默认绑定DN的认证令牌。目前仅支持明文密码。
system_ldap_access_filter_groups - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net 被授权访问当前主机的组DN列表。
system_ldap_access_unix_groups - operations 应与system_ldap_access_filter_groups有效相同,但使用它们的UNIX组名称(通常是CN)。
system_ldap_access_filter_users - hoshimiya.ichigo
- nikaidou.yuzu
被授权访问当前主机的用户名列表(默认传递给过滤器(sAMAccountName=%s))。
system_ldap_sudo_groups - operations 配置在当前主机上允许使用sudo的组列表。
system_ldap_sudo_users - hoshimiya.ichigo 配置在当前主机上允许使用sudo的用户列表。

示例剧本

以下是我们在多租户剧本中通常使用的内容:

---
- hosts: all
  user: ansible
  roles:
    - lae.system_ldap
  become: True

test目录中还有一个示例剧本。

扩展用法

在这一部分,代码块中的剧本是system_ldap.yml。让我们看看以下剧本布局:

- system_ldap.yml
- inventory
- group_vars/
    - all/
        - main.yml
    - starlight/
        - main.yml
- host_vars/
    - research-node01
- roles/
    - requirements.yml

在这个布局中,我们通常可以按主机组或主机进行访问控制。有一些变量您可能希望在所有主机中设置,在group_vars/all/main.yml(如果不使用目录,可以只用group_vars/all):

---
system_ldap_domain: aikatsu.net
system_ldap_bind_dn: CN=Naoto Suzukawa,OU=Service Accounts,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_bind_password: sunrise
system_ldap_search_base: OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_uris:
  - ldaps://ldap-tyo.example.aikatsu.net:636
  - ldaps://ldap-ngo.example.aikatsu.net:636
system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_filter_users: []
system_ldap_access_unix_groups:
  - operations
system_ldap_sudo_groups:
  - operations
system_ldap_sudo_users: []

在这里,我们使用一个搜索用户帐户和密码(system_ldap_bind_*)通过SSL与LDAP服务器保持同步(带有故障转移的LDAPS服务器),允许"operations"组进行身份验证,以及获取root权限。

starlight组的变量文件可能如下所示:

---
system_ldap_allow_passwordauth_in_sshd: true
system_ldap_access_filter_users:
  - hoshimiya.ichigo
system_ldap_sudo_users:
  - hoshimiya.ichigo

这允许用户名hoshimiya.ichigo登录到starlight主机组中的机器,并且可以在其上使用sudo。上述变量与来自您的启用LDAP的AD服务器的sAMAccountName值匹配,以查找在system_ldap_search_base组中的任何用户。

您还可以指定组,但您需要为组过滤变量提供完整的DN。您可能还需要从all中复制与组相关的变量。对于其他变量,您可以直接使用CN。例如:

system_ldap_access_filter_groups:
  - CN=operations,OU=Security Groups,OU=Global,OU=Idol Schools,DC=Aikatsu,DC=net
  - CN=starlight-students,OU=Security Groups,OU=Starlight Academy,OU=Idol Schools,DC=Aikatsu,DC=net
system_ldap_access_unix_groups:
  - operations
  - starlight-students
system_ldap_sudo_groups:
  - operations

在这里,我们添加了一个starlight-students LDAP组,但仅允许他们登录。

开发

首先克隆和分支或叉这个仓库,进行更改,提交并提交拉取请求。

要跟踪 ansible vault 的更改,在您的git配置中包含 .gitconfig:

echo -e "[include]\n\tpath = ../.gitconfig" >> .git/config

测试

vagrant box add debian/stretch64
vagrant up
vagrant provision

许可证

MIT

关于项目

Install and configure SSSD for system-level LDAP authentication

安装
ansible-galaxy install j1ngk3.sssd_ldap
许可证
Unknown
下载
735
拥有者