アイデンティティーストアを使用したアプリケーションと管理インターフェイスの保護
ファイルシステム、データベース、LDAP (Lightweight Directory Access Protocol) などのアイデンティティーストア、またはカスタムアイデンティティーストアを使用して JBoss EAP 管理インターフェイスおよびデプロイされたアプリケーションをセキュアにするためのガイド
概要
JBoss EAP ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
エラーを報告したり、ドキュメントを改善したりするには、Red Hat Jira アカウントにログインし、課題を送信してください。Red Hat Jira アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- このリンクをクリック してチケットを作成します。
- Summary に課題の簡単な説明を入力します。
- Description に課題や機能拡張の詳細な説明を入力します。問題があるドキュメントのセクションへの URL も記載してください。
- Submit をクリックすると、課題が作成され、適切なドキュメントチームに転送されます。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、用語の置き換えは、今後の複数のリリースにわたって段階的に実施されます。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 ID ストアの設定 リンクのコピーリンクがクリップボードにコピーされました!
1.1. filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
1.1.1. Elytron のファイルシステムレルム リンクのコピーリンクがクリップボードにコピーされました!
ファイルシステムセキュリティーレルム filesystem-realm を使用すると、ファイルシステムベースのアイデンティティーストアを Elytron で使用して、ユーザーの認証情報と属性を保存できます。Elytron は、関連する認証情報と属性をファイルシステムの XML ファイルに保存します。XML ファイルの名前はアイデンティティーの名前です。複数の認証情報および属性を各アイデンティティーに関連付けることができます。
デフォルトでは、アイデンティティーは以下のようにファイルシステムに保存されます。
Elytron は、ID が保存されるディレクトリー構造に 2 つのレベルのディレクトリーハッシュを適用します。たとえば、"user1" という名前のアイデンティティーは、
u/s/user1.xmlの場所に保存されます。これは、単一のディレクトリーに保存できるファイルの数とパフォーマンス上の理由で、ファイルシステムにより設定された制限を解決するために行われます。
levels属性を使用して、適用するディレクトリーハッシュのレベル数を設定します。ID 名は、ファイル名として使用される前に Base32 でエンコードされます。これは、一部のファイルシステムが大文字と小文字を区別しない場合や、ファイル名で許可される文字のセットを制限する可能性があるためです。
encoded属性をfalseに設定することで、エンコーディングをオフにできます。
その他の属性とそのデフォルト値の詳細は、filesystem-realm 属性 を参照してください。
暗号化
filesystem-realm は、アイデンティティーを ID ファイルに保存する際に、クリアパスワード、ハッシュ化されたパスワード、および属性に Base64 エンコーディングを使用します。セキュリティーを強化するために、認証情報ストアに保存されている秘密鍵を使用して、クリアテキストのパスワード、ハッシュ化されたパスワード、および属性を暗号化できます。秘密鍵は、パスワードと属性を暗号化および復号するために使用されます。
整合性チェック
filesystem-realm で作成されたアイデンティティーが改ざんされないようにするために、作成時に filesystem-realm のキーペアを参照して、filesystem-realm で整合性チェックを有効にできます。
整合性チェックは、以下のように filesystem-realm で機能します。
-
整合性チェックを有効にして
filesystem-realmでアイデンティティーを作成すると、Elytron はアイデンティティーファイルを作成し、その署名を生成します。 - アイデンティティーファイルが読み取られるときに (アイデンティティーの更新時や認証のためにアイデンティティーをロードするときなど)、Elytron はアイデンティティーファイルの内容を署名と照合して検証し、最後に認可された書き込み以降にファイルが改ざんされていないことを確認します。
関連する署名を持つ既存のアイデンティティーを更新すると、Elytron はコンテンツを更新し、元のコンテンツが検証に合格した後に新しい署名を生成します。
検証に失敗した場合は、以下の失敗メッセージが表示されます。
{ "outcome" => "failed", "failure-description" => "WFLYCTL0158: Operation handler failed:java.lang.RuntimeException: WFLYELY01008: Failed to obtain the authorization identity.", "rolled-back" => true }{ "outcome" => "failed", "failure-description" => "WFLYCTL0158: Operation handler failed:java.lang.RuntimeException: WFLYELY01008: Failed to obtain the authorization identity.", "rolled-back" => true }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2. Elytron での filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護するためにレルムを参照する filesystem-realm およびセキュリティードメインを作成します。
前提条件
- JBoss EAP が実行中である。
手順
Elytron で
filesystem-realmを作成します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow レルムにユーザーを追加し、ユーザーのロールを設定します。
ユーザーを追加します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのパスワードを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのロールを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Elytron が
filesystem-realmからアイデンティティーをロードできることを確認するには、以下のコマンドを使用します。構文
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
1.1.3. Elytron で暗号化された filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
暗号化された filesystem-realm を作成して JBoss EAP アプリケーションまたはサーバーインターフェイスをセキュアにし、ユーザーの認証情報が暗号化され、セキュアであることを確認します。
1.1.3.1. スタンドアロンサーバー用の secret-key-credential-store の作成 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を使用して secret-key-credential-store を作成します。secret-key-credential-store を作成すると、JBoss EAP はデフォルトでシークレットキーを生成します。生成された鍵の名前は key で、そのサイズは 256 ビットです。
前提条件
- JBoss EAP が実行中である。
-
少なくとも、JBoss EAP を実行しているユーザーアカウントの
secret-key-credential-storeを格納したディレクトリーへの読み取り/書き込みアクセスが割り当てられている。
手順
以下のコマンドで、管理 CLI を使用して
secret-key-credential-storeを作成します。構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3.2. 暗号化された filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
レルムを参照する暗号化された filesystem-realm と、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護するセキュリティードメインを作成します。
前提条件
- JBoss EAP が実行中である。
secret-key-credential-storeを作成している。詳細は、スタンドアロンサーバー用
secret-key-credential-storeの作成 を参照してください。
手順
Elytron で暗号化された
filesystem-realmを作成します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,credential-store=<name_of_credential_store>,secret-key=<key>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,credential-store=<name_of_credential_store>,secret-key=<key>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, credential-store=examplePropertiesCredentialStore, secret-key=key) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, credential-store=examplePropertiesCredentialStore, secret-key=key) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow レルムにユーザーを追加し、ユーザーのロールを設定します。
ユーザーを追加します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのパスワードを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのロールを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Elytron が暗号化された
filesystem-realmからアイデンティティーをロードできることを確認するには、以下のコマンドを使用します。構文
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになります。
1.1.4. Elytron で整合性サポートのある filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP アプリケーションまたはサーバーインターフェイスをセキュアにするための整合性をサポートする filesystem-realm を作成し、ユーザーの認証情報が改ざんされないようにします。
1.1.4.1. 管理 CLI を使用したキーペアの作成 リンクのコピーリンクがクリップボードにコピーされました!
キーペアを持つキーストアを Elytron に作成します。
前提条件
- JBoss EAP が実行中である。
手順
キーストアを作成します。
構文
/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーストアにキーペアを作成します。
構文
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーペアをキーストアファイルに永続化します。
構文
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.4.2. 整合性サポートのある filesystem-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
整合性サポートのある filesystem-realm と、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護するためにレルムを参照するセキュリティードメインを作成します。
前提条件
- JBoss EAP が実行中である。
secret-key-credential-storeを作成している。詳細は、管理 CLI を使用したキーペアの作成 を参照してください。
手順
Elytron で
filesystem-realmを作成します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,key-store=<key_store_name>,key-store-alias=<key_store_alias>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>,key-store=<key_store_name>,key-store-alias=<key_store_alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, key-store=exampleKeystore, key-store-alias=localhost) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir, key-store=exampleKeystore, key-store-alias=localhost) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow レルムにユーザーを追加し、ユーザーのロールを設定します。
ユーザーを追加します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity(identity=user1) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのパスワードを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーのロールを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>, name=<roles_attribute_name>, value=[<role_1>,<role_N>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<filesystem_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<filesystem_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Elytron が
filesystem-realmからアイデンティティーをロードできることを確認するには、以下のコマンドを使用します。構文
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
1.1.4.3. 整合性サポートを有効にして既存の filesystem-realm のキーペアの更新 リンクのコピーリンクがクリップボードにコピーされました!
既存の鍵が侵害された場合に整合性サポートを有効にして、filesystem-realm で参照されるキーペアを更新できます。また、キーをローテーションすることを推奨します。
前提条件
- キーペアを生成している。
整合性チェックを有効にして
filesystem-realmを作成している。詳細は、整合性サポートのある
filesystem-realmの作成 を参照してください。
手順
既存のキーストアにキーペアを作成します。
構文
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost2,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost2,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーペアをキーストアファイルに永続化します。
構文
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいキーペアを参照するようにキーストアエイリアスを更新します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:write-attribute(name=key-store-alias, value=<key_store_alias>)
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:write-attribute(name=key-store-alias, value=<key_store_alias>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいキーペアを使用して、
filesystem-realmのファイルを新規署名で更新します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:update-key-pair()
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:update-key-pair()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/filesystem-realm=exampleSecurityRealm:update-key-pair() {"outcome" => "success"}/subsystem=elytron/filesystem-realm=exampleSecurityRealm:update-key-pair() {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
filesystem-realmで参照されるキーペアが以下の管理 CLI コマンドを使用して更新されていることを確認します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:read-resource()
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:read-resource()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm で参照されるキーペアが更新されました。
1.1.5. 暗号化されていない filesystem-realm の暗号化 リンクのコピーリンクがクリップボードにコピーされました!
Elytron に filesystem-realm が設定されている場合は、WildFly Elytron ツールを使用して暗号化を追加できます。
1.1.5.1. スタンドアロンサーバー用の secret-key-credential-store の作成 リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI を使用して secret-key-credential-store を作成します。secret-key-credential-store を作成すると、JBoss EAP はデフォルトでシークレットキーを生成します。生成された鍵の名前は key で、そのサイズは 256 ビットです。
前提条件
- JBoss EAP が実行中である。
-
少なくとも、JBoss EAP を実行しているユーザーアカウントの
secret-key-credential-storeを格納したディレクトリーへの読み取り/書き込みアクセスが割り当てられている。
手順
以下のコマンドで、管理 CLI を使用して
secret-key-credential-storeを作成します。構文
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)
/subsystem=elytron/secret-key-credential-store=<name_of_credential_store>:add(path="<path_to_the_credential_store>", relative-to=<path_to_store_file>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}/subsystem=elytron/secret-key-credential-store=examplePropertiesCredentialStore:add(path=examplePropertiesCredentialStore.cs, relative-to=jboss.server.config.dir) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.5.2. 暗号化されていない filesystem-realm を暗号化された filesystem-realm に変換する リンクのコピーリンクがクリップボードにコピーされました!
WildFly Elytron ツールの filesystem-realm-encrypt コマンドを使用して、暗号化されていない filesystem-realm を暗号化されたものに変換できます。
前提条件
既存の
filesystem-realmがある。詳細は、Elytron での
filesystem-realmの作成 を参照してください。secret-key-credential-storeを作成している。詳細は、スタンドアロンサーバー用
secret-key-credential-storeの作成 を参照してください。- JBoss EAP が実行中である。
手順
暗号化されていない
filesystem-realmを暗号化されたものに変換します。構文
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location <existing_filesystem_realm_name> --output-location JBOSS_HOME/standalone/configuration/<target_filesystem_realm_name> --credential-store <path_to_credential_store>/<credential_store>
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location <existing_filesystem_realm_name> --output-location JBOSS_HOME/standalone/configuration/<target_filesystem_realm_name> --credential-store <path_to_credential_store>/<credential_store>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location JBOSS_HOME/standalone/configuration/fs-realm-users --output-location JBOSS_HOME/standalone/configuration/fs-realm-users-enc --credential-store JBOSS_HOME/standalone/configuration/examplePropertiesCredentialStore.cs Creating encrypted realm for: JBOSS_HOME/standalone/configuration/fs-realm-users Found credential store and alias, using pre-existing key
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-encrypt --input-location JBOSS_HOME/standalone/configuration/fs-realm-users --output-location JBOSS_HOME/standalone/configuration/fs-realm-users-enc --credential-store JBOSS_HOME/standalone/configuration/examplePropertiesCredentialStore.cs Creating encrypted realm for: JBOSS_HOME/standalone/configuration/fs-realm-users Found credential store and alias, using pre-existing keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow WildFly Elytron コマンド
filesystem-realm-encryptによって、--output-location引数で指定されたfilesystem-realmが作成されます。また、filesystem-realmのルートに CLI スクリプトが作成されます。このスクリプトを使用すると、elytronサブシステムにfilesystem-realmリソースを追加できます。ヒント--summaryオプションを使用して、コマンド実行の概要を表示します。生成された CLI スクリプトを使用して、
elytronサブシステムにfilesystem-realmリソースを追加します。構文
JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users-enc/encrypted-filesystem-realm.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users-enc/encrypted-filesystem-realm.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
暗号化された filesystem-realm を使用して、レルムを参照して JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護するセキュリティードメインを作成できます。
1.1.6. 既存の filesystem-realm への整合性サポートの追加 リンクのコピーリンクがクリップボードにコピーされました!
Elytron で filesystem-realm が設定されている場合は、WildFly Elytron ツールを使用してキーペアでそのファイルシステムレルムに署名し、整合性チェックを有効にすることができます。
1.1.6.1. 管理 CLI を使用したキーペアの作成 リンクのコピーリンクがクリップボードにコピーされました!
キーペアを持つキーストアを Elytron に作成します。
前提条件
- JBoss EAP が実行中である。
手順
キーストアを作成します。
構文
/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})/subsystem=elytron/key-store=<key_store_name>:add(path=<path_to_key_store_file>,credential-reference={<password>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:add(path=keystore, relative-to=jboss.server.config.dir, type=JKS, credential-reference={clear-text=secret}) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーストアにキーペアを作成します。
構文
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")
/subsystem=elytron/key-store=<key_store_name>:generate-key-pair(alias=<alias>,algorithm=<key_algorithm>,key-size=<size_of_key>,validity=<validity_in_days>,distinguished-name="<distinguished_name>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}/subsystem=elytron/key-store=exampleKeystore:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,distinguished-name="CN=localhost") {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow キーペアをキーストアファイルに永続化します。
構文
/subsystem=elytron/key-store=<key_store_name>:store()
/subsystem=elytron/key-store=<key_store_name>:store()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }/subsystem=elytron/key-store=exampleKeystore:store() { "outcome" => "success", "result" => undefined }Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.6.2. filesystem-realm の整合性チェックの有効化 リンクのコピーリンクがクリップボードにコピーされました!
WildFly Elytron ツールの filesystem-realm-integrity コマンドを使用して、既存の空ではない filesystem-realm から、整合性チェックを備えた filesystem-realm を作成できます。
filesystem-realm-integrity コマンドは、次の場合に使用できます。
-
既存の
filesystem-realmから、整合性チェックを備えた新しいfilesystem-realmを作成する。 -
既存の
filesystem-realmに整合性チェックを追加する。
前提条件
既存の
filesystem-realmがある。詳細は、Elytron での
filesystem-realmの作成 を参照してください。キーペアを生成している。
詳細は、管理 CLI を使用したキーペアの作成 を参照してください。
- JBoss EAP が実行中である。
手順
既存の
filesystem-realmを使用し、キーペアで署名することにより、整合性をサポートするfilesystem-realmを作成します。既存の
filesystem-realmに整合性サポートを追加する場合は、次のコマンドの--output-locationおよび--realm-nameオプションを省略してください。--output-locationおよび--realm-nameオプションを指定すると、既存の filesystem-realm が更新されず、整合性チェックを備えた新しいfilesystem-realmが作成されます。構文
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location <path_to_existing_filesystem_realm> --keystore <path_to_key_store_file> --password <keystore_password> --key-pair <key_pair_alias> --output-location <path_for_new_filesystem_realm> --realm-name <name_of_new_filesystem_realm>
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location <path_to_existing_filesystem_realm> --keystore <path_to_key_store_file> --password <keystore_password> --key-pair <key_pair_alias> --output-location <path_for_new_filesystem_realm> --realm-name <name_of_new_filesystem_realm>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location JBOSS_HOME/standalone/configuration/fs-realm-users/ --keystore JBOSS_HOME/standalone/configuration/keystore --password secret --key-pair localhost --output-location JBOSS_HOME/standalone/configuration/fs-realm-users --realm-name exampleRealmWithIntegrity
$ JBOSS_HOME/bin/elytron-tool.sh filesystem-realm-integrity --input-location JBOSS_HOME/standalone/configuration/fs-realm-users/ --keystore JBOSS_HOME/standalone/configuration/keystore --password secret --key-pair localhost --output-location JBOSS_HOME/standalone/configuration/fs-realm-users --realm-name exampleRealmWithIntegrityCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Creating filesystem realm with integrity verification for: JBOSS_HOME/standalone/configuration/fs-realm-users
Creating filesystem realm with integrity verification for: JBOSS_HOME/standalone/configuration/fs-realm-usersCopy to Clipboard Copied! Toggle word wrap Toggle overflow WildFly Elytron コマンド
filesystem-realm-integrityによって、--output-location引数で指定されたfilesystem-realmが作成されます。また、filesystem-realmのルートに CLI スクリプトが作成されます。このスクリプトを使用すると、elytronサブシステムにfilesystem-realmリソースを追加できます。ヒント--summaryオプションを使用して、コマンド実行の概要を表示します。生成された CLI スクリプトを使用して、
elytronサブシステムにfilesystem-realmリソースを追加します。構文
JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=<target_filesystem_realm_directory>/<target_filesystem_realm_name>.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users/exampleRealmWithIntegrity.cli
$ JBOSS_HOME/bin/jboss-cli.sh --connect --file=JBOSS_HOME/standalone/configuration/fs-realm-users/exampleRealmWithIntegrity.cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow
filesystem-realm を使用して、レルムを参照するセキュリティードメインを作成し、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護できます。
1.2. JDBC レルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
1.2.1. Elytron での jdbc-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護するために、レルムを参照する jdbc-realm およびセキュリティードメインを作成します。
この手順の例では、次のように設定された PostgreSQL データベースを使用します。
- データベース名: postgresdb
データベースのログイン認証情報:
- ユーザー名: postgres
- パスワード: ポストグル
- テーブル名: example_jboss_eap_users
example_jboss_eap_users コンテンツ:
Expand username password roles user1
passwordUser1
管理者
user2
passwordUser2
Guest
前提条件
- ユーザーを含むデータベースを設定している。
- JBoss EAP が実行中である。
- 適切な JDBC ドライバーをダウンロードしている。
手順
管理 CLI を使用して、データベースのデータベースドライバーをデプロイします。
構文
deploy <path_to_jdbc_driver>/<jdbc-driver>
deploy <path_to_jdbc_driver>/<jdbc-driver>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
deploy PATH_TO_JDBC_DRIVER/postgresql-42.2.9.jar
deploy PATH_TO_JDBC_DRIVER/postgresql-42.2.9.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow データベースをデータソースとして設定します。
構文
data-source add --name=<data_source_name> --jndi-name=<jndi_name> --driver-name=<jdbc-driver> --connection-url=<database_URL> --user-name=<database_username> --password=<database_username>
data-source add --name=<data_source_name> --jndi-name=<jndi_name> --driver-name=<jdbc-driver> --connection-url=<database_URL> --user-name=<database_username> --password=<database_username>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
data-source add --name=examplePostgresDS --jndi-name=java:jboss/examplePostgresDS --driver-name=postgresql-42.2.9.jar --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=postgres --password=postgres
data-source add --name=examplePostgresDS --jndi-name=java:jboss/examplePostgresDS --driver-name=postgresql-42.2.9.jar --connection-url=jdbc:postgresql://localhost:5432/postgresdb --user-name=postgres --password=postgresCopy to Clipboard Copied! Toggle word wrap Toggle overflow Elytron で
jdbc-realmを作成します。構文
/subsystem=elytron/jdbc-realm=<jdbc_realm_name>:add(principal-query=[<sql_query_to_load_users>])
/subsystem=elytron/jdbc-realm=<jdbc_realm_name>:add(principal-query=[<sql_query_to_load_users>])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/jdbc-realm=exampleSecurityRealm:add(principal-query=[{sql="SELECT password,roles FROM example_jboss_eap_users WHERE username=?",data-source=examplePostgresDS,clear-password-mapper={password-index=1},attribute-mapping=[{index=2,to=Roles}]}]) {"outcome" => "success"}/subsystem=elytron/jdbc-realm=exampleSecurityRealm:add(principal-query=[{sql="SELECT password,roles FROM example_jboss_eap_users WHERE username=?",data-source=examplePostgresDS,clear-password-mapper={password-index=1},attribute-mapping=[{index=2,to=Roles}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例では、1 つの
principal-queryからパスワードおよびロールを取得する方法を示しています。ロールや追加の認証または認可情報を取得するために複数のクエリーが必要な場合は、attribute-mapping属性を使用して追加のプリンシパルクエリーを作成することもできます。サポート対象のパスワードマッパーの一覧は、パスワードマッパー を参照してください。
jdbc-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<jdbc_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=< jdbc_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<jdbc_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=< jdbc_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Elytron がデータベースからデータをロードできることを確認するには、次のコマンドを使用します。
構文
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力は、Elytron がデータベースからデータをロードできることを示しています。
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
1.3. LDAP レルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
1.3.1. Elytron の LDAP レルム リンクのコピーリンクがクリップボードにコピーされました!
Elytron の Lightweight Directory Access Protocol (LDAP) レルム (ldap-realm) は、LDAP ID ストアから ID をロードするために使用できるセキュリティーレルムです。
以下の例は、LDAP の ID と JBoss EAP の Elytron ID のマッピング方法を示しています。
LDAP データ交換フォーマット (LDIF) ファイルの例
LDAP レルムを作成するためのコマンドの例
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
/subsystem=elytron/ldap-realm=exampleSecurityRealm:add(dir-context=exampleDirContext,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})
/subsystem=elytron/ldap-realm=exampleSecurityRealm:add(dir-context=exampleDirContext,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})
コマンドにより、設定は以下のようになります。
- 1
- 以下はレルムの定義になります。
-
nameはldap-realmレルム名です。 -
dir-contextは、LDAP サーバーに接続するための設定です。
-
- 2
- ID のマッピング方法を定義します。
rdn-identifierは、LDAP エントリーからプリンシパルの名前を取得する際に使用するプリンシパルの識別名 (DN) の相対識別名 (RDN) です。LDIF の例では、uidはベースDN=ou=Users,dc=wildfly,dc=orgからのプリンシパルの名前を表すように設定されています。search-base-dnは、ID を検索するためのベース DN です。LDIF の例では、dn: ou=Users,dc=wildfly,dc=orgと定義されています。
- 3
- LDAP 属性を ID の属性マッピングに定義します。
- 4
- 特定の LDAP 属性を Elytron ID 属性としてマップする方法を設定します。
-
fromは、マップする LDAP 属性です。定義されていない場合は、エントリーの DN が使用される。 -
toは、LDAP 属性からマップされた ID の属性の名前です。指定されない場合、属性の名前はfromで定義されたものと同じになります。fromも定義されていない場合は、エントリーの DN が使用されます。 filterは、特定の属性の値を取得するために使用するフィルターです。文字列 '{0}' はユーザー名に置き換えられ、'{1}' はユーザー ID の DN に置き換えられます。-
objectClassは、使用する LDAP オブジェクトクラスです。LDIF の例では、使用するオブジェクトクラスはgroupOfNamesと定義されています。 -
memberはマップするメンバーです。{0}はユーザー名に置き換えられ、{1}はユーザー ID の DN に置き換えられます。この例では、{1}を使用して、memberをuser1にマップしています。
-
filter-base-dnは、フィルターを適用する必要があるコンテキストの名前です。サンプルフィルターの結果は、ユーザー
user1がAdminロールにマップされていることです。
-
- 5
user-password-mapperは、ID のパスワードの取得先である LDAP 属性を定義します。この例では、userPasswordとして設定されており、LDIF ではuserPassword1として定義されています。
1.3.2. Elytron での ldap-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
Lightweight Directory Access Protocol (LDAP) ID ストアにサポートされた Elytron セキュリティーレルムを作成します。セキュリティーレルムを使用してセキュリティードメインを作成し、管理インターフェイスまたはサーバーにデプロイされたアプリケーションに認証と認可を追加します。
キャッシングレルムとして設定された ldap-realm は、Active Directory をサポートしていません。詳細は、Changing LDAP/AD User Password via JBossEAP CLI for Elytron を参照してください。
elytron サブシステムが LDAP サーバーを使用して認証を実行する場合、JBoss EAP は 500 エラーコードまたは内部サーバーエラー (LDAP サーバーにアクセスできない場合) を返します。
LDAP サーバーが使用できなくなった場合でも、LDAP レルムを使用して保護されている管理インターフェイスやアプリケーションにアクセスできるようにするには、フェイルオーバーレルムを使用します。詳細は、フェイルオーバーレルムの作成 を参照してください。
この手順の例では、以下の LDAP Data Interchange Format (LDIF) が使用されます。
この例で使用されている LDAP 接続パラメーターは以下のとおりです。
-
LDAP URL:
ldap://10.88.0.2 LDAP 管理者パスワード:
secretこれは、Elytron が LDAP サーバーに接続するために必要です。
-
LDAP 管理者識別名 (DN):
(cn=admin,dc=wildfly,dc=org) LDAP 組織:
wildfly組織名が指定されていない場合、デフォルトで
Example Incになります。LDAP ドメイン:
wildfly.orgこれは、プラットフォームが LDAP 検索リファレンスを受信したときに照合される名前です。
前提条件
- LDAP ID ストアを設定している。
- JBoss EAP が実行中である。
手順
LDAP サーバーへの接続に使用される URL とプリンシパルを提供するディレクトリーコンテキストを設定します。
構文
/subsystem=elytron/dir-context=<dir_context_name>:add(url="<LDAP_URL>",principal="<principal_distinguished_name>",credential-reference=<credential_reference>)
/subsystem=elytron/dir-context=<dir_context_name>:add(url="<LDAP_URL>",principal="<principal_distinguished_name>",credential-reference=<credential_reference>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})/subsystem=elytron/dir-context=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリーコンテキストを参照する LDAP レルムを作成します。検索ベース DN とユーザーのマッピング方法を指定します。
構文
/subsystem=elytron/ldap-realm=<ldap_realm_name>add:(dir-context=<dir_context_name>,identity-mapping=search-base-dn="ou=<organization_unit>,dc=<domain_component>",rdn-identifier="<relative_distinguished_name_identifier>",user-password-mapper={from=<password_attribute_name>},attribute-mapping=[{filter-base-dn="ou=<organization_unit>,dc=<domain_component>",filter="<ldap_filter>",from="<ldap_attribute_name>",to="<identity_attribute_name>"}]})/subsystem=elytron/ldap-realm=<ldap_realm_name>add:(dir-context=<dir_context_name>,identity-mapping=search-base-dn="ou=<organization_unit>,dc=<domain_component>",rdn-identifier="<relative_distinguished_name_identifier>",user-password-mapper={from=<password_attribute_name>},attribute-mapping=[{filter-base-dn="ou=<organization_unit>,dc=<domain_component>",filter="<ldap_filter>",from="<ldap_attribute_name>",to="<identity_attribute_name>"}]})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/ldap-realm=exampleSecurityRealm:add(dir-context=exampleDirContext,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})/subsystem=elytron/ldap-realm=exampleSecurityRealm:add(dir-context=exampleDirContext,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={1}))",from="cn",to="Roles"}]})Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDIF ファイルにハッシュ化されたパスワードを保存する場合、以下の属性を指定することができます。
-
hash-encoding: この属性は、パスワードがプレーンテキストで保存されない場合の文字列形式を指定します。デフォルトではbase64エンコーディングに設定されていますが、hexもサポートされています。 -
hash-charset: この属性は、パスワード文字列をバイト配列に変換する際に使用する文字セットを指定します。デフォルトではUTF-8に設定されています。
警告参照される LDAP サーバーの参照元にループが含まれる場合は、JBoss EAP で
java.lang.OutOfMemoryErrorエラーが発生することがあります。-
属性をロールにマップするロールデコーダーを作成します。
構文
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP レルムとロールデコーダーを参照するセキュリティードメインを作成します。
構文
/subsystem=elytron/security-domain=<security_domain_name>:add(realms=[{realm=<ldap_realm_name>,role-decoder=<role_decoder_name>}],default-realm=<ldap_realm_name>,permission-mapper=<permission_mapper>)/subsystem=elytron/security-domain=<security_domain_name>:add(realms=[{realm=<ldap_realm_name>,role-decoder=<role_decoder_name>}],default-realm=<ldap_realm_name>,permission-mapper=<permission_mapper>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=exampleSecurityRealm,role-decoder=from-roles-attribute}],default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper)/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=exampleSecurityRealm,role-decoder=from-roles-attribute}],default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
1.4. プロパティーレルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
1.4.1. Elytron で properties-realm を参照するセキュリティードメインを作成する方法 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP 管理インターフェイスまたはサーバーにデプロイしたアプリケーションを保護するために、properties-realm とそのレルムを参照するセキュリティードメインを作成します。
前提条件
- JBoss EAP が実行中である。
許可されたユーザーと既存のレガシープロパティーファイルがあり、
users.propertiesファイルのコメントアウト行に正しいレルムが書き込まれている。例:
$EAP_HOME/standalone/configuration/my-example-users.properties#$REALM_NAME=exampleSecurityRealm$ user1=078ed9776d4b8e63b6e51135ec45cc75
#$REALM_NAME=exampleSecurityRealm$ user1=078ed9776d4b8e63b6e51135ec45cc75Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
user1のパスワードはuserPassword1です。パスワードはHEX( MD5( user1:exampleSecurityRealm:userPassword1 ))としてファイルにハッシュされます。
-
users.propertiesファイルにリストされている許可されたユーザーには、groups.propertiesファイルにロールが指定されています。例:
$EAP_HOME/standalone/configuration/my-example-groups.propertiesuser1=Admin
user1=AdminCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
Elytron で
properties-realmを作成します。構文
/subsystem=elytron/properties-realm=<properties_realm_name>:add(users-properties={path=<file_path>},groups-properties={path=<file_path>})/subsystem=elytron/properties-realm=<properties_realm_name>:add(users-properties={path=<file_path>},groups-properties={path=<file_path>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/properties-realm=exampleSecurityRealm:add(users-properties={path=my-example-users.properties,relative-to=jboss.server.config.dir,plain-text=true},groups-properties={path=my-example-groups.properties,relative-to=jboss.server.config.dir})/subsystem=elytron/properties-realm=exampleSecurityRealm:add(users-properties={path=my-example-users.properties,relative-to=jboss.server.config.dir,plain-text=true},groups-properties={path=my-example-groups.properties,relative-to=jboss.server.config.dir})Copy to Clipboard Copied! Toggle word wrap Toggle overflow properties-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<properties_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<properties_realm_name>,role-decoder="<role_decoder_name>"}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<properties_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<properties_realm_name>,role-decoder="<role_decoder_name>"}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder=groups-to-roles}])/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder=groups-to-roles}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Elytron がプロパティーファイルからデータをロードできることを確認するには、次のコマンドを使用します。
構文
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)
/subsystem=elytron/security-domain=<security_domain_name>:read-identity(name=<username>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この出力から、Elytron がプロパティーファイルからデータをロードできることを確認できます。
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
1.5. カスタムレルムの作成 リンクのコピーリンクがクリップボードにコピーされました!
1.5.1. Elytron で custom-realm セキュリティーレルムを追加する方法 リンクのコピーリンクがクリップボードにコピーされました!
custom-realm を使用して、ユースケースに合わせた Elytron セキュリティーレルムを作成できます。既存の Elytron セキュリティーレルムがユースケースに合わない場合、custom-realm を追加できます。
前提条件
- JBoss EAP がインストールされ、実行されている。
- Maven がインストールされている。
- 実装されたカスタムレルム Java クラスがある。
手順
カスタムレルム Java クラスを実装し、
JARファイルとしてパッケージ化します。mvn package
$ mvn packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムレルムの実装を含むモジュールを追加します。
構文
module add --name=<name_of_your_wildfly_module> --resources=<path_to_custom_realm_jar> --dependencies=org.wildfly.security.elytron
module add --name=<name_of_your_wildfly_module> --resources=<path_to_custom_realm_jar> --dependencies=org.wildfly.security.elytronCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
module add --name=com.example.customrealm --resources=EAP_HOME/custom-realm.jar --dependencies=org.wildfly.security.elytron
module add --name=com.example.customrealm --resources=EAP_HOME/custom-realm.jar --dependencies=org.wildfly.security.elytronCopy to Clipboard Copied! Toggle word wrap Toggle overflow custom-realmを作成します。構文
/subsystem=elytron/custom-realm=<name_of_your_custom_realm>:add(module=<name_of_your_wildfly_module>,class-name=<class_name_of_custom_realm_>,configuration={<configuration_option_1>=<configuration_value_1>,<configuration_option_2>=<configuration_value_2>})/subsystem=elytron/custom-realm=<name_of_your_custom_realm>:add(module=<name_of_your_wildfly_module>,class-name=<class_name_of_custom_realm_>,configuration={<configuration_option_1>=<configuration_value_1>,<configuration_option_2>=<configuration_value_2>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/custom-realm=example-realm:add(module=com.example.customrealm,class-name=com.example.customrealm.ExampleRealm,configuration={exampleConfigOption1=exampleConfigValue1,exampleConfigOption2=exampleConfigValue2})/subsystem=elytron/custom-realm=example-realm:add(module=com.example.customrealm,class-name=com.example.customrealm.ExampleRealm,configuration={exampleConfigOption1=exampleConfigValue1,exampleConfigOption2=exampleConfigValue2})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例では、実装されたカスタムレルムのクラス名を
com.example.customrealm.ExampleRealmと想定しています。注記configuration属性を使用して、key/value設定をcustom-realmに渡すことができます。configuration属性はオプションです。作成したレルムに基づいてセキュリティードメインを定義します。
構文
/subsystem=elytron/security-domain=<your_security_domain_name>:add(realms=[{realm=<your_realm_name>}],default-realm=<your_realm_name>,permission-mapper=<your_permission_mapper_name>)/subsystem=elytron/security-domain=<your_security_domain_name>:add(realms=[{realm=<your_realm_name>}],default-realm=<your_realm_name>,permission-mapper=<your_permission_mapper_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=example-realm}],default-realm=example-realm,permission-mapper=default-permission-mapper)/subsystem=elytron/security-domain=exampleSecurityDomain:add(realms=[{realm=example-realm}],default-realm=example-realm,permission-mapper=default-permission-mapper)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。
第2章 管理インターフェイスとアプリケーションのセキュリティー保護 リンクのコピーリンクがクリップボードにコピーされました!
2.1. 管理インターフェイスへの認証および認可の追加 リンクのコピーリンクがクリップボードにコピーされました!
管理インターフェイスに認証と認可を追加し、セキュリティードメインを使用して管理インターフェイスを保護できます。認証と認可を追加した後に管理インターフェイスにアクセスするには、ユーザーはログイン認証情報を入力する必要があります。
以下のように JBoss EAP 管理インターフェイスを保護できます。
管理 CLI
sasl-authentication-factoryの設定による保護。管理コンソール
http-authentication-factoryの設定による保護。
前提条件
- セキュリティーレルムを参照するセキュリティードメインを作成しました。
- JBoss EAP が実行中である。
手順
http-authentication-factoryまたはsasl-authentication-factoryを作成します。http-authentication-factoryを作成します。構文
/subsystem=elytron/http-authentication-factory=<authentication_factory_name>:add(http-server-mechanism-factory=global, security-domain=<security_domain_name>, mechanism-configurations=[{mechanism-name=<mechanism-name>, mechanism-realm-configurations=[{realm-name=<realm_name>}]}])/subsystem=elytron/http-authentication-factory=<authentication_factory_name>:add(http-server-mechanism-factory=global, security-domain=<security_domain_name>, mechanism-configurations=[{mechanism-name=<mechanism-name>, mechanism-realm-configurations=[{realm-name=<realm_name>}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/http-authentication-factory=exampleAuthenticationFactory:add(http-server-mechanism-factory=global, security-domain=exampleSecurityDomain, mechanism-configurations=[{mechanism-name=BASIC, mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}/subsystem=elytron/http-authentication-factory=exampleAuthenticationFactory:add(http-server-mechanism-factory=global, security-domain=exampleSecurityDomain, mechanism-configurations=[{mechanism-name=BASIC, mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow sasl-authentication-factoryを作成します。構文
/subsystem=elytron/sasl-authentication-factory=<sasl_authentication_factory_name>:add(security-domain=<security_domain>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=<mechanism-name>,mechanism-realm-configurations=[{realm-name=<realm_name>}]}])/subsystem=elytron/sasl-authentication-factory=<sasl_authentication_factory_name>:add(security-domain=<security_domain>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=<mechanism-name>,mechanism-realm-configurations=[{realm-name=<realm_name>}]}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=PLAIN,mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=PLAIN,mechanism-realm-configurations=[{realm-name=exampleSecurityRealm}]}]) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
管理インターフェイスを更新します。
http-authentication-factoryを使用して管理コンソールを保護します。構文
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=<authentication_factory_name>)
/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=<authentication_factory_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sasl-authentication-factoryを使用して管理 CLI を保護します。構文
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_authentication_factory>})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_authentication_factory>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
サーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
管理コンソールに認証と認可が必要であることを確認するには、
http://127.0.0.1:9990/console/index.htmlから管理コンソールに移動します。ユーザー名とパスワードの入力を求められます。
管理 CLI に認証と認可が必要であることを確認するには、次のコマンドを使用して管理 CLI を起動します。
bin/jboss-cli.sh --connect
$ bin/jboss-cli.sh --connectCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー名とパスワードの入力を求められます。
2.2. セキュリティードメインを使用したアプリケーションユーザーの認証と認可 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーレルムを参照するセキュリティードメインを使用して、アプリケーションユーザーを認証および認可します。アプリケーションを開発するための手順は、例としてのみ提供されています。
2.2.1. 簡単な Web アプリケーションの開発 リンクのコピーリンクがクリップボードにコピーされました!
簡単な Web アプリケーションを作成して、セキュリティーレルムの設定例に従うことができます。
以下の手順は例としてのみ提供されています。保護する必要があるアプリケーションがすでにある場合は、以下の手順をスキップして、アプリケーションへの認証と認可の追加 に直接進むことができます。
2.2.1.1. web-application 開発用の Maven プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
web-application を作成するには、必要な依存関係とディレクトリー構造で Maven プロジェクトを作成します。
以下の手順は一例として提示されています。実稼働環境では使用しないでください。JBoss EAP のアプリケーション作成に関する詳細は、JBoss EAP にデプロイするアプリケーションの開発のスタートガイド を参照してください。
前提条件
- Maven がインストールされている。詳細は、Downloading Apache Maven を参照してください。
手順
mvnコマンドを使用して Maven プロジェクトを設定します。このコマンドは、プロジェクトのディレクトリー構造とpom.xml設定ファイルを作成します。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのルートディレクトリーに移動します。
構文
cd <name-of-your-application>
$ cd <name-of-your-application>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cd simple-webapp-example
$ cd simple-webapp-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された
pom.xmlファイルの内容を、以下のテキストに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
アプリケーションのルートディレクトリーで、次のコマンドを入力します。
mvn install
$ mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のような出力が得られます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
web-application を作成できるようになりました。
2.2.1.2. Web アプリケーションの作成 リンクのコピーリンクがクリップボードにコピーされました!
ログインユーザーのプリンシパルから取得したユーザー名を返すサーブレットを含む Web アプリケーションを作成します。ログインしているユーザーがないと、サーブレットは「NO AUTHENTICATED USER」のテキストを返します。
この手順では、<application_home> は、アプリケーションの pom.xml 設定ファイルが含まれるディレクトリーを参照します。
前提条件
Maven プロジェクトを作成している。
詳細は、Web アプリケーション開発用の Maven プロジェクトの作成 を参照してください。
- JBoss EAP が実行中である。
手順
Java ファイルを保存するディレクトリーを作成します。
構文
mkdir -p src/main/java/<path_based_on_artifactID>
$ mkdir -p src/main/java/<path_based_on_artifactID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
mkdir -p src/main/java/com/example/app
$ mkdir -p src/main/java/com/example/appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいディレクトリーに移動します。
構文
cd src/main/java/<path_based_on_artifactID>
$ cd src/main/java/<path_based_on_artifactID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
cd src/main/java/com/example/app
$ cd src/main/java/com/example/appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で
SecuredServlet.javaファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションのルートディレクトリーで、次のコマンドを使用してアプリケーションをコンパイルします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをデプロイします。
mvn wildfly:deploy
$ mvn wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ブラウザーで
http://localhost:8080/simple-webapp-example/securedに移動します。以下のメッセージが表示されます。
Secured Servlet Current Principal 'NO AUTHENTICATED USER'
Secured Servlet Current Principal 'NO AUTHENTICATED USER'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 認証メカニズムが追加されないため、アプリケーションにアクセスできます。
これで、セキュリティードメインを使用してこのアプリケーションを保護し、認証されたユーザーのみがアクセスできるようになります。
2.2.2. アプリケーションへの認証と認可の追加 リンクのコピーリンクがクリップボードにコピーされました!
Web アプリケーションに認証と認可を追加して、セキュリティードメインを使用してアプリケーションを保護できます。認証と認可を追加した後に Web アプリケーションにアクセスするには、ユーザーはログイン認証情報を入力する必要があります。
前提条件
- セキュリティーレルムを参照するセキュリティードメインを作成しました。
- JBoss EAP にアプリケーションをデプロイしました。
- JBoss EAP が実行中である。
手順
undertow subsystemでapplication-security-domainを設定します。構文
/subsystem=undertow/application-security-domain=<application_security_domain_name>:add(security-domain=<security_domain_name>)
/subsystem=undertow/application-security-domain=<application_security_domain_name>:add(security-domain=<security_domain_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=undertow/application-security-domain=exampleApplicationSecurityDomain:add(security-domain=exampleSecurityDomain) {"outcome" => "success"}/subsystem=undertow/application-security-domain=exampleApplicationSecurityDomain:add(security-domain=exampleSecurityDomain) {"outcome" => "success"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの
web.xmlを設定して、アプリケーションリソースを保護します。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記別の
auth-methodを使用できます。アプリケーションで
jboss-web.xmlファイルを作成するか、undertowサブシステムでデフォルトのセキュリティードメインを設定することにより、セキュリティードメインを使用するようにアプリケーションを設定します。application-security-domainを参照するアプリケーションのWEB-INFディレクトリーにjboss-web.xmlファイルを作成します。構文
<jboss-web> <security-domain> <!-- The security domain to associate with the application --></security-domain> </jboss-web>
<jboss-web> <security-domain> <!-- The security domain to associate with the application --></security-domain> </jboss-web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
<jboss-web> <security-domain>exampleApplicationSecurityDomain</security-domain> </jboss-web>
<jboss-web> <security-domain>exampleApplicationSecurityDomain</security-domain> </jboss-web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの
undertowサブシステムでデフォルトのセキュリティードメインを設定します。構文
/subsystem=undertow:write-attribute(name=default-security-domain,value=<application_security_domain_to_use>)
/subsystem=undertow:write-attribute(name=default-security-domain,value=<application_security_domain_to_use>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
サーバーをリロードします。
reload
reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
アプリケーションのルートディレクトリーで、次のコマンドを使用してアプリケーションをコンパイルします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをデプロイします。
mvn wildfly:deploy
$ mvn wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ブラウザーで
http://localhost:8080/simple-webapp-example/securedに移動します。アプリケーションにアクセスするには認証が必要であることを確認するログインプロンプトが表示されます。
これで、アプリケーションはセキュリティードメインで保護され、ユーザーは認証後にのみログインできます。さらに、指定されたロールを持つユーザーのみがアプリケーションにアクセスできます。
第3章 ローカルユーザーの認証および認可を容易にする ID レルムを使用した Elytron 設定 リンクのコピーリンクがクリップボードにコピーされました!
Elytron が提供する identity-realm を使用して、ローカルユーザーが JBoss EAP 管理インターフェイスに接続できるようにします。
JBoss EAP 管理 CLI は、local という名前の identity-realm を使用するように事前設定されています。そのため、ローカルユーザーは認証情報を提供しなくても接続できます。ID レルムは、JBOSS-LOCAL-USER メカニズムでのみ使用できます。
3.1. ID レルムによる管理インターフェイスのセキュリティー保護 リンクのコピーリンクがクリップボードにコピーされました!
JBOSS-LOCAL-USER メカニズムで identity-realm セキュリティーレルムを使用することにより、管理インターフェイスのセキュリティーを保護できます。
前提条件
- JBoss EAP が実行中である。
手順
ローカル
identity-realmを作成します。構文
/subsystem=elytron/identity-realm=<local_identity_realm_name>:add(identity="$local",attribute-name=<attribute_name>,attribute-values=<attribute_value>)
/subsystem=elytron/identity-realm=<local_identity_realm_name>:add(identity="$local",attribute-name=<attribute_name>,attribute-values=<attribute_value>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/identity-realm=exampleLocalIdentityRealm:add(identity="$local",attribute-name=AttributeName,attribute-values=Value)
/subsystem=elytron/identity-realm=exampleLocalIdentityRealm:add(identity="$local",attribute-name=AttributeName,attribute-values=Value)Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ローカル
identity-realmの名前を $local 以外にする場合は、configurable-sasl-server-factory= <sasl_server_factory>属性のwildfly.sasl.local-user.default-userプロパティー値を変更します。構文
/subsystem=elytron/configurable-sasl-server-factory=<sasl_server_factory>:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "<new_local_username>", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})/subsystem=elytron/configurable-sasl-server-factory=<sasl_server_factory>:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "<new_local_username>", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/configurable-sasl-server-factory=configured:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "john", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})/subsystem=elytron/configurable-sasl-server-factory=configured:write-attribute(name=properties,value={"wildfly.sasl.local-user.default-user" => "john", "wildfly.sasl.local-user.challenge-path" => expression "${jboss.server.temp.dir}/auth"})Copy to Clipboard Copied! Toggle word wrap Toggle overflow
作成した
identity-realmを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<local_identity_realm_name>,permission-mapper=<permission_mapper_name>,realms=[{realm=<Local_identity_realm_name>}])/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<local_identity_realm_name>,permission-mapper=<permission_mapper_name>,realms=[{realm=<Local_identity_realm_name>}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleLocalIdentityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleLocalIdentityRealm}])/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleLocalIdentityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleLocalIdentityRealm}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow SASL 認証ファクトリーを追加します。
構文
/subsystem=elytron/sasl-authentication-factory=<sasl_auth_factory_name>:add(security-domain=<security_domain_name>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])/subsystem=elytron/sasl-authentication-factory=<sasl_auth_factory_name>:add(security-domain=<security_domain_name>,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])/subsystem=elytron/sasl-authentication-factory=exampleSaslAuthenticationFactory:add(security-domain=exampleSecurityDomain,sasl-server-factory=configured,mechanism-configurations=[{mechanism-name=JBOSS-LOCAL-USER}])Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理インターフェイスの SASL 認証ファクトリーを有効にします。
構文
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_auth_factory_name>})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=<sasl_auth_factory_name>})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=exampleSaslAuthenticationFactory})/core-service=management/management-interface=http-interface:write-attribute(name=http-upgrade,value={enabled=true,sasl-authentication-factory=exampleSaslAuthenticationFactory})Copy to Clipboard Copied! Toggle word wrap Toggle overflow 管理インターフェイスをリロードします。
reload
$ reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 Elytron の監査ロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
Elytron を使用し、トリガーとなるイベントのセキュリティー監査を完了することができます。セキュリティー監査とは、認可または認証の試行に応答して、ログへの書き込みなどのイベントをトリガーすることを指します。
イベントに対して行われるセキュリティー監査の種類は、セキュリティーレルムの設定によって異なります。
4.1. Elytron 監査ロギング リンクのコピーリンクがクリップボードにコピーされました!
elytron サブシステムで監査ロギングを有効にすると、アプリケーションサーバー内の Elytron の認証および認可イベントをログに記録できるようになります。Elytron は、監査ログエントリーを JSON または SIMPLE 形式で保存します。人間が判読できるテキスト形式の場合は SIMPLE を使用し、個々のイベントを JSON に保存する場合は JSON を使用します。
Elytron の監査ロギングは、JBoss EAP 管理インターフェイスの監査ロギングなど、他のタイプの監査ロギングとは異なります。
Elytron の監査ロギングはデフォルトでは無効ですが、次のログハンドラーのいずれかを設定することで監査ロギングを有効にできます。ログハンドラーをセキュリティードメインに追加することもできます。
ファイル監査ロギング
詳細は、Elytron のファイル監査ロギングの有効化 を参照してください。
定期的なローテーションファイル監査ロギング
詳細は、Elytron の定期ローテーションファイル監査ロギングの有効化 を参照してください。
サイズローテーションファイル監査ロギング
詳細は、Elytron のサイズローテーションファイル監査ロギングの有効化 を参照してください。
syslog監査ロギング詳細は、Elytron の syslog 監査ロギングの有効化 を参照してください。
カスタム監査ロギング
詳細は、Elytron でのカスタムセキュリティーイベントリスナーの使用 を参照してください。
aggregate-security-event-listener リソース を使用すると、ロガーなどのより多くの宛先にセキュリティーイベントを送信することができます。aggregate-security-event-listener リソース は、全イベントをアグリゲートリスナー定義で指定されたリスナーすべてに配信します。
4.2. Elytron のファイル監査ロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
ファイル監査ロギングは、監査ログメッセージをファイルシステムにあるファイル 1 つに保存します。
デフォルトでは、Elytron はファイル監査ロガーとして local-audit を指定します。
local-audit を有効にして、スタンドアロンサーバーでは EAP_HOME/standalone/log/audit.log に、マネージドドメインでは EAP_HOME/domain/log/audit.log に、Elytron 監査ログを書き込めるようにする必要があります。
前提条件
アプリケーションをセキュリティー保護している。
詳細は、Elytron での
filesystem-realmの作成 を参照してください。
手順
ファイルの監査ログを作成します。
構文
/subsystem=elytron/file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<format_type>,synchronized=<whether_to_log_immediately>)
/subsystem=elytron/file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<format_type>,synchronized=<whether_to_log_immediately>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/file-audit-log=exampleFileAuditLog:add(path="file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true)
/subsystem=elytron/file-audit-log=exampleFileAuditLog:add(path="file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイル監査ログをセキュリティードメインに追加します。
構文
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ブラウザーで、セキュリティー保護されたアプリケーションにログインします。
たとえば、セキュリティードメインを使用したアプリケーションユーザーの認証と認可 で作成したアプリケーションにログインするには、http://localhost:8080/simple-webapp-example/secured に移動してログインします。
監査ログを保存するように設定されたディレクトリーに移動します。この手順のコマンド例を使用する場合、ディレクトリーは EAP_HOME/standalone/log です。
file-audit.logというファイルが作成されることに注意してください。これには、アプリケーションへのログインによってトリガーされたイベントのログが含まれています。file-audit.log ファイルの例
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Elytron の定期ローテーションファイル監査ロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
elytron サブシステムを使用して、スタンドアロンサーバーまたはマネージドドメインとして実行されているサーバーの定期ローテーションファイル監査ロギングを有効にできます。
定期ローテーションファイル監査ロギングでは、設定されたスケジュールに基づいて監査ログファイルを自動的にローテーションします。定期ローテーションファイル監査ロギングは、デフォルトのファイル監査ロギングに似ていますが、定期ローテーションファイル監査ロギングには、suffix という追加の属性が含まれています。
suffix 属性の値は、java.time.format.DateTimeFormatter 形式で指定された日付 (.yyyy-MM-dd など) です。Elytron は、その接尾辞で指定された値から自動的にローテーションの周期を計算します。elytron サブシステムは、ログファイル名の最後に接尾辞を付加します。
前提条件
アプリケーションをセキュリティー保護している。
詳細は、Elytron での
filesystem-realmの作成 を参照してください。
手順
定期的なローテーションファイル監査ログを作成します。
構文
/subsystem=elytron/periodic-rotating-file-audit-log=<periodic_audit_log_name>:add(path="<periodic_audit_log_filename>",format=<record_format>,synchronized=<whether_to_log_immediately>,suffix="<suffix_in_DateTimeFormatter_format>")
/subsystem=elytron/periodic-rotating-file-audit-log=<periodic_audit_log_name>:add(path="<periodic_audit_log_filename>",format=<record_format>,synchronized=<whether_to_log_immediately>,suffix="<suffix_in_DateTimeFormatter_format>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/periodic-rotating-file-audit-log=examplePreiodicFileAuditLog:add(path="periodic-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,suffix="yyyy-MM-dd")
/subsystem=elytron/periodic-rotating-file-audit-log=examplePreiodicFileAuditLog:add(path="periodic-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,suffix="yyyy-MM-dd")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 定期的なローテーションファイル監査ロガーをセキュリティードメインに追加します。
構文
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<periodic_audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<periodic_audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=examplePreiodicFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=examplePreiodicFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ブラウザーで、セキュリティー保護されたアプリケーションにログインします。
たとえば、セキュリティードメインを使用したアプリケーションユーザーの認証と認可 で作成したアプリケーションにログインするには、http://localhost:8080/simple-webapp-example/secured に移動してログインします。
監査ログを保存するように設定されたディレクトリーに移動します。この手順のコマンド例を使用する場合、ディレクトリーは EAP_HOME/standalone/log です。
periodic-file-audit.logというファイルが作成されることに注意してください。これには、アプリケーションへのログインによってトリガーされたイベントのログが含まれています。periodic-file-audit.log ファイルの例
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. Elytron のサイズローテーションファイル監査ロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
elytron サブシステムを使用して、スタンドアロンサーバーまたはマネージドドメインとして実行されているサーバーのサイズローテーションファイル監査ロギングを有効にできます。
サイズローテーションファイル監査ロギングでは、ログファイルが設定されたファイルサイズに達すると、監査ログファイルが自動的にローテーションされます。サイズローテーションファイル監査ロギングは、デフォルトのファイル監査ロギングに似ていますが、サイズローテーションファイル監査ロギングには、追加の属性が含まれています。
ログファイルのサイズが rotate-size 属性で定義された制限を超えると、Elytron は現在のファイルの末尾に接尾辞 .1 を追加し、新しいログファイルを作成します。Elytron は既存のログファイルの接尾辞を 1 ずつ増やします。たとえば、Elytron は audit_log.1 の名前を audit_log.2 に変更します。Elytron は、ログファイルの数が max-backup-index で定義されたログファイルの最大数に達するまで数を増やし続けます。ログファイルが max-backup-index 値を超えると、Elytron はファイルを削除します。たとえば、max-backup-index の値として "98" が定義されている場合、audit_log.99 ファイルはこの制限を超えることになります。
前提条件
アプリケーションをセキュリティー保護している。
詳細は、Elytron での
filesystem-realmの作成 を参照してください。
手順
サイズローテーションファイルの監査ログを作成します。
構文
/subsystem=elytron/size-rotating-file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<record_format>,synchronized=<whether_to_log_immediately>,rotate-size="<max_file_size_before_rotation>",max-backup-index=<max_number_of_backup_files>)
/subsystem=elytron/size-rotating-file-audit-log=<audit_log_name>:add(path="<path_to_log_file>",format=<record_format>,synchronized=<whether_to_log_immediately>,rotate-size="<max_file_size_before_rotation>",max-backup-index=<max_number_of_backup_files>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/size-rotating-file-audit-log=exampleSizeFileAuditLog:add(path="size-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,rotate-size="10m",max-backup-index=10)
/subsystem=elytron/size-rotating-file-audit-log=exampleSizeFileAuditLog:add(path="size-file-audit.log",relative-to=jboss.server.log.dir,format=SIMPLE,synchronized=true,rotate-size="10m",max-backup-index=10)Copy to Clipboard Copied! Toggle word wrap Toggle overflow サイズローテーション監査ロガーをセキュリティードメインに追加します。
構文
/subsystem=elytron/security-domain=<domain_size_logger>:write-attribute(name=security-event-listener,value=<audit_log_name>)
/subsystem=elytron/security-domain=<domain_size_logger>:write-attribute(name=security-event-listener,value=<audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSizeFileAuditLog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSizeFileAuditLog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ブラウザーで、セキュリティー保護されたアプリケーションにログインします。
たとえば、セキュリティードメインを使用したアプリケーションユーザーの認証と認可 で作成したアプリケーションにログインするには、http://localhost:8080/simple-webapp-example/secured に移動してログインします。
監査ログを保存するように設定されたディレクトリーに移動します。この手順のコマンド例を使用する場合、ディレクトリーは EAP_HOME/standalone/log です。
size-file-audit.logというファイルが作成されることに注意してください。これには、アプリケーションへのログインによってトリガーされたイベントのログが含まれています。size-file-audit.log ファイルの例
2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}2023-10-24 23:31:04,WARNING,{event=SecurityPermissionCheckSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true,permission=[type=org.wildfly.security.auth.permission.LoginPermission,actions=,name=]} 2023-10-24 23:31:04,WARNING,{event=SecurityAuthenticationSuccessfulEvent,event-time=2023-10-24 23:31:04,security-identity=[name=user1,creation-time=2023-10-24 23:31:04],success=true}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. Elytron の syslog 監査ロギングの有効化 リンクのコピーリンクがクリップボードにコピーされました!
elytron サブシステムを使用して、スタンドアロンサーバーまたはマネージドドメインとして実行されているサーバーの syslog 監査ロギングを有効にできます。syslog 監査ロギングを使用すると、ロギング結果を syslog サーバーに送信するため、ローカルファイルへのロギングよりもセキュリティーオプションが多くなります。
syslog ハンドラーは、syslog サーバーのホスト名や syslog サーバーがリッスンするポートなど、syslog サーバーへの接続に使用するパラメーターを指定します。複数の syslog ハンドラーを定義し、それらを同時にアクティブにすることができます。
対応するログ形式は、RFC5424 と RFC3164 です。伝送プロトコルは、UDP、TCP、TCP with SSL に対応しています。
最初のインスタンスの syslog を定義すると、次の例に示すメッセージを含む INFORMATIONAL 優先度イベントが、ロガーによって syslog サーバーに送信されます。
"Elytron audit logging enabled with RFC format: <format>"
"Elytron audit logging enabled with RFC format: <format>"
<format> は監査ロギングハンドラー用に設定された Request for Comments (RFC) 形式を示します。デフォルトは RFC5424 です。
前提条件
アプリケーションをセキュリティー保護している。
詳細は、Elytron での
filesystem-realmの作成 を参照してください。
手順
syslogハンドラーを追加します。構文
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(host-name=<record_host_name>,port=<syslog_server_port_number>,server-address=<syslog_server_address>,format=<record_format>, transport=<transport_layer_protocol>)
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(host-name=<record_host_name>,port=<syslog_server_port_number>,server-address=<syslog_server_address>,format=<record_format>, transport=<transport_layer_protocol>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow また、TLS 経由で
syslogサーバーにログを送信することもできます。TLS 経由でログを送信するための
syslog設定の構文/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(transport=SSL_TCP,server-address=<syslog_server_address>,port=<syslog_server_port_number>,host-name=<record_host_name>,ssl-context=<client_ssl_context>)
/subsystem=elytron/syslog-audit-log=<syslog_audit_log_name>:add(transport=SSL_TCP,server-address=<syslog_server_address>,port=<syslog_server_port_number>,host-name=<record_host_name>,ssl-context=<client_ssl_context>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow セキュリティードメインに
syslog監査ロガーを追加します。構文
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<syslog_audit_log_name>)
/subsystem=elytron/security-domain=<security_domain_name>:write-attribute(name=security-event-listener,value=<syslog_audit_log_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSyslog)
/subsystem=elytron/security-domain=exampleSecurityDomain:write-attribute(name=security-event-listener,value=exampleSyslog)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. Elytron でのカスタムセキュリティーイベントリスナーの使用 リンクのコピーリンクがクリップボードにコピーされました!
Elytron を使用して、カスタムイベントリスナーを定義できます。カスタムイベントリスナーは、受信したセキュリティーイベントを処理します。イベントリスナーは、カスタム監査ロギングに使用することも、内部 ID ストレージに対してユーザーを認証するために使用することもできます。
module 管理 CLI コマンドを使用してモジュールを追加および削除する機能は、テクノロジープレビュー機能としてのみ提供されています。module コマンドは、マネージドドメインで使用する場合や、リモート管理 CLI を使用して接続する場合には適していません。実稼働環境ではモジュールを手動で追加または削除する必要があります。
テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
アプリケーションをセキュリティー保護している。
詳細は、Elytron での
filesystem-realmの作成 を参照してください。
手順
java.util.function.Consumer<org.wildfly.security.auth.server.event.SecurityEvent>インターフェイスを実装するクラスを作成します。指定のインターフェイスを使用する Java クラスの作成例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例の Java クラスは、ユーザー認証に成功または失敗するたびに、メッセージを表示します。
カスタムイベントリスナーをモジュールとして提供する JAR ファイルを、JBoss EAP に追加します。
以下に、カスタムイベントリスナーをモジュールとして Elytron に追加する管理 CLI コマンドの例を示します。
moduleコマンドを使用して、カスタムイベントリスナーを Elytron にモジュールとして追加した例/subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)
/subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow セキュリティードメインのカスタムイベントリスナーを参照します。
ApplicationDomainでカスタムイベントリスナーを参照する例/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)
/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを再起動します。
reload
$ reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントリスナーは、指定されたセキュリティードメインからセキュリティーイベントを受信します。
第5章 参照 リンクのコピーリンクがクリップボードにコピーされました!
5.1. custom-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することで custom-realm を設定できます。
| 属性 | 説明 |
|---|---|
|
| カスタムレルムの実装の完全修飾クラス名。 |
|
|
カスタムレルムのオプションの |
|
| カスタムレルムのロードに使用するモジュールの名前。 |
5.2. filesystem-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することで、filesystem-realm を設定できます。
| 属性 | 説明 |
|---|---|
| credential-store |
レルムのクリアテキストパスワード、ハッシュ化されたパスワード、および属性を暗号化および復号するための秘密鍵が含まれる認証情報ストアへの参照。この属性を使用する場合は、 |
| encoded |
ID 名をエンコード (Base32) してファイル名に格納する必要があるかどうかを示す属性。デフォルト値は |
| hash-charset | パスワード文字列をバイト配列に変換する際に使用する文字セット。デフォルトは UTF-8 です。 |
| hash-encoding | パスワードがプレーンテキストで保存されていない場合のパスワードの文字列形式。これは、以下のいずれかになります。
デフォルトは base64 です。 |
| key-store |
整合性の検証に使用するキーペアが含まれるキーストアへの参照。この属性を定義する場合は、 |
| key-store-alias |
整合性の検証に使用するキーストア内の秘密鍵エントリーを識別するエイリアス。 |
| levels |
適用するディレクトリーハッシュのレベルの数。デフォルト値は |
| path | レルムを含むディレクトリーへのパス。 |
| relative-to |
|
| secret-key |
レルム内のクリアテキストパスワード、ハッシュ化されたパスワード、および属性を暗号化および復号する秘密鍵のエイリアス。 |
5.3. file-audit-log 属性 リンクのコピーリンクがクリップボードにコピーされました!
| 属性 | 説明 |
|---|---|
|
|
監査イベントが発生するたびに、出力ストリームのフラッシュが必要かどうかを指定します。属性を定義しない場合、 |
|
|
監査ファイルのエンコーディングを指定します。デフォルトは
|
|
|
デフォルト値は |
|
| ログファイルの保存場所を定義します。 |
|
| 任意の属性です。ログファイルの保存場所を定義します。 |
|
|
デフォルト値は |
5.4. http-authentication-factory 属性 リンクのコピーリンクがクリップボードにコピーされました!
http-authentication-factory を設定するには、属性を設定します。
| 属性 | 説明 |
|---|---|
| http-server-mechanism-factory |
このリソースに関連付ける |
| mechanism-configurations | メカニズム固有の設定のリスト。 |
| security-domain | リソースに関連付けるセキュリティードメイン。 |
| 属性 | 説明 |
|---|---|
| credential-security-factory | メカニズムで必要な認証情報の取得に使用するセキュリティーファクトリー。 |
| final-principal-transformer | このメカニズムレルムに適用する最終のプリンシパルトランスフォーマー。 |
| host-name | この設定が適用されるホスト名。 |
| mechanism-name | この設定は、名前を指定したメカニズムが使用される場合にのみ適用されます。この属性を省略すると、メカニズム名に一致します。 |
| mechanism-realm-configurations | メカニズムが理解するレルム名の定義のリストです。 |
| pre-realm-principal-transformer | レルムが選択される前に適用するプリンシパルトランスフォーマー。 |
| post-realm-principal-transformer | レルムの選択後に適用するプリンシパルトランスフォーマー。 |
| protocol | この設定が適用されるプロトコル。 |
| realm-mapper | メカニズムによって使用されるレルムマッパー。 |
| 属性 | 説明 |
|---|---|
| final-principal-transformer | このメカニズムレルムに適用する最終のプリンシパルトランスフォーマー。 |
| post-realm-principal-transformer | レルムの選択後に適用するプリンシパルトランスフォーマー。 |
| pre-realm-principal-transformer | レルムが選択される前に適用するプリンシパルトランスフォーマー。 |
| realm-mapper | メカニズムによって使用されるレルムマッパー。 |
| realm-name | メカニズムにより提示されるレルムの名前。 |
5.5. identity-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することで、identity-realm を設定できます。
| 属性 | 説明 |
|---|---|
|
| このアイデンティティーに関連付けられた属性の名前。 |
|
| アイデンティティーの属性に関連付けられた値の一覧。 |
|
| セキュリティーレルムから利用可能なアイデンティティー。 |
5.6. jdbc-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することで jdbc-realm を設定できます。
| 属性 | 説明 |
|---|---|
| hash-charset | パスワード文字列をバイト配列に変換する際に使用する文字セット。デフォルトは UTF-8 です。 |
| principal-query | 特定の鍵タイプに基づいてユーザーを認証するために使用される認証クエリーのリスト。 |
| 属性 | 説明 |
|---|---|
| attribute-mapping | このリソースに定義された属性マッピングのリスト。 |
| bcrypt-mapper |
SQL クエリーから返されるコラムを |
| clear-password-mapper |
SQL クエリーから返されるこらコラムをクリアパスワードキータイプにマッピングするキーマッパー。これには、ユーザーのパスワードを表す認証クエリーからのコラムインデックスである |
| data-source | データベースに接続するために使用されるデータソースの名前。 |
| salted-simple-digest-mapper |
SQL クエリーから返されたコラムを |
| scram-mapper |
SQL クエリーから返されるコラムを |
| simple-digest-mapper |
SQL クエリーから返されたコラムを |
| sql | 特定のユーザーのテーブル列としてキーを取得し、そのタイプに応じてキーをマッピングするために使用される SQL ステートメント。 |
| 属性 | 説明 |
|---|---|
| index | マップされた属性を表す SQL クエリーからのカラムインデックス。 |
| to | SQL クエリーから返されるカラムからマッピングされたアイデンティティー属性の名前。 |
5.7. key-store 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することにより、key-store を設定できます。
| 属性 | 説明 |
|---|---|
| alias-filter | キーストアから返されるエイリアスに適用するフィルターは、返すエイリアスのコンマ区切りリストまたは以下の形式のいずれかになります。
注記
|
| credential-reference |
キーストアへのアクセスに使用するパスワード。これはクリアテキストで、または |
| path | キーストアファイルへのパス。 |
| provider-name | キーストアのロードに使用するプロバイダーの名前。この属性を設定すると、指定されたタイプのキーストアを作成できる最初のプロバイダーの検索が無効になります。 |
| providers | 検索するプロバイダーインスタンスのリストを取得するために使用されるプロバイダーへの参照。指定しない場合は、代わりにプロバイダーのグローバルリストが使用されます。 |
| relative-to |
このストアが相対するベースパス。完全パスまたは |
| required |
|
| type |
注記 次のキーストアタイプが自動的に検出されます。
その他のキーストアタイプは手動で指定する必要があります。 キーストアタイプの完全なリストは、Oracle JDK ドキュメントの Java Cryptography Architecture Standard Algorithm Name Documentation for JDK 11 にあります。 |
5.8. ldap-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することにより、ldap-realm を設定できます。
| 属性 | 説明 |
|---|---|
| allow-blank-password | このレルムが、空のパスワードの直接検証に対応しているかどうか。この属性が設定されていない場合、空白のパスワードの試行は拒否されます。 |
| dir-context |
LDAP サーバーへの接続に使用される |
| 直接検証 |
この属性が |
| hash-charset | パスワード文字列をバイト配列に変換する際に使用する文字セット。デフォルトは UTF-8 です。 |
| hash-encoding | パスワードがプレーンテキストで保存されていない場合のパスワードの文字列形式。これは、以下のいずれかになります。
デフォルトは base64 です。 |
| identity-mapping | 基礎となる LDAP サーバーで対応するエントリーにプリンシパルをマッピングする方法を定義する設定オプション。 |
| 属性 | 説明 |
|---|---|
| attribute-mapping | このリソースに定義された属性マッピングのリスト。 |
| filter-name | 名前でアイデンティティーを取得する LDAP フィルター。 |
| iterator-filter | レルムのアイデンティティーを繰り返し処理する LDAP フィルター。 |
| new-identity-attributes |
新規に作成された ID の属性のリスト。レルムの変更に必要です。これは、 |
| new-identity-parent-dn | 新しく作成された ID の親の DN。レルムの変更に必要。 |
| otp-credential-mapper | OTP 認証情報の認証情報のマッピング。 |
| rdn-identifier | LDAP エントリーからプリンシパル名を取得するために使用されるプリンシパルの DN の RDN 部分。これは新規アイデンティティーの作成時にも使用されます。 |
| search-base-dn | アイデンティティーを検索するベース DN。 |
| use-recursive-search |
この属性が |
| user-password-mapper | userPassword と同様の認証情報の認証情報マッピング。 |
| x509-credential-mapper |
X509 認証情報のストレージとして LDAP を使用できるようにする設定。 |
| 属性 | 説明 |
|---|---|
| extract-rdn | Raw 形式の値が X.500 形式の場合に、属性の値として使用する RDN キー。 |
| filter |
特定の属性の値を取得するために使用するフィルター。文字列 |
| filter-base-dn | フィルターが実行されるコンテキストの名前。 |
| from | アイデンティティー属性にマッピングするための LDAP 属性の名前。定義されていない場合は、エントリーの DN が使用されます。 |
| reference | 値を取得するエントリーの DN を含む LDAP 属性の名前。 |
| role-recursion |
再帰的なロール割り当ての最大深度。 |
| role-recursion-name |
ロールエントリーの LDAP 属性を確認します。これは、ロールのロール検索時に |
| search-recursive |
|
| to |
特定の LDAP 属性からマップされたアイデンティティー属性の名前。指定されない場合、属性の名前は |
| 属性 | 説明 |
|---|---|
| from | アイデンティティー属性にマッピングするための LDAP 属性の名前。定義されていない場合は、エントリーの DN が使用されます。 |
| verifiable |
|
| writable |
|
| 属性 | 説明 |
|---|---|
| algorithm-from | OTP アルゴリズムの LDAP 属性の名前。 |
| hash-from | OTP ハッシュ関数の LDAP 属性の名前。 |
| seed-from | OTP シードの LDAP 属性の名前。 |
| sequence-from | OTP シーケンス番号の LDAP 属性名。 |
| 属性 | 説明 |
|---|---|
| certificate-from | エンコードされたユーザー証明書にマップする LDAP 属性の名前。定義されていない場合は、エンコードされた証明書はチェックされません。 |
| digest-algorithm |
ユーザー証明書のダイジェストを計算するために使用される、ハッシュ関数のダイジェストアルゴリズム。 |
| digest-from | ユーザー証明書ダイジェストにマップする LDAP 属性の名前。定義されていない場合、証明書のダイジェストはチェックされません。 |
| serial-number-from | ユーザー証明書のシリアル番号にマップする LDAP 属性の名前。定義されていない場合は、シリアル番号はチェックされません。 |
| subject-dn-from | ユーザー証明書のサブジェクト DN にマップする LDAP 属性の名前。定義されていない場合、サブジェクト DN はチェックされません。 |
5.9. パスワードマッパー属性 リンクのコピーリンクがクリップボードにコピーされました!
パスワードマッパーは、以下のアルゴリズムタイプのいずれかを使用してデータベースの複数のフィールドをもとにパスワードを作成します。
- クリアテキスト
- シンプルダイジェスト
- ソルトシンプルダイジェスト
- bcrypt
- SCRAM
- モジュール暗号化
パスワードマッパーには以下の属性があります。
どのマッパーも最初のコラムのインデックスは、1 になります。
| マッパー名 | 属性 | 暗号化方法 |
|---|---|---|
|
|
| 暗号化なし |
|
|
| 簡単なハッシュメカニズムを使用します。 |
|
|
| ソルトには単純なハッシュメカニズムを使用します。 |
|
|
| ハッシュ化に使用する Blowfish アルゴリズム。 |
|
|
| Salted Challenge Response Authentication メカニズムはハッシュに使用します。 |
|
|
| modular-crypt エンコーディングは、複数の情報を単一の文字列にエンコードすることをサポートしています。情報には以下が含まれます。
|
5.10. periodic-rotating-file-audit-log 属性 リンクのコピーリンクがクリップボードにコピーされました!
| 属性 | 説明 |
|---|---|
|
|
監査イベントが発生するたびに、出力ストリームのフラッシュが必要かどうかを指定します。属性を定義しない場合、 |
|
|
監査ファイルのエンコーディングを指定します。デフォルトは
|
|
|
人間が判読できるテキスト形式の場合は |
|
| ログファイルの保存場所を定義します。 |
|
| 任意の属性です。ログファイルの保存場所を定義します。 |
|
|
任意の属性です。ローテーションされたログに日付の接尾辞を追加します。 |
|
|
デフォルト値は |
5.11. properties-realm 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することで、properties-realm を設定できます。
| 属性 | 説明 |
|---|---|
|
|
アイデンティティーのグループメンバーシップ情報が含まれる必要がある、返された |
|
| ユーザーおよびそれらのグループが含まれるプロパティーファイル。 |
|
|
クライアントから提供されたパスワード文字列をハッシュ計算用のバイトアレイに変換するときに使用する文字セットの名前を指定します。デフォルトでは |
|
|
パスワードがプレインテキストで保存されていない場合に、ハッシュされたパスワードの文字列形式を指定します。 |
|
| ユーザーとパスワードが含まれるプロパティーファイル。 |
| 属性 | 説明 |
|---|---|
|
| プロパティーファイルで検出されない場合に、ダイジェストされたパスワードに使用するデフォルトのレルム名。 |
|
| ユーザーおよびパスワードを含むファイルへのパス。このファイルには、レルム名の宣言が含まれる必要があります。 |
|
|
|
|
| パスが相対する、事前に定義されたパス。 |
| 属性 | 説明 |
|---|---|
|
| ユーザーおよびそれらのグループを含むファイルへのパスです。 |
|
| パスが相対する、事前に定義されたパス。 |
5.12. sasl-authentication-factory 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定して sasl-authentication-factory を設定できます。
| 属性 | 説明 |
|---|---|
| mechanism-configurations | メカニズム固有の設定のリスト。 |
| sasl-server-factory | このリソースに関連付ける SASL サーバーファクトリー。 |
| security-domain | このリソースに関連付けるセキュリティードメイン。 |
| 属性 | 説明 |
|---|---|
| credential-security-factory | メカニズムで必要な認証情報の取得に使用するセキュリティーファクトリー。 |
| final-principal-transformer | このメカニズムレルムに適用する最終のプリンシパルトランスフォーマー。 |
| host-name | この設定が適用されるホスト名。 |
| mechanism-name | この設定は、名前を指定したメカニズムが使用される場合にのみ適用されます。この属性を省略すると、メカニズム名に一致します。 |
| mechanism-realm-configurations | メカニズムが理解するレルム名の定義のリストです。 |
| protocol | この設定が適用されるプロトコル。 |
| post-realm-principal-transformer | レルムの選択後に適用するプリンシパルトランスフォーマー。 |
| pre-realm-principal-transformer | レルムが選択される前に適用するプリンシパルトランスフォーマー。 |
| realm-mapper | メカニズムによって使用されるレルムマッパー。 |
| 属性 | 説明 |
|---|---|
| final-principal-transformer | このメカニズムレルムに適用する最終のプリンシパルトランスフォーマー。 |
| post-realm-principal-transformer | レルムの選択後に適用するプリンシパルトランスフォーマー。 |
| pre-realm-principal-transformer | レルムが選択される前に適用するプリンシパルトランスフォーマー。 |
| realm-mapper | メカニズムによって使用されるレルムマッパー。 |
| realm-name | メカニズムにより提示されるレルムの名前。 |
5.13. secret-key-credential-store 属性 リンクのコピーリンクがクリップボードにコピーされました!
secret-key-credential-store は、その属性を設定することで設定できます。
| 属性 | 説明 |
|---|---|
| create |
まだ存在していない場合に Elytron に作成させたくない場合は、値を |
| default-alias |
デフォルトで生成されるキーのエイリアス名です。デフォルト値は |
| key-size | 生成される鍵のサイズです。デフォルトのサイズは 256 ビットです。以下のいずれかの値を設定できます。
|
| path | クレデンシャルストアへのパス。 |
| populate |
クレデンシャルストアに |
| relative-to |
属性 |
5.14. security-domain 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することにより、security-domain を設定できます。
| 属性 | 説明 |
|---|---|
| default-realm | このセキュリティードメインに含まれるデフォルトのレルム。 |
| evidence-decoder | このドメインで使用される EvidenceDecoder への参照。 |
| outflow-anonymous | この属性は、セキュリティードメインへのアウトフローが不可能な場合に、匿名アイデンティティーを使用するかどうかを指定します。アウトフローが不可能な状況は、次の場合に発生します。
匿名アイデンティティーをアウトフローすると、そのドメインに対して以前に確立されたアイデンティティーがすべて消去されます。 |
| outflow-security-domains | このドメインのセキュリティーアイデンティティーの自動アウトフロー先となるセキュリティードメインのリスト。 |
| permission-mapper | このドメインで使用される PermissionMapper への参照。 |
| post-realm-principal-transformer | 指定のアイデンティティー名でレルムが動作した後に適用するプリンシパルトランスフォーマーへの参照。 |
| pre-realm-principal-transformer | レルムが選択される前に適用するプリンシパルトランスフォーマーへの参照。 |
| principal-decoder | このドメインで使用される PrincipalDecoder への参照。 |
| realm-mapper | このドメインで使用される RealmMapper への参照。 |
| realms | このセキュリティードメインに含まれるレルムのリスト。 |
| role-decoder | このドメインで使用される RoleDecoder への参照。 |
| role-mapper | このドメインで使用される RoleMapper への参照。 |
| security-event-listener | セキュリティーイベントのリスナーへの参照。 |
| trusted-security-domains | このセキュリティードメインによって信頼されているセキュリティードメインのリスト。 |
| trusted-virtual-security-domains | このセキュリティードメインによって信頼されている仮想セキュリティードメインのリスト。 |
5.15. simple-role-decoder 属性 リンクのコピーリンクがクリップボードにコピーされました!
属性を設定することにより、単純なロールデコーダーを設定できます。
| 属性 | 説明 |
|---|---|
| attribute | 直接ロールにマップするアイデンティティーの属性名。 |
5.16. size-rotating-file-audit-log 属性 リンクのコピーリンクがクリップボードにコピーされました!
| 属性 | 説明 |
|---|---|
|
|
監査イベントが発生するたびに、出力ストリームのフラッシュが必要かどうかを指定します。属性を定義しない場合、 |
|
|
監査ファイルのエンコーディングを指定します。デフォルトは
|
|
|
デフォルト値は |
|
|
ローテーション時にバックアップするファイルの最大数です。デフォルト値は |
|
| ログファイルの保存場所を定義します。 |
|
| 任意の属性です。ログファイルの保存場所を定義します。 |
|
|
デフォルトでは、サーバーの再起動時に新しいログファイルは Elytron により作成されません。この属性を |
|
|
Elytron がログをローテーションする前にログファイルが到達する最大サイズ。デフォルトは |
|
|
任意の属性です。ローテーションされたログに日付の接尾辞を追加します。 |
|
|
デフォルト値は |
5.17. syslog-audit-log 属性 リンクのコピーリンクがクリップボードにコピーされました!
| 属性 | 説明 |
|---|---|
|
| 監査イベントが記録される形式。 サポートされる値:
デフォルト値:
|
|
| syslog サーバーに送信されるすべてのイベントに埋め込まれるホスト名。 |
|
|
|
|
|
接続を閉じる前に Elytron が サポートされる値:
デフォルト値:
|
|
|
|
|
|
|
|
| 監査イベントの記述に使用される RFC 形式。 サポートされる値:
デフォルト値:
|
|
|
サポートされる値:
デフォルト値:
|