手当たり次第に書くんだ

飽きっぽいのは本能

Mac で Apache Directory Studio が起動しない時の確認点 – Apple Silicon、Java、LDAP / LDAPS

Mac、特に Apple Silicon の Mac で Apache Directory Studio を使おうとすると、Java まわりの問題で起動できないことがあります。この記事では、当時遭遇したエラーを整理しつつ、LDAP / LDAPS の確認ツールとして Apache Directory Studio を使う場合の注意点をまとめます。

Apache Directory Studio は LDAP ブラウザとして便利です。Active Directory、OpenLDAP、Samba AD、各種 LDAP 連携の確認では、CLI の ldapsearch だけでは見通しが悪い場面があります。属性、DN、ツリー構造、検索条件を GUI で確認できるため、認証基盤の設計やトラブルシュートでは今でも有用です。

発生したエラー

Mac mini M2 で Apache Directory Studio を起動しようとしたところ、次のような JVM 関連のエラーが出ました。

The JVM shared library "/Library/Java/JavaVirtualMachines/temurin-20.jdk/Contents/Home/bin/../lib/server/libjvm.dylib"

does not contain the JNI_CreateJavaVM symbol.

対象の libjvm.dylib が存在していても、このエラーが出ることがあります。ファイルがないというより、Apache Directory Studio 側が期待する Java / Eclipse RCP の実行環境と、インストールされている JDK のアーキテクチャや実行形式が噛み合っていない状態と考えた方が分かりやすいです。

原因の見方

Apache Directory Studio は Eclipse RCP ベースのアプリケーションです。そのため、単純な Java CLI アプリとは異なり、macOS 版アプリ、Eclipse ランチャー、JDK、CPU アーキテクチャの組み合わせに影響を受けます。

観点確認すること
CPU アーキテクチャApple Silicon か Intel Mac か
JDK の種類aarch64 版か x64 版か
アプリ側のビルドApache Directory Studio の macOS 版がどの実行環境を前提にしているか
Java パスInfo.plist やランチャーが参照している Java が意図したものか

当時の環境では、Apple Silicon 用の aarch64 版 Java を入れていても Apache Directory Studio が正常に起動しませんでした。結果として、x64 版 Java を使うことで起動できました。これは、Java 自体の問題というより、Apache Directory Studio / Eclipse RCP 側の Apple Silicon 対応との相性として見るのが自然です。

回避策

回避策としては、Apache Directory Studio をインストールした上で、x64 版の JDK を入れて使う方法があります。Apple Silicon Mac では直感に反して見えますが、アプリ側が x64 前提で動いている場合は、x64 版 Java の方が噛み合うことがあります。

  • Apache Directory Studio の macOS 版をインストールする
  • aarch64 版 Java で起動できない場合は x64 版 JDK を試す
  • 必要に応じて Rosetta 2 の利用を確認する
  • アプリが参照している Java パスを確認する

macOS 版 Apache Directory Studio の Java パスなどを確認する場合は、アプリ内の Info.plist を見ると手掛かりになります。

/Applications/ApacheDirectoryStudio.app/Contents/Info.plist

公式サイトでは、macOS 版のダウンロードに加えて Homebrew や MacPorts でのインストール方法も案内されています。環境によっては、パッケージ管理ツール経由の方が扱いやすい場合もあります。

brew install apache-directory-studio

LDAPS 接続で確認すること

Apache Directory Studio は LDAP だけでなく LDAPS の確認にも使えます。ただし、LDAPS では「接続できるか」だけでなく、証明書名、接続先名、信頼 CA、ポート番号をセットで見る必要があります。

項目確認内容
接続先名証明書の CN / SAN と一致する DNS 名で接続しているか
ポートLDAP は 389/TCP、LDAPS は 636/TCP を使う
CA 証明書内部 CA や自己署名 CA をクライアント側で信頼しているか
Bind DN認証に使う DN または UPN が正しいか
検索ベースBase DN が正しい階層を指しているか

特に Active Directory へ LDAPS 接続する場合、IP アドレスで接続すると証明書名と一致せず失敗することがあります。DNS 名、証明書、LDAP 接続設定を別々に見るのではなく、1 つの認証経路として確認します。

CLI と GUI の使い分け

LDAP の確認は CLI だけでも可能です。たとえば ldapsearch を使えば、Bind、検索ベース、フィルタ、属性の確認ができます。

ldapsearch -H ldaps://dc01.example.com:636   -D 'CN=ldap-reader,OU=Users,DC=example,DC=com'   -W   -b 'DC=example,DC=com'   '(sAMAccountName=testuser)' dn cn memberOf

一方で、OU、グループ、属性、DN の階層を俯瞰したい場合は Apache Directory Studio のような GUI ツールが便利です。設計段階では GUI で構造を把握し、運用や自動化では CLI / LDIF / Ansible に寄せる、という使い分けが現実的です。

まとめ

Mac で Apache Directory Studio が起動しない場合、単純に Java が入っていないというより、アプリ、Eclipse RCP、JDK、CPU アーキテクチャの組み合わせが問題になっている可能性があります。Apple Silicon Mac では、aarch64 版 Java でうまく動かない場合に x64 版 Java を試す価値があります。

LDAP / LDAPS の確認ツールとしては、Apache Directory Studio は今でも有用です。ただし、LDAPS では証明書、DNS、接続名、信頼 CA が絡むため、ツールの起動問題と接続問題を分けて確認することが大切です。

参考
書籍
参考書籍

LDAP – 設定・管理・プログラミング

LDAP / OpenLDAP の設定、管理、連携を確認したい場合の参考書籍です。古い書籍のため、価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

参考

Mac で Apache Directory Studio が起動しない時の確認点 – Apple Silicon、Java、LDAP / LDAPS

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る