5.5.2. Kerberos 認証情報を使用したクライアントの認証
AMQ Broker は、Simple Authentication and Security Layer (SASL) フレームワークからの GSSAPI メカニズムを使用する AMQP 接続の Kerberos 認証をサポートします。
ブローカーは、Java Authentication and Authorization Service (JAAS) を使用して Kerberos アクセプターの認証情報を取得します。Java インストールに含まれる JAAS ライブラリーは、Kerberos 認証情報を認証するログインモジュール Krb5LoginModule
でパッケージ化されています。Krb5LoginModule
の詳細は、Java ベンダーのドキュメントを参照してください。たとえば、Oracle は、Java 8 ドキュメント の一部として、Krb5LoginModule
ログインモジュールに関する情報を提供します。
前提条件
- Kerberos セキュリティー認証情報を使用して AMQP 接続を承認する前に、アクセプターの GSSAPI メカニズムを有効にする必要があります。詳細は、「Kerberos を使用するネットワーク接続の設定」 を参照してください。
手順
ブローカーを停止します。
Linux の場合:
<broker_instance_dir>/bin/artemis stop
Windows の場合:
<broker_instance_dir>\bin\artemis-service.exe stop
-
<broker_instance_dir>/etc/login.config
設定ファイルを開きます。 amqp-sasl-gssapi
という名前の設定スコープを追加します。以下の例は、Oracle および OpenJDK バージョンの JDK にあるKrb5LoginModule
の設定を示しています。amqp-sasl-gssapi { com.sun.security.auth.module.Krb5LoginModule required isInitiator=false storeKey=true useKeyTab=true principal="amqp/my_broker_host@example.com" debug=true; };
amqp-sasl-gssapi
-
デフォルトでは、ブローカーの GSSAPI メカニズム実装は
amqp-sasl-gssapi
という名前の JAAS 設定スコープを使用して Kerberos アクセプター認証情報を取得します。 Krb5LoginModule
-
このバージョンの
Krb5LoginModule
は、Oracle および OpenJDK バージョンの JDK で提供されます。Java ベンダーのドキュメントを参照して、Krb5LoginModule
の完全修飾クラス名とその利用可能なオプションを確認します。 useKeyTab
-
Krb5LoginModule
は、プリンシパルの認証時に Kerberos キータブを使用するように設定されます。キータブは、Kerberos 環境からツールを使用して生成されます。Kerberos キータブの生成に関する詳細は、ベンダーのドキュメントを参照してください。 principal
-
プリンシパルは
amqp/my_broker_host@example.com
に設定されます。この値は、Kerberos 環境で作成されたサービスプリンシパルに対応する必要があります。サービスプリンシパルの作成に関する詳細は、ベンダーのドキュメントを参照してください。
ブローカーを起動します。
Linux の場合:
<broker_instance_dir>/bin/artemis run
Windows の場合:
<broker_instance_dir>\bin\artemis-service.exe start
5.5.2.1. 代替設定スコープの使用
AMQP アクセプターの URL にパラメーター saslLoginConfigScope
を追加して、 別の設定スコープを指定できます。以下の設定例では、saslLoginConfigScope
パラメーターに alternative-sasl-gssapi
の値が指定されています。結果は、<broker_instance_dir>/etc/login.config
で宣言される alternative-sasl-gssapi
という名前の代わりのスコープを使用するアクセプターです。
<acceptor name="amqp"> tcp://0.0.0.0:5672?protocols=AMQP;saslMechanisms=GSSAPI,PLAIN;saslLoginConfigScope=alternative-sasl-gssapi` </acceptor>