2.6. 複数のアイデンティティーストアを使用した認証および承認の設定

異なるアイデンティティーストア間でアイデンティティーの属性を保存する場合は、aggregate-realm を使用して認証および承認のためにアイデンティティー属性を単一のセキュリティーレルムに読み込みます。

2.6.1. Elytron の集約レルム

Aggregate-realm を使用すると、認証と別のセキュリティーレルムにいずれかのセキュリティーレルムを使用したり、Elytron での承認に複数のセキュリティーレルムの集約を使用したりできます。たとえば、集約レルムを設定して、認証にプロパティーレルムを使用して、承認に JDBC リレムを使用することができます。

複数の承認レルムを集約するよう設定されたアグリゲートレルムでは、以下のようにアイデンティティーが作成されます。

  • 承認に設定された各セキュリティーレルムの属性値はロードされます。
  • 属性が 2 つ以上の承認レルムで定義されている場合は、最初に出現した属性の値が使用されます。

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

レルム設定を集約します。

authentication-realm=properties-realm,
authorization-realms=[jdbc-realm,ldap-realm]
  • JDBC レルムから取得した属性値:

    e-mail: user@example.com
    groups: Supervisor, User
  • ldap レルムから取得した属性値:

    e-mail: administrator@example.com
    phone: 0000 0000 0000

その結果、集約レルムから取得されるアイデンティティーは以下のようになります。

e-mail: user@example.com
groups: Supervisor, User
phone: 0000 0000 0000

この例では、属性 e-mail が両方の承認レルムで定義されています。集約レルムは authorization-realms=[jdbc-realm,ldap-realm] のように承認レルムを集約するよう設定されていたため、JDBC レルムで定義された値は、生成される集約レルムの属性 e-mail に使用されます。