|
@@ -1074,8 +1074,7 @@ they cannot have individual passwords.
|
|
|
|
|
|
If you are loading the IdP metadata over SSL/TLS (that is, `idp.metadata.path`
|
|
|
is a URL using the `https` protocol), the following settings can be used to
|
|
|
-configure SSL. If these are not specified, then the
|
|
|
-<<ssl-tls-settings,default SSL settings>> are used.
|
|
|
+configure SSL.
|
|
|
|
|
|
NOTE: These settings are not used for any purpose other than loading metadata
|
|
|
over https.
|
|
@@ -1204,6 +1203,247 @@ If this setting is used, then the Kerberos realm does not perform role mapping a
|
|
|
instead loads the user from the listed realms.
|
|
|
See {stack-ov}/realm-chains.html#authorization_realms[Delegating authorization to another realm]
|
|
|
|
|
|
+[[ref-oidc-settings]]
|
|
|
+[float]
|
|
|
+===== OpenID Connect realm settings
|
|
|
+
|
|
|
+In addition to the <<ref-realm-settings,settings that are valid for all realms>>, you
|
|
|
+can specify the following settings:
|
|
|
+
|
|
|
+`op.issuer`::
|
|
|
+A verifiable Identifier for your OpenID Connect Provider. An Issuer
|
|
|
+Identifier is usually a case sensitive URL using the https scheme that contains
|
|
|
+scheme, host, and optionally, port number and path components and no query or
|
|
|
+fragment components. The value for this setting should be provided by your OpenID
|
|
|
+Connect Provider.
|
|
|
+
|
|
|
+`op.authorization_endpoint`::
|
|
|
+The URL for the Authorization Endpoint at the
|
|
|
+OpenID Connect Provider. The value for this setting should be provided by your OpenID
|
|
|
+Connect Provider.
|
|
|
+
|
|
|
+`op.token_endpoint`::
|
|
|
+The URL for the Token Endpoint at the OpenID Connect Provider.
|
|
|
+The value for this setting should be provided by your OpenID Connect Provider.
|
|
|
+
|
|
|
+`op.userinfo_endpoint`::
|
|
|
+The URL for the User Info Endpoint at the OpenID Connect Provider.
|
|
|
+The value for this setting should be provided by your OpenID Connect Provider.
|
|
|
+
|
|
|
+`op.endsession_endpoint`::
|
|
|
+The URL for the End Session Endpoint at the OpenID Connect
|
|
|
+Provider. The value for this setting should be provided by your OpenID Connect Provider.
|
|
|
+
|
|
|
+`op.jwkset_path`::
|
|
|
+The path or URL to a JSON Web Key Set with the key material that the OpenID Connect
|
|
|
+Provider uses for signing tokens and claims responses.
|
|
|
+If a path is provided, then it is resolved relative to the {es} config
|
|
|
+directory.
|
|
|
+If a URL is provided, then it must be either a `file` URL or a `https` URL.
|
|
|
+{es} automatically caches the retrieved JWK set to avoid unnecessary HTTP
|
|
|
+requests but will attempt to refresh the JWK upon signature verification
|
|
|
+failure, as this might indicate that the OpenID Connect Provider has
|
|
|
+rotated the signing keys.
|
|
|
+
|
|
|
+File based resources are polled at a frequency determined by the global {es}
|
|
|
+`resource.reload.interval.high` setting, which defaults to 5 seconds.
|
|
|
+
|
|
|
+`rp.client_id`::
|
|
|
+The OAuth 2.0 Client Identifier that was assigned to {es} during registration
|
|
|
+at the OpenID Connect Provider
|
|
|
+
|
|
|
+`rp.client_secret`(<<secure-settings,Secure>>)::
|
|
|
+The OAuth 2.0 Client Secret that was assigned to {es} during registration
|
|
|
+at the OpenID Connect Provider
|
|
|
+
|
|
|
+`rp.redirect_uri`::
|
|
|
+The Redirect URI within {kib}. Typically this is the
|
|
|
+"api/security/v1/oidc" endpoint of your Kibana server. For example,
|
|
|
+`https://kibana.example.com/api/security/v1/oidc`.
|
|
|
+
|
|
|
+`rp.response_type`::
|
|
|
+OAuth 2.0 Response Type value that determines the authorization
|
|
|
+processing flow to be used. Can be `code` for authorization code grant flow,
|
|
|
+or one of `id_token`, `id_token token` for the implicit flow.
|
|
|
+
|
|
|
+`rp.signature_algorithm`::
|
|
|
+The signature algorithm that will be used by {es} in order to verify the
|
|
|
+signature of the id tokens it will receive from the OpenID Connect Provider.
|
|
|
+Defaults to `RSA256`
|
|
|
+
|
|
|
+`rp.requested_scopes`::
|
|
|
+The scope values that will be requested by the OpenID Connect Provider as
|
|
|
+part of the Authentication Request. Optional, defaults to `openid`
|
|
|
+
|
|
|
+`rp.post_logout_redirect_uri`::
|
|
|
+The Redirect URI (usually within {kib}) that the OpenID Connect Provider
|
|
|
+should redirect the browser to after a successful Single Logout.
|
|
|
+
|
|
|
+`claims.principal`::
|
|
|
+The name of the OpenID Connect claim that contains the user's principal (username).
|
|
|
+
|
|
|
+`claims.groups`::
|
|
|
+The name of the OpenID Connect claim that contains the user's groups.
|
|
|
+
|
|
|
+`claims.name`::
|
|
|
+The name of the OpenID Connect claim that contains the user's full name.
|
|
|
+
|
|
|
+`claims.mail`::
|
|
|
+The name of the OpenID Connect claim that contains the user's email address.
|
|
|
+
|
|
|
+`claims.dn`::
|
|
|
+The name of the OpenID Connect claim that contains the user's X.509
|
|
|
+_Distinguished Name_.
|
|
|
+
|
|
|
+`claim_patterns.principal`::
|
|
|
+A Java regular expression that is matched against the OpenID Connect claim specified
|
|
|
+by `claims.principal` before it is applied to the user's _principal_ property.
|
|
|
+The attribute value must match the pattern and the value of the first
|
|
|
+_capturing group_ is used as the principal. For example, `^([^@]+)@example\\.com$`
|
|
|
+matches email addresses from the "example.com" domain and uses the local-part as
|
|
|
+the principal.
|
|
|
+
|
|
|
+`claim_patterns.groups`::
|
|
|
+As per `claim_patterns.principal`, but for the _group_ property.
|
|
|
+
|
|
|
+`claim_patterns.name`::
|
|
|
+As per `claim_patterns.principal`, but for the _name_ property.
|
|
|
+
|
|
|
+`claim_patterns.mail`::
|
|
|
+As per `claim_patterns.principal`, but for the _mail_ property.
|
|
|
+
|
|
|
+`claim_patterns.dn`::
|
|
|
+As per `claim_patterns.principal`, but for the _dn_ property.
|
|
|
+
|
|
|
+
|
|
|
+`allowed_clock_skew`::
|
|
|
+The maximum allowed clock skew to be taken into consideration when validating
|
|
|
+id tokens with regards to their creation and expiration times.
|
|
|
+
|
|
|
+`populate_user_metadata`::
|
|
|
+Specifies whether to populate the {es} user's metadata with the values that are
|
|
|
+provided by the OpenID Connect claims. Defaults to `true`.
|
|
|
+
|
|
|
+`http.connect_timeout`::
|
|
|
+Controls the behavior of the http client used for back-channel communication to
|
|
|
+the OpenID Connect Provider endpoints. Specifies the timeout until a connection
|
|
|
+ is established. A value of zero means the timeout is not used. Defaults to `5s`
|
|
|
+
|
|
|
+`http.connection_read_timeout`::
|
|
|
+Controls the behavior of the http client used for back-channel communication to
|
|
|
+the OpenID Connect Provider endpoints. Specifies the timeout used when
|
|
|
+requesting a connection from the connection manager. Defaults to `5s`
|
|
|
+
|
|
|
+`http.socket_timeout`::
|
|
|
+Controls the behavior of the http client used for back-channel communication to
|
|
|
+the OpenID Connect Provider endpoints. Specifies the socket timeout (SO_TIMEOUT)
|
|
|
+in milliseconds, which is the timeout for waiting for data or, put differently,
|
|
|
+a maximum period inactivity between two consecutive data packets). Defaults to
|
|
|
+`5s`
|
|
|
+
|
|
|
+`http.max_connections`::
|
|
|
+Controls the behavior of the http client used for back-channel communication to
|
|
|
+the OpenID Connect Provider endpoints. Specifies the maximum number of
|
|
|
+connections allowed across all endpoints.
|
|
|
+
|
|
|
+`http.max_endpoint_connections`::
|
|
|
+Controls the behavior of the http client used for back-channel communication to
|
|
|
+the OpenID Connect Provider endpoints. Specifies the maximum number of
|
|
|
+connections allowed per endpoint.
|
|
|
+
|
|
|
+[float]
|
|
|
+[[ref-oidc-ssl-settings]]
|
|
|
+===== OpenID Connect realm SSL settings
|
|
|
+
|
|
|
+The following settings can be used to configure SSL for all outgoing http connections
|
|
|
+to the OpenID Connect Provider endpoints.
|
|
|
+
|
|
|
+NOTE: These settings are _only_ used for the back-channel communication between
|
|
|
+{es} and the OpenID Connect Provider
|
|
|
+
|
|
|
+`ssl.key`::
|
|
|
+Specifies the path to the PEM encoded private key to use for http client
|
|
|
+authentication (if required). `ssl.key` and `ssl.keystore.path` cannot be used
|
|
|
+at the same time.
|
|
|
+
|
|
|
+`ssl.key_passphrase`::
|
|
|
+Specifies the passphrase to decrypt the PEM encoded private key (`ssl.key`) if it is
|
|
|
+encrypted. Cannot be used with `ssl.secure_key_passphrase`.
|
|
|
+
|
|
|
+`ssl.secure_key_passphrase` (<<secure-settings,Secure>>)::
|
|
|
+Specifies the passphrase to decrypt the PEM encoded private key (`ssl.key`) if it is
|
|
|
+encrypted. Cannot be used with `ssl.key_passphrase`.
|
|
|
+
|
|
|
+`ssl.certificate`::
|
|
|
+Specifies the path to the PEM encoded certificate (or certificate chain) that is associated
|
|
|
+with the key (`ssl.key`). This setting can be used only if `ssl.key` is set.
|
|
|
+
|
|
|
+`ssl.certificate_authorities`::
|
|
|
+Specifies the paths to the PEM encoded certificate authority certificates that should be
|
|
|
+trusted. `ssl.certificate_authorities` and `ssl.truststore.path` cannot be
|
|
|
+used at the same time.
|
|
|
+
|
|
|
+`ssl.keystore.path`::
|
|
|
+Specifies the path to the keystore that contains a private key and certificate.
|
|
|
+Must be either a Java Keystore (jks) or a PKCS#12 file.
|
|
|
+`ssl.key` and `ssl.keystore.path` cannot be used at the same time.
|
|
|
+
|
|
|
+`ssl.keystore.type`::
|
|
|
+The type of the keystore (`ssl.keystore.path`). Must be either `jks` or `PKCS12`.
|
|
|
+If the keystore path ends in ".p12", ".pfx" or "pkcs12", this setting defaults
|
|
|
+to `PKCS12`. Otherwise, it defaults to `jks`.
|
|
|
+
|
|
|
+`ssl.keystore.password`::
|
|
|
+The password to the keystore (`ssl.keystore.path`). This setting cannot be used
|
|
|
+with `ssl.keystore.secure_password`.
|
|
|
+
|
|
|
+`ssl.keystore.secure_password` (<<secure-settings,Secure>>)::
|
|
|
+The password to the keystore (`ssl.keystore.path`).
|
|
|
+This setting cannot be used with `ssl.keystore.password`.
|
|
|
+
|
|
|
+`ssl.keystore.key_password`::
|
|
|
+The password for the key in the keystore (`ssl.keystore.path`).
|
|
|
+Defaults to the keystore password. This setting cannot be used with
|
|
|
+`ssl.keystore.secure_key_password`.
|
|
|
+
|
|
|
+`ssl.keystore.secure_key_password` (<<secure-settings,Secure>>)::
|
|
|
+The password for the key in the keystore (`ssl.keystore.path`).
|
|
|
+Defaults to the keystore password. This setting cannot be used with
|
|
|
+`ssl.keystore.key_password`.
|
|
|
+
|
|
|
+`ssl.truststore.path`::
|
|
|
+The path to the keystore that contains the certificates to trust.
|
|
|
+Must be either a Java Keystore (jks) or a PKCS#12 file.
|
|
|
+`ssl.certificate_authorities` and `ssl.truststore.path` cannot be used at the
|
|
|
+same time.
|
|
|
+
|
|
|
+`ssl.truststore.type`::
|
|
|
+The type of the truststore (`ssl.truststore.path`). Must be either `jks` or
|
|
|
+`PKCS12`. If the keystore path ends in ".p12", ".pfx" or "pkcs12", this setting
|
|
|
+defaults to `PKCS12`. Otherwise, it defaults to `jks`.
|
|
|
+
|
|
|
+`ssl.truststore.password`::
|
|
|
+The password to the truststore (`ssl.truststore.path`). This setting cannot be
|
|
|
+used with `ssl.truststore.secure_password`.
|
|
|
+
|
|
|
+`ssl.truststore.secure_password` (<<secure-settings,Secure>>)::
|
|
|
+The password to the truststore (`ssl.truststore.path`). This setting cannot be
|
|
|
+used with `ssl.truststore.password`.
|
|
|
+
|
|
|
+`ssl.verification_mode`::
|
|
|
+One of `full` (verify the hostname and the certificate path), `certificate` (verify the
|
|
|
+certificate path, but not the hostname) or `none` (perform no verification).
|
|
|
+Defaults to `full`.
|
|
|
++
|
|
|
+See <<ssl-tls-settings,`ssl.verification_mode`>> for a more detailed explanation of these values.
|
|
|
+
|
|
|
+`ssl.supported_protocols`::
|
|
|
+Specifies the supported protocols for TLS/SSL. Defaults to `TLSv1.3,TLSv1.2,TLSv1.1` if
|
|
|
+the JVM supports TLSv1.3, otherwise `TLSv1.2,TLSv1.1`.
|
|
|
+
|
|
|
+`ssl.cipher_suites`::
|
|
|
+Specifies the cipher suites that should be supported.
|
|
|
+
|
|
|
[float]
|
|
|
[[load-balancing]]
|
|
|
===== Load balancing and failover
|