j1ngk3.sssd_ldap
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