私はjavaldapを使用してActiveDirectory、より具体的にはSpringldapにアクセスしています。フィルタがrfc2254で指定されているようにエンコードされている場合、objectGUIDによるグループ検索では結果が得られません。
これは、16進表現のGUIDです。
\49\00\f2\58\1e\93\69\4b\ba\5f\8b\86\54\e9\d8\e9
spring ldapは、次のようにフィルターをエンコードします。
(&(objectClass=group)(objectGUID=\5c49\5c00\5cf2\5c58\5c1e\5c93\5c69\5c4b\5cba\5c5f\5c8b\5c86\5c54\5ce9\5cd8\5ce9))
rfc2254およびmicrosofttechnetで言及されているように:
文字は、バックスラッシュ''文字(ASCII 0x5c)の後に、エンコードされた文字のASCII値を表す2桁の16進数としてエンコードする必要があります。2桁の16進数の場合は重要ではありません。ブロッククォート
したがって、円記号は'\5c'である必要があります
しかし、ADからの上記のフィルターでは結果が得られません。また、そのフィルターをAD管理コンソールのカスタムフィルターに配置すると、機能しません。フィルタから5cを削除すると、JavaとADコンソールの両方で機能します。
ここで何かが足りませんか?
もちろん、5cなしでフィルターをエンコードすることはできますが、それが正しい方法かどうかはわかりません。手動で実行する必要のある多くのことを知っているので、Springにフィルターをエンコードさせることを好みます。