跳转到主要内容

从YAML或LDAP管理PostgreSQL角色和权限

项目描述

ldap2pg: PostgreSQL role and privileges management

Continuous Integration report Code coverage report Documentation Version on PyPI Docker Image Available

瑞士军刀,用于从YAML或LDAP同步Postgres角色和权限。

Postgres能够使用LDAP协议直接与企业目录进行密码校验。ldap2pg可以根据目录中描述的企业组织结构自动创建、更新和删除PostgreSQL角色和用户。

管理角色与权限管理相似,因为您期望角色具有适当的默认权限。ldap2pg也可以授予和撤销权限。

功能

  • 从表达式丰富的YAML配置文件读取设置。

  • 根据LDAP搜索创建、修改和删除PostgreSQL角色。

  • 从YAML创建静态角色以完成LDAP条目。

  • 管理角色成员(别名)。

  • 静态或从LDAP条目中授予或撤销权限。

  • 干运行,检查模式。

  • 将LDAP搜索记录为ldapsearch(1)命令。

  • 记录每条SQL查询。

以下是一个示例配置和执行

$ cat ldap2pg.yml
- role:
    name: ldap_roles
    options: NOLOGIN
- ldapsearch:
    base: ou=people,dc=ldap,dc=ldap2pg,dc=docker
    filter: "(objectClass=organizationalPerson)"
  role:
    name: '{cn}'
    options: LOGIN
    parent: ldap_roles
$ ldap2pg --real
Starting ldap2pg 5.7.
Using .../ldap2pg.yml.
Running in real mode.
Inspecting roles in Postgres cluster...
Querying LDAP ou=people,dc=ldap,dc=lda... (objectClass...
Create domitille.
Add missing ldap_roles members.
Delete spurious ldap_roles members.
Update options of albert.
Reassign oscar objects and purge ACL on postgres.
Reassign oscar objects and purge ACL on template1.
Drop oscar.
Synchronization complete.
$

安装

ldap2pg需要Python 2.6+或3+,pyyaml,python-ldap和psycopg2。

通用的安装方法是使用pip从PyPI下载。其他方法和更多细节请参阅此文档。

# apt install -y libldap2-dev libsasl2-dev # pip install ldap2pg psycopg2-binary

ldap2pg 采用 PostgreSQL 许可证。在众多好心人的帮助下,ldap2pg 得以发布,您可以查看 贡献者列表 了解他们。

ldap2pg 需要 一个名为 ldap2pg.yaml 的配置文件。[简单但经过测试的 ldap2pg.yml](https://github.com/dalibo/ldap2pg/blob/master/ldap2pg.yml) 是一个很好的起点。

# curl -LO https://github.com/dalibo/ldap2pg/raw/master/ldap2pg.yml # 编辑 ldap2pg.yml

最后,您可以根据自己的需求在 crontab 或 playbook 中使用 ldap2pg。祝您玩得开心!

ldap2pg 已证实可以与 OpenLDAPFreeIPA、Oracle Internet Directory 和 Microsoft Active Directory 一起工作。

支持

如果您需要支持,但未在 文档 中找到,请将问题发至 GitHub 问题!法语也接受。不要错过 烹饪书。欢迎您!

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

ldap2pg-5.9.tar.gz (44.7 kB 查看散列值)

构建分布

ldap2pg-5.9-py2.py3-none-any.whl (48.7 kB 查看哈希值)

上传于 Python 2 Python 3

由以下支持