Ticket #28564

DN の途中に日本語が含まれている場合に、chpasswd へのログインに失敗

Eröffnet am: 2012-05-30 12:03 Letztes Update: 2012-05-30 12:03

Auswertung:
Verantwortlicher:
(Keine)
Typ:
Status:
Offen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

http://www.secioss.co.jp/2008/01/lismactive_directoryopenldap.html にある設定例を元に、Active Directory と OpenLDAP の連携をしようとして設定(但し、Active Directory に対するストレージの設定では、<storage name="AD" hash="AD"> とした)し、chpasswd の basedn を AD 側を指定した時に、chpasswd のログイン画面で認証に失敗する。

仮に、cn=テストユーザ,ou=テストグループ,ou=ad,dc=example,dc=com という DN で、saMAccountName が testuser だった場合、chpasswd のユーザ名を testuser としてログインしようとすると、LISM.pm の sub bind 中の $binddn が、「cn=テストユーザ」の部分が文字化けしたものになっていた。「ou=テストグループ」の部分は正常。

この DN の生成は、おそらく、LISM/Handler/Rewrite.pm の _rewriteParse 中で

  1. $tmpstr =~ s/$match/$subst/gi;
としているところで、$tmpstr、$match、$subst の utf8 フラグが揃っていない時に、前述のような文字化けした文字列が生成されるらしい。

回避ポイントを探したところ、LISM/Handler.pm の _searchLdap 中と、LISM/Storage/LDAP.pm 中の _do_search の間で、Net::LDAP の結果に対する処理に違いがあり、LISM/Storage/LDAP.pm の場合には、検索結果に対して

  1. my $dn = decode('utf8', $entry->dn);
といった処理が入っているのに対し、LISM/Handler.pm では何もしていなかった。

LISM/Handler.pm の処理を LISM/Storage/LDAP.pm に合わせるように、下記のように修正すると、chpasswd へのログインができた。

  1. if ($msg->count) {
  2. my $entry = $msg->entry(0);
  3. my $tmpdn = Encode::decode_utf8($entry->dn);
  4. if ($ldapopts->{attr} eq 'dn') {
  5. # $values[0] = $entry->dn;
  6. $values[0] = $tmpdn;
  7. } elsif ($ldapopts->{attr} eq 'parentrdn') {
  8. # @values = ($entry->dn =~ /^[^,]+,([^,]+)/);
  9. @values = ($tmpdn =~ /^[^,]+,([^,]+)/);
  10. } else {
  11. # @values = $entry->get_value($ldapopts->{attr});
  12. foreach my $value ($entry->get_value($ldapopts->{attr})) {
  13. my $tmpval = Encode::decode_utf8($value);
  14. push(@values, $tmpval);
  15. }
  16. }
  17. if (!defined($values[0])) {
  18. @values = ('');
  19. }
  20. }

Ticket-Verlauf (1/1 Historien)

2012-05-30 12:03 Aktualisiert von: julymori
  • New Ticket "DN の途中に日本語が含まれている場合に、chpasswd へのログインに失敗" created

Dateianhangliste

Keine Anhänge

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden