第1章 ID ストアの設定


1.1. 集約レルムの作成

1.1.1. Elytron の集約レルム

aggregate-realm を使用すると、認証と別のセキュリティーレルムにいずれかのセキュリティーレルムを使用したり、Elytron での認可に複数のセキュリティーレルムの集約を使用したりできます。

たとえば、認証に ldap-realm を使用するように aggregate-realm を設定し、認可に filesystem-realmldap-realm を集約できます。

アイデンティティーは、次の方法で、複数の認可レルムで設定された集約レルム内に作成されます。

  • 各認可レルムの属性値がロードされます。
  • 属性が複数の認可レルムで定義されている場合は、最初に出現した属性の値が使用されます。

以下の例は、複数の認可レルムに同じアイデンティティー属性の定義が含まれる場合にアイデンティティーがどのように作成されるかを示しています。

集約レルム設定の例

/subsystem=elytron/aggregate-realm=exampleSecurityRealm:add(authentication-realm=exampleLDAPRealm,authorization-realms=[exampleLDAPRealm,exampleFileSystemRealm])
Copy to Clipboard Toggle word wrap

この例では、設定された aggregate-realm は、LDAP レルムである "exampleLDAPRealm" とファイルシステムレルムである "exampleFilesystemRealm" の 2 つの既存のセキュリティーレルムを参照します。

  • LDAP レルムから取得した属性値:

    mail: administrator@example.com
    telephoneNumber: 0000 0000
    Copy to Clipboard Toggle word wrap
  • ファイルシステムレルムから取得した属性値:

    mail: user@example.com
    website: http://www.example.com/
    Copy to Clipboard Toggle word wrap

集約レルムから取得した生成アイデンティティー:

mail: administrator@example.com
telephoneNumber: 0000 0000
website: http://www.example.com/
Copy to Clipboard Toggle word wrap

LDAP レルムはファイルシステムレルムの前に参照されるため、aggregate-realm の例では、LDAP レルムで定義された属性 mail の値を使用します。

1.1.2. 集約レルムに必要なセキュリティーレルムの作成例

以下の例では、ldap-realm および filesystem-realm を作成します。これらのセキュリティーレルムは aggregate-realm で参照できます。

1.1.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: passwordUser1
mail: administrator@example.com
telephoneNumber: 0000 0000

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
Copy to Clipboard Toggle word wrap

この例で使用されている 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 が実行されている。

手順

  1. LDAP サーバーへの接続に使用される URL とプリンシパルを提供するディレクトリーコンテキストを設定します。

    /subsystem=elytron/dir-context=<dir_context_name>:add(url="<LDAP_URL>",principal="<principal_distinguished_name>",credential-reference=<credential_reference>)
    Copy to Clipboard Toggle word wrap

    /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"}
    Copy to Clipboard Toggle word wrap

  2. ディレクトリーコンテキストを参照する 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>"}]})
    Copy to Clipboard Toggle word wrap

    /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"},{from="mail",to="mail"},{from="telephoneNumber",to="telephoneNumber"}]})
    {"outcome" => "success"}
    Copy to Clipboard Toggle word wrap

これで、このレルムを使用してセキュリティードメインを作成したり、failover-realmdistributed-realm または aggregate-realm で別のレルムと組み合わせたりすることができます。

1.1.2.2. Elytron で filesystem-realm を作成する例

ファイルシステムベースの ID ストアにサポートされる Elytron セキュリティーレルムを作成して、JBoss EAP サーバーインターフェイスまたはサーバーにデプロイされたアプリケーションを保護します。

前提条件

  • JBoss EAP が実行されている。

手順

  1. Elytron で filesystem-realm を作成します。

    構文

    /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add(path=<file_path>)
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add(path=fs-realm-users,relative-to=jboss.server.config.dir)
    {"outcome" => "success"}
    Copy to Clipboard Toggle word wrap

  2. レルムにユーザーを追加し、ユーザーのロールを設定します。

    1. ユーザーを追加します。

      構文

      /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity(identity=<user_name>)
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity(identity=user1)
      {"outcome" => "success"}
      Copy to Clipboard Toggle word wrap

    2. ユーザーのロールを設定します。

      構文

      /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 Toggle word wrap

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity-attribute(identity=user1, name=Roles, value=["Admin","Guest"])
      {"outcome" => "success"}
      Copy to Clipboard Toggle word wrap

    3. ユーザーの属性を設定します。

      構文

      /subsystem=elytron/filesystem-realm=<filesystem_realm_name>:add-identity-attribute(identity=<user_name>,name=<attribute_name>, value=[<attribute_value>])
      Copy to Clipboard Toggle word wrap

      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity-attribute(identity=user1, name=mail, value=["user@example.com"])
      /subsystem=elytron/filesystem-realm=exampleFileSystemRealm:add-identity-attribute(identity=user1, name=website, value=["http://www.example.com/"])
      Copy to Clipboard Toggle word wrap

これで、このレルムを使用してセキュリティードメインを作成したり、failover-realmdistributed-realm または aggregate-realm で別のレルムと組み合わせたりすることができます。

1.1.3. Elytron での aggregate-realm の作成

Elytron で、認証用に 1 つのセキュリティーレルムを使用し、認可用に複数のセキュリティーレルムを集約する aggregate-realm を作成します。aggregate-realm を使用してセキュリティードメインを作成し、管理インターフェイスおよびデプロイされたアプリケーションに認証および認可を追加します。

前提条件

  • JBoss EAP が実行されている。
  • 集約レルムから参照するレルムを作成しました。

手順

  1. 既存のセキュリティーレルムから aggregate-realm を作成します。

    構文

    /subsystem=elytron/aggregate-realm=<aggregate_realm_name>:add(authentication-realm=<security_realm_for_authentication>, authorization-realms=[<security_realm_for_authorization_1>,<security_realm_for_authorization_2>,...,<security_realm_for_authorization_N>])
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/aggregate-realm=exampleSecurityRealm:add(authentication-realm=exampleLDAPRealm,authorization-realms=[exampleLDAPRealm,exampleFileSystemRealm])
    {"outcome" => "success"}
    Copy to Clipboard Toggle word wrap

  2. 属性をロールにマップするロールデコーダーを作成します。

    構文

    /subsystem=elytron/simple-role-decoder=<role_decoder_name>:add(attribute=<attribute>)
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)
    {"outcome" => "success"}
    Copy to Clipboard Toggle word wrap

  3. aggregate-realm およびロールデコーダを参照するセキュリティードメインを作成します。

    構文

    /subsystem=elytron/security-domain=<security_domain_name>:add(default-realm=<aggregate_realm_name>,permission-mapper=default-permission-mapper,realms=[{realm=<aggregate_realm_name>,role-decoder="<role_decoder_name>"}])
    Copy to Clipboard Toggle word wrap

    /subsystem=elytron/security-domain=exampleSecurityDomain:add(default-realm=exampleSecurityRealm,permission-mapper=default-permission-mapper,realms=[{realm=exampleSecurityRealm,role-decoder="from-roles-attribute"}])
    {"outcome" => "success"}
    Copy to Clipboard Toggle word wrap

これで、作成したセキュリティードメインを使用して、管理インターフェイスとアプリケーションに認証と認可を追加できるようになりました。詳細は、管理インターフェイスとアプリケーションの保護 を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る