우리 회사의 OpenLDAP 서버를 관리하기 위해 웹 프론트 엔드를 쓰고 있습니다. 나는 Perl, Apache2, OpenLDAP, Cyrus SASL을 사용하고있다.Kerberos 자격 증명이 mod_auth_kerb/Apache2, Authen :: SASL/perl을 사용하여 openldap에 전달되지 않았습니다.
Credentials cache file '/tmp/krb5cc_33' not found
가 "33"는이다 : 웹 인터페이스를 사용하는 경우 내 Kerberos 자격이 전달되지 않기 때문에, 사용자가 Kerberos를 검증하고, 아파치 오류 로그가 말한대로
문제는 내가 OpenLDAP를 인증 할 수 없습니다입니다 Apache 용 uidNumber. 어떤 의미가 있지만 문제를 해결하지는 못합니다. 역설적이게도 mod_auth_kerb는 사용자 이름과 암호를 묻고 인증하고 티켓을 캐시하기 때문에 모든 영역에서 작동합니다.
mod_auth_kerb를 사용하여 Apache2 인증을 받았는데 제대로 작동합니다. 비밀번호가 프롬프트되지 않고 보호 된 페이지가 인증 된 사용자에게 표시됩니다 (그렇지 않은 경우 거부 됨). 설정의 관련 조각 :
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AuthType Kerberos
AuthName "Kerberos Login"
KrbAuthRealms EXAMPLE.COM
Krb5Keytab /etc/apache2/HTTP.keytab
KrbServiceName HTTP
KrbSaveCredentials on
require valid-user
</Directory>
에서 Kerberos/GSSAPI/SASL 인증도 잘 작동하므로 명령 줄에서 실행할 때이 코드는 확인을 제공합니다 : 그래서
1 #!perl
2 use strict;
3 use warnings;
4 use Net::LDAP;
5 use Authen::SASL;
6
7 my $l = Net::LDAP->new('ldap.example.com', onerror=>'die',);
8 my $sasl = Authen::SASL->new(mechanism=>'GSSAPI');
9 $l->bind(sasl=>$sasl);
10
11 print "OK\n";
, 해결 될 일을 ?
더블 홉 케이스를 치는 건가요? perl 스크립트에서 바인드 호출의 반환 값을 확인 했습니까? 오류가있을 수 있습니다. – Jayen