2014年9月17日水曜日

OpenLDAP 全角半角問題

OpenLDAPでは、LDAPデータとして、UTF-8の文字列を登録することができる。

このときに、全角Aと半角Aは、同じ文字として扱われる。

たとえば、認証時のユーザー名に全角英数字を使っていても半角英数字と同じユーザー名として扱われるため、認証に成功する。

これは、Unicodeの正規化の処理によって同一文字とみなされるという仕様に従ったもので、設定などで変更することはできない。

OpenLDAPのUnicodeの正規化の処理は、openldap/libraries/liblunicode 配下のコードで行われている。

正規化に用いられるマッピング情報などは、Unicodeコンソーシアムの提供する情報をもとにしており、openldap/libraries/liblunicode/ucdata/uctable.hに定義されており、ビルド時にOpenLDAPに組み込まれている。

0 件のコメント:

コメントを投稿