レルムチェーン
Realms は レルムチェーン 内に存在します。これは本質的に、構成されたレルムの優先順位付きリスト(通常はさまざまなタイプのレルム)です。レルムは昇順で参照されます(つまり、最も低い order
値を持つレルムが最初に参照されます)。各構成されたレルムには、異なる order
設定が必要です。2つ以上のレルムが同じ order
を持つ場合、ノードは起動に失敗します。
認証プロセス中、Elastic Stack のセキュリティ機能は、リクエストを1つずつ認証しようとします。いずれかのレルムがリクエストを正常に認証すると、認証は成功と見なされます。認証されたユーザーはリクエストに関連付けられ、その後、承認フェーズに進みます。レルムがリクエストを認証できない場合、チェーン内の次のレルムが参照されます。チェーン内のすべてのレルムがリクエストを認証できない場合、認証は失敗と見なされ、認証エラーが返されます(HTTP ステータスコード 401
として)。
一部のシステム(例:Active Directory)では、連続して複数回のログイン試行に失敗した後、一時的なロックアウト期間があります。同じユーザー名が複数のレルムに存在する場合、意図しないアカウントロックアウトが発生する可能性があります。詳細については、ユーザーが Active Directory から頻繁にロックアウトされる を参照してください。
デフォルトのレルムチェーンには file
と native
レルムが含まれています。レルムチェーンを明示的に構成するには、elasticsearch.yml
ファイルでチェーンを指定します。レルムチェーンに file
または native
レルムが含まれていない場合、またはそれらを明示的に無効にしない場合、file
と native
レルムが自動的にレルムチェーンの先頭にその順序で追加されます。自動的な動作をオプトアウトするには、file
と native
レルムを order
と enabled
設定で明示的に構成できます。
以下のスニペットは、file
レルムと2つのLDAPレルム、1つのActive Directoryレルムを有効にし、native
レルムを無効にするレルムチェーンを構成します。
Yaml
xpack.security.authc.realms:
file.file1:
order: 0
ldap.ldap1:
order: 1
enabled: false
url: 'url_to_ldap1'
...
ldap.ldap2:
order: 2
url: 'url_to_ldap2'
...
active_directory.ad1:
order: 3
url: 'url_to_ad'
native.native1:
enabled: false
上記のように、各レルムにはそれを識別するユニークな名前があります。各タイプのレルムは、独自の必須およびオプションの設定を規定します。とはいえ、すべてのレルムに共通の設定があります。
別のレルムへの権限委譲
一部のレルムは、内部で 認証 を行う能力を持っていますが、役割の検索と割り当て(つまり、権限付与)を別のレルムに委譲します。
たとえば、TLSクライアント証明書を使用してユーザーを認証するためにPKIレルムを使用し、その後LDAPレルムでそのユーザーを検索し、Elasticsearch内での役割を決定するためにLDAPグループの割り当てを使用することができます。
ユーザーを取得することをサポートするレルム(その資格情報を必要としない)は、権限レルム として使用できます(つまり、その名前は authorization_realms
のリストの値の1つとして表示される可能性があります)。この機能をサポートするレルムについての詳細は、認証なしでユーザーを検索する を参照してください。
この機能をサポートするレルムでは、認証レルムの authorization_realms
設定を構成することで有効にできます。各レルムが authorization_realms
設定をサポートしているかどうかを確認するには、サポートされている設定のリストを確認してください。
レルムに対して権限委譲が有効になっている場合、そのレルムは標準的な方法でユーザーを認証し(関連するキャッシュを含む)、次に構成された権限レルムのリストでそのユーザーを検索します。authorization_realms
設定で指定された順序で各レルムを試します。ユーザーはプリンシパルによって取得されます - ユーザーは 認証 と 権限レルム で同一のユーザー名を持っている必要があります。権限レルムのいずれかでユーザーが見つからない場合、認証は失敗します。
詳細については、権限委譲の構成を参照してください。
権限委譲には、カスタム認証および権限レルムを含むサブスクリプションが必要です。