ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

10分钟搭建本地LDAP服务器:Novell.Directory.Ldap.NETStandard开发测试环境实战

10分钟搭建本地LDAP服务器:Novell.Directory.Ldap.NETStandard开发测试环境实战 10分钟搭建本地LDAP服务器Novell.Directory.Ldap.NETStandard开发测试环境实战【免费下载链接】Novell.Directory.Ldap.NETStandard.NET LDAP client library for .NET Standard 2.0, .NET Core 1.0, NET5/NET6/NET7/NET8 - works with any LDAP protocol compatible directory server (including Microsoft Active Directory).项目地址: https://gitcode.com/gh_mirrors/no/Novell.Directory.Ldap.NETStandard想快速搭建本地 LDAP 服务器做开发测试吗这篇实战教程带你 10 分钟搞定Novell.Directory.Ldap.NETStandard 是一个 .NET 的 LDAP 客户端库支持 .NET Standard 2.0 及以上.NET Core、.NET 5~8/9可连接任何兼容 LDAP 协议的目录服务器包括 Microsoft Active Directory、OpenLDAP、OpenDJ 等。下面我们就用它自带的脚本把一套可连可查的本地测试环境搭起来。环境准备先认识这几样东西搭建前你需要准备三样东西工具用途说明Docker运行 OpenDJ 容器最快路径推荐OpenLDAP (slapd)原生安装方式Ubuntu 下可用 apt 安装.NET SDK运行客户端示例与库版本匹配即可两种方案对比一下方案 ADocker OpenDJ—— 一条命令拉起服务器适合绝大多数人方案 BUbuntu 原生 OpenLDAP—— 不依赖 Docker 时的替代方案 本仓库内置了完整的配置与脚本test/目录就是官方功能测试所使用的环境跟着它走最省心。第一步获取项目源码git clone https://gitcode.com/gh_mirrors/no/Novell.Directory.Ldap.NETStandard cd Novell.Directory.Ldap.NETStandard方案ADocker 一键启动 OpenDJ约5分钟1. 配置容器参数容器所需环境变量基础 DN、管理员账号等已经定义好直接查看即可环境变量文件opendj-docker-env.props关键参数一览监听端口1389LDAP、1636LDAPS基础 DNdcexample,dccom管理员 DNcnadmin,dcexample,dccom密码password2. 启动 OpenDJ 容器执行仓库自带的启动脚本对应内容见 configure-opendj.shdocker run -d -h ldap-01.example.com -p 4389:1389 -p 4636:1636 -p 4444:4444 \ --name opendj --env-file opendj-docker-env.props openidentityplatform/opendj本地端口4389映射到容器内的1389。等待约 30 秒让容器完成初始化。3. 导入测试数据仓库自带了一份 LDIF 测试数据包含组织节点和两个示例用户其中userWithSpecialPasswordChars专门用于测试特殊字符密码见 test/conf/setupData.ldifldapadd -H ldap://localhost:4389 -D cnadmin,dcexample,dccom -w password -f test/conf/setupData.ldif4. 验证服务器可用ldapwhoami -H ldap://localhost:4389 -D cnadmin,dcexample,dccom -w password看到返回的管理员 DN 信息说明本地 LDAP 服务器已经就绪 ✅方案BUbuntu 原生 OpenLDAP约10分钟不方便用 Docker 时可以运行仓库提供的自动化脚本完整逻辑见 configure-openldap.sh它会自动完成四件事停止系统自带的 slapd并处理 AppArmor 限制WSL 环境下自动跳过用certtool生成 CA 与服务端证书支持 LDAPS以本地用户身份启动 slapd监听5389LDAP与5636LDAPS配置来自 test/conf/slapd.conf用ldapwhoami验证连接并导入setupData.ldif测试数据bash configure-openldap.sh⚠️ 如果启动后提示Access denied大概率是 AppArmor 拦截了 slapd脚本中已包含对应的禁用步骤详见 configure-openldap.sh。用 .NET 客户端连接本地服务器环境搭好后用 Novell.Directory.Ldap.NETStandard 连接体验一下完整流程安装 NuGet 包Novell.Directory.Ldap.NETStandard然后编写如下代码。1. 连接并绑定验证账号密码await using var cn new LdapConnection(); await cn.ConnectAsync(localhost, 4389); await cn.BindAsync(cnadmin,dcexample,dccom, password);2. 执行一次搜索查询await using var results await cn.SearchAsync( dcexample,dccom, LdapConnection.SCOPE_SUB, (objectclass*), null, false); while (await results.NextAsync()) { var entry results.Current; Console.WriteLine(entry.DN); }完整的同步版示例代码可以对照 original_samples/Samples/Bind.cs绑定和 original_samples/Samples/Search.cs搜索。功能测试连接配置在哪里改想跑仓库自带的功能测试套件只需修改测试项目的连接配置所有参数地址、端口、基础 DN、管理员账号都在一个文件里测试配置test/Novell.Directory.Ldap.NETStandard.FunctionalTests/appsettings.json配置读取逻辑TestsConfig.csDocker 方案把ServerAddress改为localhost、ServerPort改为4389即可直接运行测试。常见问题排查问题原因解决办法ldapwhoami连接被拒AppArmor 限制Ubuntu 原生方案运行 configure-openldap.sh 中的禁用步骤端口被占用5389/4389 等端口已被占用修改脚本中-h或-p参数换一个端口绑定失败InvalidCredentials账号 DN 或密码写错对照 opendj-docker-env.props 检查ROOT_USER_DN与ROOT_PASSWORD导入 LDIF 报结构错误基础 DN 不存在先确认容器/服务已完成初始化再执行ldapadd总结你的10分钟成果清单 到这里你已经完成了✅ 本地运行了一个 LDAP 服务器OpenDJ 或 OpenLDAP✅ 导入了含组织与用户节点的测试数据✅ 用 Novell.Directory.Ldap.NETStandard 成功完成连接、绑定、搜索三连✅ 掌握了修改 appsettings.json 即可切换任意测试服务器后续想深入密码修改扩展操作、分页搜索、StartTLS 等能力可以看看 ChangeLog.md 了解各版本新增特性original_samples/目录下的样例覆盖了绑定、增删改查、安全连接等常见场景是快速上手的最佳参考。祝开发顺利【免费下载链接】Novell.Directory.Ldap.NETStandard.NET LDAP client library for .NET Standard 2.0, .NET Core 1.0, NET5/NET6/NET7/NET8 - works with any LDAP protocol compatible directory server (including Microsoft Active Directory).项目地址: https://gitcode.com/gh_mirrors/no/Novell.Directory.Ldap.NETStandard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表