ローカルファイルから読み込むBeanを登録し、必要に応じて他のJMXクライアントが利用できるようにするJMXサーバーがあります。 "jconsole"を使用するかTomcatコンテナの下で動作するJavaアプリケーションを使用してサーバーにアクセスできます。Java 6で実行されているJMXクライアント/サーバーでのKerberos認証/認可のサポート
私が望むのは、「未知」のIDがJMXサーバーにアクセスするのを防ぐために認証を追加することです。私は私のJMXサーバーは、上記の構成で起動して接続しようとすると、私は、Kerberos認証@サーバを追加したこの
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=5555
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
-Djava.security.auth.login.config=./conf/jaas.conf
-Djava.security.krb5.conf=./conf/krb5.conf
-Dcom.sun.management.jmxremote.login.config=MyKrbAuth
-Ddynamic.mbean.store=./conf/mbeans
-Djava.net.preferIPv4Stack=true
次のJVMオプションを使用して、私のjaas.confをこのようになります>>
MyKrbAuth {
com.sun.security.auth.module.Krb5LoginModule required debug=true debugNative=true;
};
を達成するためにそれ>>私は、クライアント側で次の例外を取得し、接続に失敗し、「jconsoleを」使用して
Cipher: Crypto Permission check failed
Cipher: granted: (CryptoPermission * 128)
Cipher: requesting: (CryptoPermission AES 256)
しかし、サーバーの認証に成功したように見える>>
[java] [STARTED] Mbean Server
[java] Debug is true storeKey false useTicketCache false useKeyTab false doNotPrompt false ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is false
[java] [Krb5LoginModule] user entered username: username
[java]
[java] Acquire TGT using AS Exchange
[java] principal is [email protected]
[java] EncryptionKey: keyType=3 keyBytes (hex dump)=0000: FD 46 7C 02 19 9B 34 E9
[java] EncryptionKey: keyType=1 keyBytes (hex dump)=0000: FD 46 7C 02 19 9B 34 E9
[java] EncryptionKey: keyType=23 keyBytes (hex dump)=0000: FE 6D 82 01 8A D7 AB 60 98
[java] EncryptionKey: keyType=16 keyBytes (hex dump)=0000: 89 02 31 5D F7 5B 3E 89 BC F7 8A 01 A1 80 C7
[java] EncryptionKey: keyType=17 keyBytes (hex dump)=0000: A5 67 71 17 F6 57 A9 26 01 09 B1 EB 75 46 6C
[java]
[java] Commit Succeeded
[java]
上記から、クライアントはレスポンス(AES256は暗号化されています)をデコードできないようです。
'jmxremote.access'に追加したアクセスエントリは何ですか?そのファイルのドキュメントを読むことは、ロールベースのアクセス制御のためです。 – Adam
私は知っていますが、login.configの 'authzIdentity'要素を使って、ユーザー名をファイルに追加するのではなく' jmxremote.access'ロールを指定しようとしましたか? – Adam