2.7.2. デフォルトのセキュリティー

デフォルトでは、コア管理認証は HTTP と ネイティブの各管理インターフェイスを、ローカルクライアントとリモートクライアントの 2 つの形式でセキュア化します。これら両方は、デフォルトでは ManagementRealm セキュリティーレルムを使用して設定されます。デフォルトの設定は変更可能で、設定を完全に置き換えることもできます。

注記

初期状態の管理インターフェイスは、ロールを使用しない簡単なアクセス制御を使用するよう設定されています。デフォルトでは、簡単なアクセス制御を使用するとすべてのユーザーに SuperUser ロールと同じ権限が与えられ、原則的にアクセスが制限されません。

2.7.2.1. ネイティブインターフェイスによるローカルおよびリモートクライアント認証

ネイティブインターフェイス (管理 CLI) は、稼働中の JBoss EAP インスタンスと同じホストにてローカルで呼び出すことができ、別のマシンからリモートで呼び出すこともできます。ネイティブインターフェイスを使用して接続を確立しようとすると、JBoss EAP は local jboss user やベーシック認証などの利用可能な SASL 認証のリストをクライアントに提示します。クライアントは希望する認証方法を選択し、JBoss EAP インスタンスとの認証を試行します。認証に失敗すると、他の方法で認証を再試行するか、接続の確立を停止します。ローカルクライアントは local jboss user 認証を使用することもできます。これは、ローカルファイルシステムにアクセスできるクライアントの機能を基にしたセキュリティーメカニズムです。これは、ログインしようとしているユーザーが JBoss EAP インスタンスと同じホスト上のローカルファイルシステムにアクセスできる権限があるかを検証します。

この認証は 4 つのステップで行われます。

  1. クライアントは、local jboss user を使用した認証リクエストが含まれるメッセージをサーバーに送信します。
  2. サーバーは 1 度限りのトークンを生成して、固有のファイルに書き込み、そのファイルのフルパスが含まれるメッセージをクライアントに送信します。
  3. クライアントはトークンをファイルから読み取って、サーバーに送信し、ローカルでファイルシステムにアクセスできることを確認します。
  4. サーバーはトークンを検証し、ファイルを削除します。

このような認証は、ファイルシステムへ物理的にアクセスできれば他のセキュリティーメカニズムは不要であるという原理に基づいています。これは、ユーザーがローカルのファイルシステムにアクセスできれば、ユーザーは新規ユーザーを作成できる権限があり、そうでなければ他のセキュリティーメカニズムが阻止されるという論理です。ローカルユーザーはユーザー名やパスワードの認証なしで管理 CLI にアクセスできるため、サイレント認証と呼ばれることもあります。

この機能は利便性のためと、管理 CLI スクリプトを実行しているローカルユーザーの追加認証を不要にするために有効になっています。通常、ユーザーがローカル設定にアクセスできれば、独自のユーザー詳細を追加することもできるため便利な機能と見なされます。

リモートクライアントとして、別のサーバーや同じサーバーからネイティブインターフェイスにアクセスすることもできます。リモートクライアントとしてネイティブインターフェイスにアクセスする場合、local jboss user を使用してクライアントを認証することはできず、ダイジェストなどの別の認証を使用するよう強制されます。local jboss user を使用したローカルクライアントの認証に失敗すると、自動的にフォールバックされ、リモートクライアントとして別の認証方法の使用を試みます。

注記

ネイティブインターフェイスではなく HTTP インターフェイスを使用して、別のサーバーや同じサーバーから管理 CLI を呼び出すことができます。CLI であるかに関わらず、すべての HTTP 接続はリモートとして考慮され、ローカルインターフェイスの認証では処理されません

重要

デフォルトでは、ネイティブインターフェイスは処理されず、すべての管理 CLI トラフィックは HTTP インターフェイスによって処理されます。JBoss EAP 7 は HTTP アップグレードをサポートします。HTTP アップグレードによって、クライアントは HTTP 上で最初の接続を確立できますが、その接続を別のプロトコルにアップグレードするため、リクエストを送信します。管理 CLI の場合、HTTP 上から HTTP インターフェイスへの最初のリクエストが作成されますが、接続はネイティブプロトコルにアップグレードされます。この接続は HTTP インターフェイス上で処理されますが、通信には HTTP ではなくネイティブプロトコルが使用されます。この代わりに、必要であればネイティブインターフェイスを有効化し、使用することができます。