6.2.3. 証明書ベースの認証の追加


JAAS 証明書認証ログインモジュールでは、TLS を使用する必要があり、クライアントは独自の証明書で設定する必要があります。このシナリオでは、認証は、JAAS 証明書認証プラグインによって直接ではなく、TLS ハンドシェーク中に実際に実行されます。

プラグインのロールは次のとおりです。

  • 受け入れ可能なユーザーのセットをさらに制限する (関連するプロパティーファイルに明示的にリストされているユーザー識別名 (DN) のみが認証を受ける資格があるため)。
  • グループのリストを受信したユーザー ID に関連付けて、承認との統合を容易にする。
  • 着信証明書の存在を要求する (デフォルトでは、TLS 層はクライアント証明書の存在をオプションとして扱うように設定されています)。

JAAS 証明書ログインモジュールは、フラットテキストファイルのペアに証明書 DN のコレクションを保存します。ファイルは、ユーザー名とグループ ID のリストを各識別名に関連付けます。

証明書ログインモジュールは、org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule クラスで実装されます。

前提条件

  • login.config ファイルで設定された証明書ログイン。
  • 有効な artemis-users.properties ファイル。
  • 有効な artemis-roles.properties ファイル。
  • ユーザー証明書からのサブジェクト DN

手順

  1. ユーザー証明書からサブジェクト DN を取得します。

    1. キーストアファイルから一時ファイルに証明書をエクスポートします。必要な値を次のコマンドに置き換えます。

      keytool -export -file __FILENAME__ -alias broker-localhost -keystore broker.ks -storepass __PASSWORD__
    2. エクスポートされた証明書の内容を出力します。

      keytool -printcert -file __FILENAME__

      出力は以下のようになります。

      Owner: CN=localhost, OU=broker, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 1
      Issuer: CN=localhost, OU=broker, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
      Serial number: 4537c82e
      Valid from: Thu Oct 19 19:47:10 BST 2006 until: Wed Jan 17 18:47:10 GMT 2007
      Certificate fingerprints:
               MD5:  3F:6C:0C:89:A8:80:29:CC:F5:2D:DA:5C:D7:3F:AB:37
               SHA1: F0:79:0D:04:38:5A:46:CE:86:E1:8A:20:1F:7B:AB:3A:46:E4:34:5C
      1
      サブジェクト DN。Subject DN の入力の使用形式はプラットフォームによって異なります。上記の文字列は、以下のように表現することもできます。
      Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
  2. 証明書ベースの認証の設定

    1. login.config ファイルを開き、ユーザーおよびロールのプロパティーファイルを参照します。
    2. 前のステップで宣言されたファイルを開き、必要な情報を提供します。

      ユーザーとそれに対応する DN は、artemis-users.properties ファイルにリストされている必要があります。利用可能なロールとそれらのロールを保持するユーザーは、artemis-roles.properties ファイルで定義されています。

      これらのファイルの構文の例を以下に示します。

    3. 以下に示すように、セキュリティードメインエイリアス (このインスタンスでは activemq) が bootstrap.xml で参照されていることを確認します。

      <jaas-security domain="activemq"/>

設定例

次の例は、login.config ファイルで証明書ログインモジュールを設定する方法を示しています。

例6.1 login.config

activemq {
    org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule 1
        debug=true 2
        org.apache.activemq.jaas.textfiledn.user="artemis-users.properties" 3
        org.apache.activemq.jaas.textfiledn.role="artemis-roles.properties"; 4
};
1
JAAS レルムを設定します。この例では、単一の org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule を使用しています。
2
デバッグのオン (true) またはオフ (false) を切り替えます。デフォルトは false です。
3
ユーザーデータの保存に使用するファイルを定義します (login.config ファイルを含むディレクトリーへの相対パス)。
4
ロールデータの保存に使用するファイルを定義します (login.config ファイルを含むディレクトリーへの相対パス)。

artemis-users.properties ファイルは、user=StringifiedSubjectDN (文字列エンコーディングは RFC 2253 で指定されています) を持つプロパティーのリストで設定されています。

例6.2 artemis-users.properties

system=CN=system,O=Progress,C=US 1
user=CN=humble user,O=Progress,C=US
guest=CN=anon,O=Progress,C=DE
1
system という名前のユーザーは、CN=system,O=Progress,C=US サブジェクト DN にマップされます。

artemis-roles.properties ファイルは、role=user のパターンに従います。user は、単一のユーザーまたはユーザーのコンマ区切りリストのいずれかに置き換えます。

例6.3 artemis-roles.properties

admins=system
users=system,user 1
guests=guest
1
複数のユーザーをコンマ区切りのエントリーとして含めることができます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.