Skip to content

[DOCS] Adds PKI delegation.enabled example #53030

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 4, 2020

Conversation

lcawl
Copy link
Contributor

@lcawl lcawl commented Mar 2, 2020

@lcawl lcawl added >docs General docs changes :Security/Authentication Logging in, Usernames/passwords, Realms (Native/LDAP/AD/SAML/PKI/etc) v8.0.0 v7.7.0 v7.6.2 labels Mar 2, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-security (:Security/Authentication)

@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-docs (>docs)

Comment on lines -8 to -10
If you want the same users to also be authenticated using certificates when they connect to {kib}, you must configure the {es} PKI realm to
<<pki-realm-for-proxied-clients,allow delegation>> and to
{kibana-ref}/kibana-authentication.html#pki-authentication[enable PKI authentication in {kib}].
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved this paragraph to a separate step, which links to the Kibana section.

Comment on lines 255 to 256
. PKI authentication delegation requires that SSL/TLS is configured (without
SSL/TLS client authentication). See <<ssl-tls>>.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

without SSL/TLS client authentication. See <>

This sentence is a bit unclear to me, since I don't think we describe a way to configure TLS without authentication in the linked page. Can we clarify or is there a better link?

@lcawl lcawl requested a review from albertzaharovits March 3, 2020 02:01
@lcawl lcawl marked this pull request as ready for review March 3, 2020 02:01
@lcawl lcawl requested a review from kobelb March 3, 2020 17:34
Copy link
Contributor

@albertzaharovits albertzaharovits left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

without SSL/TLS client authentication. See <>

This sentence is a bit unclear to me, since I don't think we describe a way to configure TLS without authentication in the linked page. Can we clarify or is there a better link?

I agree this is confusing. Otherwise, everything else LGTM! 👍

So, for regular PKI authentication, HTTP or transport TLS with client authentication enabled (i.e. optional or required) is required. This is/was stated clearly in the docs. But it's true that for the case of delegated PKI, the TLS topic was not touched at all. The requirement in this case is to just have TLS for the HTTP layer (with or without client authentication). But, to muddy the waters, when delegated PKI is enabled, the realm can work for non-delegated authentication as well, in which case the TLS restrictions for that apply.
It's tricky, maybe just mention HTTPS is required for delegated PKI at the beginning somewhere, and don't mention client authentication?

`xpack.security.authc.realms.pki` namespace.
You must explicitly set the `order` attribute. See <<ref-pki-settings>> for all
of the options you can set for a `pki` realm.
`xpack.security.authc.realms.pki` namespace. You must explicitly set the `order`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines -15 to -20
authenticating HTTP traffic using username and password credentials. You can
also set `xpack.security.transport.ssl.client_authentication` to `optional` to
allow clients without certificates to authenticate with other credentials.

IMPORTANT: You must enable SSL/TLS with client authentication to use PKI when
clients connect directly to {es}.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can also set xpack.security.transport.ssl.client_authentication ... You must enable SSL/TLS with client authentication...

I moved this content into the "Enable client authentication on the desired network layers (transport or http)" step, since in my opinion it was out of context and therefore harder to understand in this introductory section.

@@ -41,15 +33,21 @@ xpack:
With this configuration, any certificate trusted by the {es} SSL/TLS layer is
accepted for authentication. The username is the common name (CN) extracted
from the DN in the Subject field of the end-entity certificate. This
configuration does not permit PKI authentication to {kib}.
configuration is not sufficient to permit PKI authentication to {kib};
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is not sufficient

I changed this sentence since by my understanding this step is necessary to permit PKI authentication in Kibana, it just isn't sufficient (other steps are required). If I've misunderstood, please let me know and I can revert this change.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is correct!

@lcawl
Copy link
Contributor Author

lcawl commented Mar 4, 2020

It's tricky, maybe just mention HTTPS is required for delegated PKI at the beginning somewhere, and don't mention client authentication?

Thanks for the explanation. I've added this line to the Kibana section:

In this scenario, when you enable TLS, it is mandatory that you <<tls-http,encrypt HTTP client communications>>.

If that's not what you had in mind, just let me know. Thanks!

simply toggle the `delegation.enabled` realm setting to `true`. This realm is
now allowed to validate delegated PKI authentication (after restarting {es}).
<<pki-realm-for-direct-clients>> section. In this scenario, when you enable TLS,
it is mandatory that you <<tls-http,encrypt HTTP client communications>>.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@albertzaharovits
Copy link
Contributor

Thank you Lisa, I uphold my LGTM, beautifully worded, as usual!

@lcawl lcawl merged commit 79d2e1e into elastic:master Mar 4, 2020
@lcawl lcawl deleted the delegation-enabled branch March 4, 2020 22:42
@lcawl lcawl added v7.6.2 and removed v7.6.2 labels Mar 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>docs General docs changes :Security/Authentication Logging in, Usernames/passwords, Realms (Native/LDAP/AD/SAML/PKI/etc) v7.6.2 v7.7.0 v8.0.0-alpha1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[DOCS] PKI delegation.enabled syntax clarification
4 participants