【问题标题】:How to connect to a ldap through a proxy ldap?如何通过代理 ldap 连接到 ldap?
【发布时间】:2016-12-09 10:24:40
【问题描述】:

我有一个小问题。在工作中,我们将很快使用代理 ldap 连接到我们的 ldap。

但是,我的perl脚本以前是直接连接到ldap的,我找不到通过ldap代理连接到ldap的正确方法。

ldap 团队告诉我只需通过代理的 url 更改“my.local.ldap.org”。

但是当我这样做时,除了错误“无法在 myscript.pl 第 X 行, 第 403 行联系 LDAP 服务器”之外,我什么也得不到。

我不知所措,因为我对 perl 还很陌生。

如何通过 ldap 代理连接到我的 ldap 并获取我的数据?

这是我的 perl 代码:

#!/usr/bin/perl

use warnings;
use strict;
use Net::LDAP;
use Net::SMTP;
use MIME::Lite;
use Getopt::Std;

connect_ldap();

sub connect_ldap {

    my @attributs = qw(uid subsidiary preferredLanguage);

    my $ldap = Net::LDAP->new(
        "my.local.ldap.org",
        port => 389
    ) or die open (STDERR, ">&SDTOUT");

    my $mesg = $ldap->bind (
        "cn=app_readonly,ou=account,ou=security,o=oubase",
        password => "mypassword"
    );

    $mesg = $ldap->search(
        base   => "o=oubase",
        scope => "sub",
        filter => "(&(objectclass=inetOrgPerson)(|(subsidiary=sub1)(subsidiary=sub2))(role=id=app_access,id=APP,*))",
        attrs => [ @attributs ]
    );

 printf "COUNT : %s\n", $mesg->count;
foreach my $entry ($mesg->entries) {
$entry->dump;
 }
print "==========================================\n";

        $mesg = $ldap->unbind;
        $ldap->unbind;

    }

【问题讨论】:

    标签: perl proxy ldap


    【解决方案1】:

    一般来说,只要 LDAP 代理设置正确,通过代理连接(假设它是 LDAP 代理)与直接连接到 LDAP 服务器应该没有任何区别。您是否尝试过远程登录到代理的主机/端口以查看您是否获得了正确的连接信息?

    【讨论】:

    • 我确实在端口和 url 和 ip 上尝试了一个 telnet,并且有效。 nmap 告诉我该端口也已打开。所以我更倾向于认为这是阻止连接的 ldap 代理设置。
    • 你可能是对的。如果您不信任您的代码,您可以随时尝试使用 ldapsearch 之类的客户端来测试 LDAP 代理。让 ldapsearch 客户端绑定为代码中的用户。
    • 确实尝试过,(为什么我之前没有想到)。客户端无法连接到 ldap。 ldap 代理的可能性越来越大。
    猜你喜欢
    • 2012-08-30
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2013-06-25
    • 1970-01-01
    相关资源
    最近更新 更多