编程语言
首页 > 编程语言> > 如何为管道测试创建 LDAP 沙盒

如何为管道测试创建 LDAP 沙盒

作者:互联网

  许多企业应用LDAP或轻量级目录浏览协议存储相关员工信息,允许员工根据个人角色浏览组织资源。Microsoft的ActiveDirectory(AD)使用该协议的最著名数据库。

  对于最近的信息工程项目,客户必须创建一条管道,将新员工批量添加到内部部署AD其中,并根据各种独特的元素为这些新员工分配角色、登录名称等特征。在处理这个项目时,我需要一些方法来测试我正在做的工作。但由于安全原因,客户端不能浏览AD服务器,即使可以,服务器也处于活动状态,不是一个好的测试平台。

  为了在管道上建立检测沙箱,我用了:

  Docker和云服务,在我的例子中,Azure。除了云服务,我还可以使用当地的计算机隧道服务。

  与服务器互动的接口

  在我的例子中,管道集成平台是SnapLogic

  以下是我建立沙盒的过程,显示了几个不同的选项。

  从Docker镜像建立LDAP服务器

  OpenLDAP是LDAP开源完成,我用osixia/openldapdocker镜像操作它。(查询文档链接。

  选项1:将其作为Azure器皿案例操作

  我先要一个Azure账号安装在我的电脑上AzureCLI。

  选项2:在本地计算机上运行容器

  你不应该订阅Azure或者其他云服务,或者你可能更喜欢在当地运行容器。在我身边。Mac上装上docker之后,我创立了一个docker器皿包括用于上面的器皿Azure指令等效指令。

  连接到接口LDAP服务器

  选项1:在docker在容器中启动接口

  根据其主页,“phpLDAPadmin是一个基于Web的LDAP客户端。它是给你的LDAP服务器提供简单的多语言管理,到处都可以浏览。”与OpenLDAP和服务器一样,这个客户端也是如此docker印象存在;它位于osixia/phpldapadmin。

  应用这个图像,我会在当地创建容器,但是我会把它连接到服务器上Azure案例。请注意,我如何包含环境变量中的环境变量Azure为LDAP建立服务器皿IP地址。

  客户端器皿应用端口443,图像文档说将其投射到端口643。当它启动并运行时,我可以去那里localhost:6443浏览客户端。我看到一个登录页面。

  我应用在Azure设置服务器时定义的环境变量作为登录凭证。但请注意,登录用户名不仅仅是登录用户名。admin.我需要管理员的专有名称。在这种情况下,是cn=admin,dc=example,dc=com,在环境变量中,我定义的密码是pass_word。

  登录后,我可以建立实例用户账户、组织单位等目标。

  选项2:建立在当地主机上的隧道

  如果我选择上述选项2,在我当地的机器上创建一个容器,我可以将当地的服务器连接到当地的客户端接口容器,但请记住,最后我想LDAP服务器连接到数据集成平台和云。为了使服务器从云到我当地计算机的连接正常运行,我必须找出如何绕过防火墙来解决可能的变化IP地址等让人头疼的问题。

  建立隧道更容易,一个名字叫隧道ngrok服务使我能够做到这一点。当我注册的时候,我会得到一个免费的活动隧道,一旦安装在我的电脑上ngrok代理,我可以操作:

  这告知ngrok在389端口建立TCP连接,将连接投射到当地主机上的服务器皿上。(您需要应用程序。TCP协议而非HTTP,由于LDAP应用TCP。)Ngrok在终端中生成这样的页面。

  注意Forwarding好吧,其中一个URL与我分享localhost:389。该URL将应用于下一步。

  另一行需要注意Web页面位于http://127.0.0.1:4040。Ngrok允许您监督该地址的隧道,但要使其正常运行,您还必须在创建容器时公布4040端口。

  再一次,我需要一个接口来处理LDAP服务器进行互动。我可以再用一次。phpLDAPadmin,但这一次,我想展示另一个概率,我将应用ApacheDirectoryStudioLDAP浏览器免费下载浏览器Windows,Mac和Linux。

  安装后,我可以转到连接窗格并创建新的连接。“网络参数”在面板中,我输入由ngrok建立的URL以及关系的ngrok端口号(不是端口389)。

  在Authentication在面板中,我将输入与上述第一个选项相同的专有名称和密码。根据身份认证连接后,我可以开始向服务器添加内容。

  连接管道LDAP服务器

  如前所述,我是为了我的管道应用SnapLogic。为了与服务器互动,我必须在平台上使用正确的凭证添加我的账户。

  如果我在执行选项1,服务器在Azure在器皿上操作,我需要添加Azure创建的URL以及规范LDAP端口389和管理员的专有名称和密码。

  如果我在机器上本地运行服务器,我需要添加选项2ngrok隧道的URL,端口,以及管理员的专有名称和密码。

  我应该这样做。我带来了几个不同的选项。不管我选哪一个,我的沙盒都准备好了。

  奖励:添加自定架构

  OpenLDAP附加标准目标类,如果您需要具有自定义属性的对象类,则必须添加自己的方式。

  在这种情况下,我将展示如何使用本地服务器进行操作。

  首先,我创建了一个扩展名称.schema.在这里,我把它储存在这里cs.schema.文件内容如下:

  在这份文件中,我的名字叫“personnel”在新目标类中,只创建了两个新特征“sAMAccountType”和“myadditionnalAttr”,目标类基于inetOrgPerson。第一个属性是LDAP第二个是这种方法的编造特性。相关性。LDAP请查看其他文档,如方法结构、特征和代码信息,如LDAPwiki。

  这是我用来建造新器皿的docker指令与上述指令相似,但有一些修改:

  应用--volume标志,我将架构文件安装到容器的特定目录中。此外,为了使其正常工作,我实际上需要应用图像--copy-service指令。

  当器皿启动并运行时,我可以再次使用ngrok在隧道中建立并执行上述选项2流程。

标签:服务器,管道集成,本地创建,端口,TCP连接
来源: