许多企业应用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连接 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。