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
に使用されます。