svn authz ldap同步工具

authzync的Python项目详细描述


 ______     __  __     ______   __  __     ______     __  __     __   __     ______
/\  __ \   /\ \/\ \   /\__  _\ /\ \_\ \   /\___  \   /\ \_\ \   /\ "-.\ \   /\  ___\
\ \  __ \  \ \ \_\ \  \/_/\ \/ \ \  __ \  \/_/  /__  \ \____ \  \ \ \-.  \  \ \ \____
 \ \_\ \_\  \ \_____\    \ \_\  \ \_\ \_\   /\_____\  \/\_____\  \ \_\\"\_\ \ \_____\
\/_/\/_/   \/_____/     \/_/   \/_/\/_/   \/_____/   \/_____/   \/_/ \/_/   \/_____/
  • 支持LDAP和本地用户。
  • 跟随嵌套组。
  • 与Python2和3兼容。

安装

git

$ pypi install ldap3
$ git clone https://github.com/rbw0/authzync.git

pypi

$ pypi install authzync

用法示例

authzync.json中指定的LDAP目录执行同步,从local_db.json获取非LDAP权限,并将结果写入svn_authz.txt

$ python authzync.py --config authzync.json --local_db local_db.json --authz svn_authz.txt

配置

authzync配置(–配置) 配置LDAP、映射、分析规则、日志记录等

本地用户(–本地数据库) 可用于为LDAP目录中不存在的用户(即本地用户)设置存储库权限。

工作原理

  1. authzync首先查找与ldap.base_dn中的patterns.access_pattern匹配的组
Note that there’s only one required part in the group name: ^{tt6}$ (RO or RW). This tells authzync which permission to apply to members of this group.
  1. 接下来,根据patterns.section_pattern
  2. 最后,获取成员列表并生成authz文件。

示例

authzync配置

NameValue
ldap.base_dnou=SVN,dc=example,dc=com
mappings.section_namedescription
patterns.access_pattern^svn_.*_(?P<repo_access>RO|RW)$
patterns.section_pattern^(?P<repo_name>.*):(?P<repo_path>/.*)

…和…

ldap目录

Group name^{tt9}$ valueMembers
svn_repo1-trunk_rorepo1:/trunkuser1, user2
svn_repo2-branches_rorepo2:/branchesuser1, user3
svn_repo1_rwrepo1:/user3

将导致

[repo1:/trunk]
user1 = r
user2 = r

[repo2:/branches]
user1 = r
user3 = r

[repo1:/]
user3 = rw

作者

由Robert Wikman于2017年创作

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
orm如何在Java中实现规范化映射?   java以编程方式修改Xtext生成的Mwe2工作流   java正在覆盖外部文件中的现有数据,如何停止?   java在ANTLR BNF语法符号中epsilon的等价物是什么?   java如何使用Hibernate@Anyrelated注释?   代码生成生成java类并在运行时加载它   java Maven无法在本地jar文件中收集依赖项   java NetBeans IDE 8.2不显示错误消息   java Selenium web驱动程序找不到元素   java如何修复“拒绝访问属性”invoke“”的权限?   JavaApacheJClouds,从比日期更早的blob中删除blob的最佳方法   java如何比较和排序树集中的项目?   使用JavaSpring和无头/解耦CMS   java使用swagercodegen在不同的类中生成端点   Java外部Keylistener没有响应