検索

5.5. 認証および承認での Kerberos の使用

download PDF

AMQP プロトコルでメッセージを送受信する場合、クライアントは Simple Authentication and Security Layer (SASL) フレームワークの GSSAPI メカニズムを使用して、AMQ Broker が認証する Kerberos セキュリティー認証情報を送信できます。Kerberos 認証情報は、認証されたユーザーを LDAP ディレクトリーまたはテキストベースのプロパティーファイルで設定された割り当てられたロールにマッピングすることで、承認にも使用できます。

Transport Layer Security (TLS) と共に SASL を使用して、メッセージングアプリケーションのセキュリティーを確保できます。SASL はユーザー認証を行い、TLS はデータの整合性を確保します。

重要
  • AMQ Broker が Kerberos 認証情報を認証および承認する前に、Kerberos インフラストラクチャーをデプロイし、設定する必要があります。Kerberos のデプロイメントに関する詳細は、オペレーティングシステムのドキュメントを参照してください。

  • Oracle または IBM JDK のユーザーは、Java Cryptography Extension(JCE) をインストールする必要があります。詳細は、Oracle version of the JCE または IBM version of the JCE のドキュメントを参照してください。

以下の手順では、認証および承認に Kerberos を設定する方法を説明します。

5.5.1. Kerberos を使用するネットワーク接続の設定

AMQ Broker は、Simple Authentication and Security Layer (SASL) フレームワークの GSSAPI メカニズムを使用して、Kerberos セキュリティー認証情報と統合します。AMQ Broker で Kerberos を使用するには、Kerberos 認証情報を使用するクライアントを認証または承認する各アクセプターを GSSAPI メカニズムを使用するように設定する必要があります。

以下の手順では、Kerberos を使用するようにアクセプターを設定する方法を説明します。

前提条件

  • AMQ Broker が Kerberos 認証情報を認証および承認する前に、Kerberos インフラストラクチャーをデプロイし、設定する必要があります。

手順

  1. ブローカーを停止します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis stop
    2. Windows の場合:

      <broker_instance_dir>\bin\artemis-service.exe stop
  2. <broker_instance_dir>/etc/broker.xml 設定ファイルを開きます。
  3. name-value ペアの saslMechanisms=GSSAPIacceptor の URL のクエリー文字列に追加します。

    <acceptor name="amqp">
      tcp://0.0.0.0:5672?protocols=AMQP;saslMechanisms=GSSAPI
    </acceptor>

    上記の設定は、Kerberos クレデンシャルの認証時に、アクセプターが GSSAPI メカニズムを使用することを意味します。

  4. (オプション) PLAIN および ANONYMOUS SASL メカニズムもサポートされます。複数のメカニズムを指定するには、コンマ区切りリストを使用します。以下に例を示します。

    <acceptor name="amqp">
      tcp://0.0.0.0:5672?protocols=AMQP;saslMechanisms=GSSAPI,PLAIN
    </acceptor>

    結果は、GSSAPI および PLAIN SASL メカニズムの両方を使用するアクセプターです。

  5. ブローカーを起動します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis run
    2. Windows の場合:

      <broker_instance_dir>\bin\artemis-service.exe start

関連情報

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 ログインモジュールに関する情報を提供します。

前提条件

手順

  1. ブローカーを停止します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis stop
    2. Windows の場合:

      <broker_instance_dir>\bin\artemis-service.exe stop
  2. <broker_instance_dir>/etc/login.config 設定ファイルを開きます。
  3. 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 環境で作成されたサービスプリンシパルに対応する必要があります。サービスプリンシパルの作成に関する詳細は、ベンダーのドキュメントを参照してください。
  4. ブローカーを起動します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis run
    2. 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>

5.5.3. Kerberos 認証情報を使用したクライアントの承認

AMQ Broker には、ロールのマッピング時に他のセキュリティーモジュールで使用される JAAS Krb5LoginModule ログインモジュールの実装が含まれています。モジュールは、Kerberos 認証されていないピアプリンシパルを AMQ Broker UserPrincipal として設定された Subject のプリンシパルに追加します。その後、認証情報は PropertiesLoginModule または LDAPLoginModule モジュールに渡して、Kerberos 認証のピアプリンシパルを AMQ Broker ロールにマップできます。

注記

Kerberos ピアプリンシパルはロールメンバーとしてのみ存在し、ブローカーユーザーとしては存在しません。

前提条件

  • Kerberos セキュリティー認証情報を使用して AMQP 接続を承認する前に、アクセプターの GSSAPI メカニズムを有効にする必要があります。

手順

  1. ブローカーを停止します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis stop
    2. Windows の場合:

      <broker_instance_dir>\bin\artemis-service.exe stop
  2. <broker_instance_dir>/etc/login.config 設定ファイルを開きます。
  3. AMQ Broker Krb5LoginModule および LDAPLoginModule の設定を追加します。LDAP プロバイダーのドキュメントを参照して、設定オプションを確認します。

    以下は設定例です。

    org.apache.activemq.artemis.spi.core.security.jaas.Krb5LoginModule required
        ;
    org.apache.activemq.artemis.spi.core.security.jaas.LDAPLoginModule optional
        initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory
        connectionURL="ldap://localhost:1024"
        authentication=GSSAPI
        saslLoginConfigScope=broker-sasl-gssapi
        connectionProtocol=s
        userBase="ou=users,dc=example,dc=com"
        userSearchMatching="(krb5PrincipalName={0})"
        userSearchSubtree=true
        authenticateUser=false
        roleBase="ou=system"
        roleName=cn
        roleSearchMatching="(member={0})"
        roleSearchSubtree=false
        ;
    注記

    上記の例で示される Krb5LoginModule のバージョンは AMQ Broker で配布され、Kerberos アイデンティティーをロールマッピングに使用できるブローカーアイデンティティーに変換します。

  4. ブローカーを起動します。

    1. Linux の場合:

      <broker_instance_dir>/bin/artemis run
    2. Windows の場合:

      <broker_instance_dir>\bin\artemis-service.exe start

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.