OpenSearch/x-pack/plugin
Yogesh Gaikwad a525c36c60 [Kerberos] Add Kerberos authentication support (#32263)
This commit adds support for Kerberos authentication with a platinum
license. Kerberos authentication support relies on SPNEGO, which is
triggered by challenging clients with a 401 response with the
`WWW-Authenticate: Negotiate` header. A SPNEGO client will then provide
a Kerberos ticket in the `Authorization` header. The tickets are
validated using Java's built-in GSS support. The JVM uses a vm wide
configuration for Kerberos, so there can be only one Kerberos realm.
This is enforced by a bootstrap check that also enforces the existence
of the keytab file.

In many cases a fallback authentication mechanism is needed when SPNEGO
authentication is not available. In order to support this, the
DefaultAuthenticationFailureHandler now takes a list of failure response
headers. For example, one realm can provide a
`WWW-Authenticate: Negotiate` header as its default and another could
provide `WWW-Authenticate: Basic` to indicate to the client that basic
authentication can be used in place of SPNEGO.

In order to test Kerberos, unit tests are run against an in-memory KDC
that is backed by an in-memory ldap server. A QA project has also been
added to test against an actual KDC, which is provided by the krb5kdc
fixture.

Closes #30243
2018-07-24 08:44:26 -06:00
..
core [Kerberos] Add Kerberos authentication support (#32263) 2018-07-24 08:44:26 -06:00
deprecation Migrate x-pack-elasticsearch source to elasticsearch 2018-04-20 15:29:54 -07:00
graph Core: Combine doExecute methods in TransportAction (#31517) 2018-06-22 15:03:01 -07:00
logstash Remove all unused imports and fix CRLF (#31207) 2018-06-11 15:12:12 +02:00
ml [ML] Extract persistent task methods from MlMetadata (#32319) 2018-07-24 15:22:57 +01:00
monitoring Switch monitoring to new style Requests (#32255) 2018-07-23 16:50:15 -04:00
rollup Add WeightedAvg metric aggregation (#31037) 2018-07-23 18:33:15 -04:00
security [Kerberos] Add Kerberos authentication support (#32263) 2018-07-24 08:44:26 -06:00
sql Dependencies: Upgrade to joda time 2.10 (#32160) 2018-07-20 10:18:38 +02:00
src/test Allow Integ Tests to run in a FIPS-140 JVM (#31989) 2018-07-24 12:48:14 +03:00
upgrade Remove deprecation warnings to prepare for Gradle 5 (sourceSets.main.output.classesDirs) (#30389) 2018-06-28 15:14:34 +03:00
watcher Rest HL client: Add put watch action (#32026) 2018-07-19 10:40:54 +02:00
build.gradle Allow Integ Tests to run in a FIPS-140 JVM (#31989) 2018-07-24 12:48:14 +03:00