質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

[OTRS]OpenLDAP上に登録したマルチバイト文字データを表示すると文字化けする

解決済

回答 2

投稿

  • 評価
  • クリップ 1
  • VIEW 5,620

dqm

score 14

OTRS-Portal 外部バックエンドの使用-LDAP
LDAPとしてOpenLDAPを用い、こちらのURLを参考に/Kernel/Config/Default.pmを編集致しました。
OpenLDAP内に作成したユーザによる顧客サイトへのログインは成功したため認証そのものに関しては問題ないのですが、マルチバイト文字のデータが文字化けしており困っております。

OpenLDAPの各パラメータとMAPとの関連付けは下記となります。
   1501         Map => [
   1502             # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
   1503             [ 'CustomerID',             'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ],
   1504             [ 'CustomerCompanyName',    'Customer',   'name',        1, 1, 'var', '', 0 ],
   1505             [ 'CustomerCompanyStreet',  'Street',     'street',      1, 0, 'var', '', 0 ],
   1506             [ 'CustomerCompanyZIP',     'Zip',        'zip',         1, 0, 'var', '', 0 ],
   1507             [ 'CustomerCompanyCity',    'City',       'city',        1, 0, 'var', '', 0 ],
   1508             [ 'CustomerCompanyCountry', 'Country',    'country',     1, 0, 'var', '', 0 ],
   1509             [ 'CustomerCompanyURL',     'URL',        'url',         1, 0, 'var', '[% Data.CustomerCompanyURL | html %]', 0 ],
   1510             [ 'CustomerCompanyComment', 'Comment',    'comments',    1, 0, 'var', '', 0 ],
   1511             [ 'ValidID',                'Valid',      'valid_id',    0, 1, 'int', '', 0 ],
   1512         ],

OpenLDAPに登録および今回表示したい顧客データが下記となります。
dn: uid=test,ou=People,dc=example,dc=net
objectclass: inetOrgPerson
uid: test
cn: 顧客 太郎
sn: 顧客
givenName: 太郎
userPassword: cerezo
mail: hoge@hoge.com

上記データに対してldapsearchを行った結果が下記となります。
dn: uid=test,ou=People,dc=example,dc=net
objectClass: inetOrgPerson
uid: test
cn:: 6aGn5a6i44CA5aSq6YOO
sn:: 6aGn5a6i
givenName:: 5aSq6YOO
userPassword:: Y2VyZXpv
mail: hoge@hoge.com

OTRS上で画面表示 (例.管理者ログイン>管理>顧客ユーザー: /otrs/index.pl?Action=AdminCustomerUser) 
ユーザー名:cerezo
名前:太郎 é¡§å®¢     # この要素が文字化け
メール:hoge@hoge.com
顧客ID:cerezo

他の要素に関しても同様に文字化けが発生しているのですが、
例外として顧客側サイト (/otrs/customer.pl) のナビゲーションバー右部に表示される「個人設定 | logout ユーザ名」の箇所は文字化けが発生しておりませんでした。
こちらを参考に設定を行えば良いものかと試行錯誤してみたのですが、どうにも上手く動かないため質問させて頂きます。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

ldapsearch の結果で「属性::」となっているものは値が Base64 でエンコードされています。
ご使用のプログラムまたは LDAPライブラリが Base64デコードしているのか確認してみてください。
デコードしているのでしたら、UTF-8, SJIS などのエンコーディングが違うのかしら。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/15 09:44

    回答ありがとうございます。返答が遅くなり申し訳ありません。
    OTRS Base64で検索してみたところ、
    /opt/otrs/Kernel/cpan-lib/MIME/Decoder/Base64.pm
    というファイルが格納されていたためこちらに関して少々調べてみます。

    キャンセル

  • 2014/12/15 10:07

    すみません!解決致しました
    上記 /opt/otrs/Kernel/Config/Defaults.pm 内に
    1424 # if the charset of your ldap server is iso-8859-1, use this:
    1425 # SourceCharset => 'iso-8859-1',
    との記述があり、こちらの文字コードをUTF-8にすることで無事出力に成功致しました。
    エンコーディングが違う、というアドバイス通りでした、ありがとうございます。

    キャンセル

0

思い当たる部分を回答いたします。ldapsearchの出力がすでに文字化けしているようですね。
ldapaddする際、日本語はUTF-8でエンコードする必要があるようです。
LDAPデータ管理の図3にlvまたはnkfコマンドでエンコードする手法が書かれています。
これが原因だとログイン名も文字化けすると思うので、外しているかも知れません。
ご参考までに。
 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/15 09:41

    回答ありがとうございます。返答が遅くなり申し訳ありません。
    リンク先手法でldapaddを行ってみたのですが、searchの出力結果は変更されませんでした。
    (表示データとしては http://yasu-2.blogspot.jp/2009/10/openldap-24-utf-8.html かと思われます)
    また、画面上での文字化け解消は行われませんでした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る