検索

第6章 ファイルシステムを使用するためのセキュリティードメインの設定

download PDF

セキュリティードメインは、ログインモジュールを使用して認証および承認のアイデンティティーストアとしてファイルシステムを使用するように設定することもできます。

6.1. UsersRoles ログインモジュール

UsersRoles ログインモジュールは、Java プロパティーファイルからロードされる複数のユーザーおよびユーザーロールをサポートする簡単なログインモジュールです。このログインモジュールの主な目的は、アプリケーションとともにデプロイされたプロパティーファイルを使用して複数のユーザーおよびロールのセキュリティー設定を簡単にテストすることです。デフォルトの username-to-password マッピングファイル名は users.properties で、デフォルトの username-to-roles マッピングファイル名は roles.propertiesです。

注記

このログインモジュールは、パスワードスタッキング、パスワードハッシュ、および認証されていないアイデンティティーをサポートします。

プロパティーファイルは、initialize メソッドスレッドコンテキストローダーを使用して初期化中にロードされます。つまり、これらのファイルは Jakarta EE デプロイメントのクラスパス (WAR アーカイブの WEB-INF/classes フォルダーなど) またはサーバークラスパスの任意のディレクトリーに配置できます。

表6.1 完全な UsersRoles ログインモジュールオプション
オプションTypeデフォルト説明

usersProperties

ファイルまたはリソースへのパス。

users.properties

ユーザー/パスワード間のマッピングが含まれるファイルまたはリソースです。ファイルの形式は username=password です。

rolesProperties

ファイルまたはリソースへのパス。

roles.properties

ユーザー/ ロール間のマッピングが含まれるファイルまたはリソースです。ファイルの形式は username=role1,role2,role3 です。

password-stacking

useFirstPass または false

false

useFirstPass の値は、このログインモジュールが最初に LoginContext に格納されている情報を調べて ID を探す必要があることを示します。このオプションは、このログインモジュールと他のログインモジュールをスタックする際に使用できます。

hashAlgorithm

パスワードハッシュアルゴリズムを表す文字列。

none

パスワードをハッシュするために使用される java.security.MessageDigest アルゴリズムの名前。デフォルトはないため、ハッシュを有効にするには、このオプションを明示的に設定する必要があります。hashAlgorithm が指定されている場合、CallbackHandler から取得されたクリアテキストパスワードは、inputPassword 引数としてUsernamePasswordLoginModule.validatePassword に渡される前にハッシュされます。users.properties ファイルに保存されているパスワードは、同様にハッシュ化する必要があります。

hashEncoding

base64 または hex

base64

hashAlgorithm も設定されている場合、ハッシュ化されたパスワードの文字列形式。

hashCharset

string

コンテナーのランタイム環境に設定されるデフォルトのエンコーディング

クリアテキストのパスワードをバイトアレイに変換するために使用されるエンコーディング。

unauthenticatedIdentity

プリンシパル名

none

認証情報を含まないリクエストに割り当てられるプリンシパル名を定義します。これを使用すると、保護されていないサーブレットは特定ロールを必要としない EJB でメソッドを呼び出すことができます。このようなプリンシパルには関連したロールがなく、セキュアでない EJB や、チェックされていないパーミッション制約と関連する EJB メソッドのみにアクセスできます。

6.1.1. UsersRoles ログインモジュールを使用するようにセキュリティードメインを設定

以下の例では、以下のファイルが作成され、アプリケーションのクラスパスで利用できることを前提としています。

  • sampleapp-users.properties
  • sampleapp-roles.properties

UserRoles ログインモジュールを追加する CLI コマンド

/subsystem=security/security-domain=sampleapp:add

/subsystem=security/security-domain=sampleapp/authentication=classic:add
/subsystem=security/security-domain=sampleapp/authentication=classic/login-module=UsersRoles:add( \
  code=UsersRoles, \
  flag=required, \
  module-options=[ \
    ("usersProperties"=>"sampleapp-users.properties"), \
    ("rolesProperties"=>"sampleapp-roles.properties") \
  ])
reload

結果の XML

<security-domain name="sampleapp">
  <authentication>
    <login-module code="UsersRoles" flag="required">
      <module-option name="usersProperties" value="sampleapp-users.properties"/>
      <module-option name="rolesProperties" value="sampleapp-roles.properties"/>
    </login-module>
  </authentication>
</security-domain>

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.