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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

Q&A

解決済

2回答

8963閲覧

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

dqm

総合スコア13

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

0グッド

1クリップ

投稿2014/12/12 03:17

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

OpenLDAPの各パラメータとMAPとの関連付けは下記となります。

lang

1 1501 Map => [ 2 1502 # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly 3 1503 [ 'CustomerID', 'CustomerID', 'customer_id', 0, 1, 'var', '', 0 ], 4 1504 [ 'CustomerCompanyName', 'Customer', 'name', 1, 1, 'var', '', 0 ], 5 1505 [ 'CustomerCompanyStreet', 'Street', 'street', 1, 0, 'var', '', 0 ], 6 1506 [ 'CustomerCompanyZIP', 'Zip', 'zip', 1, 0, 'var', '', 0 ], 7 1507 [ 'CustomerCompanyCity', 'City', 'city', 1, 0, 'var', '', 0 ], 8 1508 [ 'CustomerCompanyCountry', 'Country', 'country', 1, 0, 'var', '', 0 ], 9 1509 [ 'CustomerCompanyURL', 'URL', 'url', 1, 0, 'var', '[% Data.CustomerCompanyURL | html %]', 0 ], 10 1510 [ 'CustomerCompanyComment', 'Comment', 'comments', 1, 0, 'var', '', 0 ], 11 1511 [ 'ValidID', 'Valid', 'valid_id', 0, 1, 'int', '', 0 ], 12 1512 ],

OpenLDAPに登録および今回表示したい顧客データが下記となります。

lang

1dn: uid=test,ou=People,dc=example,dc=net 2objectclass: inetOrgPerson 3uid: test 4cn: 顧客 太郎 5sn: 顧客 6givenName: 太郎 7userPassword: cerezo 8mail: hoge@hoge.com

上記データに対してldapsearchを行った結果が下記となります。

lang

1dn: uid=test,ou=People,dc=example,dc=net 2objectClass: inetOrgPerson 3uid: test 4cn:: 6aGn5a6i44CA5aSq6YOO 5sn:: 6aGn5a6i 6givenName:: 5aSq6YOO 7userPassword:: Y2VyZXpv 8mail: hoge@hoge.com

OTRS上で画面表示 (例.管理者ログイン>管理>顧客ユーザー: /otrs/index.pl?Action=AdminCustomerUser)

lang

1ユーザー名:cerezo 2名前:太郎 顧客 # この要素が文字化け 3メール:hoge@hoge.com 4顧客ID:cerezo

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

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

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

投稿2014/12/12 07:53

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dqm

2014/12/15 00:44

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

2014/12/15 01: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にすることで無事出力に成功致しました。 エンコーディングが違う、というアドバイス通りでした、ありがとうございます。
guest

0

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

投稿2014/12/12 05:06

BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dqm

2014/12/15 00:41

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問