跳转到主要内容

EDRN目录服务工具包

项目描述

🏃 JPL EDRN LDAP Utilities

此软件包仅包含一些针对早期检测研究网络目录服务的实用工具。EDRN目录服务是一个基于OpenLDAP的独立目录,同时也能处理用户和组信息,不仅限于EDRN,还涉及两个其他联盟

  • 筛查发现的病变的分子和细胞特征联盟
  • 国家标准与技术研究院

💽 安装

此软件需要Python 3。建议使用Python 3.9或更高版本,但Python 4不可用。通常,您会创建一个虚拟环境,并使用类似以下命令安装软件

python3 -m venv ldap-utils
cd ldap-utils
bin/pip install --upgrade --quiet setuptools wheel pip
bin/pip install jpl.edrn.ldap.utils==X.Y.Z

其中 X.Y.Z 是您想要的版本。要升级现有安装,请添加 --upgrade。然后“激活”虚拟环境(或使用程序的完整路径,例如 ldap-utils/bin/create-users)。

👩‍🔧 使用

目前唯一的实用工具是 create-users 脚本,您可以通过以下方式运行它

create-users USERSFILE

其中USERSFILE是一个CSV文件,包含要添加到LDAP服务器的用户 以及可选的纯文本密码。例如,您会运行

create-users --url ldaps://naming.jpl.nasa.gov --replace newusers.csv

newusers.csv中的用户添加到naming.jpl.nasa.gov上的LDAP服务器。如果没有指定USERSFILE,程序将从标准输入读取CSV数据。

💁‍♀️ 命令行选项

您可以使用以下命令行选项微调create-users的行为

选项 用法 默认
-r--replace 如果指定,则替换现有用户,覆盖所有属性 不替换
-b--base 所有用户的基准DN ou=users,o=NIST
-o--objectclass 新用户的对象类 (见下文)
-h--url LDAP服务器的URL ldaps://edrn-ds.jpl.nasa.gov
-D--manager-dn LDAP管理用户DN 合理的默认值
-w--password LDAP管理用户密码 (见下文)

⚠️请注意-r--replace。如果用户更改了密码、电子邮件地址或其他属性,并且他们的用户名出现在CSV文件中,则这些更改将丢失。

此外,您还可以指定--debug,这将导致create-users在操作期间打印详细的调试消息,或指定--quiet,这将导致它只报告错误。默认情况下,它只提供信息性消息。您还可以使用--help获取所有命令行选项的摘要,包括--version,它会告诉您正在运行哪个版本。

🎓 对象类

用户的默认对象类是

  • inetOrgPerson
  • organizationalPerson
  • person
  • top

您可以通过提供-o--objectclass来覆盖此设置;例如

create-users … --objectclass edrnPerson inetOrgPerson person top …

🔑 LDAP管理密码

create-users程序自然需要LDAP管理员的密码,以便它可以更新用户数据。您可以在命令行上使用-w--password提供密码,但请注意,系统上的其他程序和用户将能够看到此密码。

如果没有指定-w--password,密码将从MANAGER_DN_PASSWORD环境变量中获取。如果它是空的或未设置,您将被提示输入密码——这是提供密码的最安全方式。

🗂️ CSV文件格式

create-users期望的单个CSV文件应具有以下列

用途 映射LDAP属性
0 纯用户ID(不是一个唯一名称),例如joejschmoe uid(加基准DN)
1 姓氏,例如Schmoe sn
2 常用名,例如Joe Schmoe cn
3 电子邮件地址 mail
4 密码,但可能为空(见下文) userPassword

如果第一行和第一列(行0,列0)包含单词uid,则假定它是一个“标题行”,并将其跳过。如果有这些五个列之外的额外列,则忽略。请注意,列4应包含用于创建用户的plain text password。然而,如果它是空的,则将为用户生成一个随机密码。

👉 注意:随机生成的密码无法恢复。这些用户将需要使用您的“忘记密码”功能(如果有的话)来重置他们的密码。

以下是一个CSV文件(带有标题行)的示例,描述了三个用户,其中中间的用户将获得一个随机密码

uid,sn,cn,mail,password
joe,Schmoe,Joe Schmoe,joe@joe.com,h1ghly s3cr3t
waldo,Waldo,Where Is Waldo,waldo@waldo,com
lsimpson,Simpson,Lisa Simpson,lisa@simpsons.tv,bGdfj3z!jf01

👨‍👩‍👧‍👦 组

create-users程序对用户的LDAP组不进行任何操作。您必须自行管理这些组。例如,您可以创建一个类似这样的LDIF文件

dn: cn=My Group,ou=groups,o=NIST
objectClass: groupOfUniqueNames
objectClass: top
cn: My Group
uniqueMember: uid=joe,ou=users,o=NIST
uniqueMember: uid=waldo,ou=users,o=NIST
uniqueMember: uid=lsimpson,ou=users,o=NIST

并使用ldapadd来创建组。

🔧 开发

要本地开发此程序,请尝试以下操作

git clone https://github.com/EDRN/jpl.edrn.ldap.utils
cd jpl.edrn.ldap.utils
python3 -m venv .venv
.venv/bin/pip install --upgrade --silet setuptools build dist wheel
.venv/bin/pip install --editable .
.venv/bin/create-users …

👥 贡献

您可以从查看 开放问题、分叉项目并提交拉取请求开始。您还可以通过电子邮件 联系我们 提出建议。

🔢 版本号

我们使用 SemVer 哲学为该软件进行版本控制。有关可用版本,请参阅本项目上发布的 版本

👩‍🎨 创作者

主要开发者是

📃 许可证

该项目采用 Apache 2.0 许可协议。

项目详情


下载文件

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

源代码发行版

jpl.edrn.ldap.utils-0.0.0.tar.gz (14.4 kB 查看哈希值)

上传时间 源代码

构建发行版

jpl.edrn.ldap.utils-0.0.0-py3-none-any.whl (13.7 kB 查看哈希值)

上传时间 Python 3