1.4. フェイルオーバーレルムの作成
1.4.1. Elytron でのフェイルオーバーレルム リンクのコピーリンクがクリップボードにコピーされました!
フェイルオーバーセキュリティーレルム (failover-realm) を Elytron で設定することができます。これは、2 つの既存のセキュリティーレルムを参照し、一方のセキュリティーレルムに障害が発生した場合に、Elytron がもう一方をバックアップとして使用するようにすることができます。
Elytron の failover-realm は、以下の 2 つのセキュリティーレルムを参照します。
-
delegate-realm: 使用する主要なセキュリティーレルム。 -
failover-realm: バックアップとして使用するセキュリティーレルム。
failover-realm 設定の例
/subsystem=elytron/failover-realm=exampleSecurityRealm:add(delegate-realm=exampleLDAPRealm,failover-realm=exampleFileSystemRealm)
この例では、ldap-realm である exampleLDAPRealm がデリゲートレルムとして使用され、filesystem-realm である exampleFileSystemRealm が failover-realm として使用されています。ldap-realm に障害が発生した場合、Elytron は認証と認可に filesystem-realm を使用します。
failover-realm では、delegate-realm に障害が発生した場合にのみ failover-realm が呼び出されます。delegate-realm への接続は成功したけれど、必要な ID が見つからない場合は、fail-over レルムは呼び出されません。複数のセキュリティーレルム間で ID を検索するには、distributed-realm を使用します。
1.4.2. フェイルオーバーレルムに必要なセキュリティーレルムの作成例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例では、ldap-realm および filesystem-realm を作成します。これらのセキュリティーレルムは、failover-realm で参照できます。
1.4.2.1. Elytron で ldap-realm を作成する例 リンクのコピーリンクがクリップボードにコピーされました!
Lightweight Directory Access Protocol (LDAP) ID ストアでサポートされる Elytron セキュリティーレルムを作成して、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護します。
この手順の例では、以下の LDAP Data Interchange Format (LDIF) が使用されます。
dn: ou=Users,dc=wildfly,dc=org
objectClass: organizationalUnit
objectClass: top
ou: Users
dn: uid=user1,ou=Users,dc=wildfly,dc=org
objectClass: top
objectClass: person
objectClass: inetOrgPerson
cn: user1
sn: user1
uid: user1
userPassword: userPassword1
dn: ou=Roles,dc=wildfly,dc=org
objectclass: top
objectclass: organizationalUnit
ou: Roles
dn: cn=Admin,ou=Roles,dc=wildfly,dc=org
objectClass: top
objectClass: groupOfNames
cn: Admin
member: uid=user1,ou=Users,dc=wildfly,dc=org
この例で使用されている 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=exampleDirContext:add(url="ldap://10.88.0.2",principal="cn=admin,dc=wildfly,dc=org",credential-reference={clear-text="secret"}) {"outcome" => "success"}ディレクトリーコンテキストを参照する 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=exampleLDAPRealm: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"}]}) {"outcome" => "success"}
これで、このレルムを使用してセキュリティードメインを作成したり、failover-realm、distributed-realm または aggregate-realm で別のレルムと組み合わせたりすることができます。ldap-realm の caching-realm を設定して、ルックアップの結果をキャッシュし、パフォーマンスを向上させることもできます。
1.4.2.2. Elytron で filesystem-realm を作成する例 リンクのコピーリンクがクリップボードにコピーされました!
ファイルシステムベースの ID ストアにサポートされる Elytron セキュリティーレルムを作成して、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護します。
前提条件
- JBoss EAP が実行されている。
手順
Elytron で
filesystem-realmを作成します。構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)例
/subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir) {"outcome" => "success"}レルムにユーザーを追加し、ユーザーのロールを設定します。
ユーザーを追加します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)例
/subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity(identity=user1) {"outcome" => "success"}ユーザーのパスワードを設定します。
構文
/subsystem=elytron/filesystem-realm=<filesystem_realm_name>:set-password(identity=<user_name>, clear={password=<password>})例
/subsystem=elytron/filesystem-realm=exampleFileSystemRealm:set-password(identity=user1, clear={password="passwordUser1"}) {"outcome" => "success"}ユーザーのロールを設定します。
構文
/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=exampleFileSystemRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"]) {"outcome" => "success"}
これで、このレルムを使用してセキュリティードメインを作成したり、failover-realm、distributed-realm または aggregate-realm で別のレルムと組み合わせたりすることができます。
1.4.3. Elytron での failover-realm の作成 リンクのコピーリンクがクリップボードにコピーされました!
Elytron で、既存のセキュリティーレルムをデリゲートレルム、使用するデフォルトのレルム、およびフェイルオーバーレルムとして参照するフェイルオーバーセキュリティーレルムを作成します。Elytron は、デリゲートレルムに障害が発生した場合、設定されたフェイルオーバーレルムを使用します。セキュリティーレルムを使用してセキュリティードメインを作成し、管理インターフェイスまたはサーバーにデプロイされたアプリケーションに認証と認可を追加します。
前提条件
- JBoss EAP が実行されている。
- デリゲートおよびフェイルオーバーレルムとして使用するレルムを作成している。
手順
既存のセキュリティーレルムから
failover-realmを作成します。構文
/subsystem=elytron/failover-realm=<failover_realm_name>:add(delegate-realm=<realm_to_use_by_default>,failover-realm=<realm_to_use_as_backup>)例
/subsystem=elytron/failover-realm=exampleSecurityRealm:add(delegate-realm=exampleLDAPRealm,failover-realm=exampleFileSystemRealm) {"outcome" => "success"}属性をロールにマップするロールデコーダーを作成します。
構文
/subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)例
/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles) {"outcome" => "success"}failover-realmとロールデコーダーを参照するセキュリティードメインを作成します。構文
/subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<failover_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<failover_realm_name>,role-decoder="<role_decoder_name>"}])例
/subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder="from-roles-attribute"}]) {"outcome" => "success"}
これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。