You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Client certificate authentication is enabled by passing the `--client-ca-file=SOMEFILE`
142
-
option to API server. The referenced file must contain one or more certificate authorities
143
-
to use to validate client certificates presented to the API server. If a client certificate
144
-
is presented and verified, the common name of the subject is used as the user name for the
145
-
request. As of Kubernetes 1.4, client certificates can also indicate a user's group memberships
141
+
Any Kubernetes client that presents a valid client certificate signed by the cluster's
142
+
_client trust_ certificate authority (CA) is considered authenticated. In this configuration, Kubernetes determines
143
+
the username from the `commonName` field in the _subject_ of the certificate
144
+
(for example, `commonName=bob` represents a user with username "bob").
145
+
From there, Kubernetes [authorization](/docs/reference/access-authn-authz/authorization)
146
+
mechanisms determine whether the user is allowed to perform a specific operation on a resource.
147
+
148
+
Client certificate authentication is enabled by passing the `--client-ca-file=<SOMEFILE>`
149
+
option to the API server.
150
+
This option configures the cluster's _client trust_ certificate authority.
151
+
The referenced file must contain one or more certificate authorities that
152
+
the API server can use, when it needs to validate client certificates.
153
+
If a client certificate is presented and verified, the common name of the subject is used as
154
+
the user name for the request. Client certificates can also indicate a user's group memberships
146
155
using the certificate's organization fields. To include multiple group memberships for a user,
147
156
include multiple organization fields in the certificate.
148
157
149
-
For example, using the `openssl` command line tool to generate a certificate signing request:
158
+
See [Managing Certificates](/docs/tasks/administer-cluster/certificates/) for how to generate a client cert, or read the brief [example](#x509-client-certificates-example) later in this page.
Kubernetes can use the same approach for node identity; nodes are clients of the Kubernetes API server
196
+
(also, although less relevant here, the API server is usually also a client of each node).
197
+
For example: a Node "server-1a-antartica42", with the domain name "server-1a-antartica42.cluster.example", could use a certificate issued to "CN=system:node:server-1a-antartica42,O=system:nodes". The node's username is then "system:node:server-1a-antartica42", and the node is a member of "system:authenticated" and "system:nodes".
This would create a signing request for the username "alovelace", belonging to two groups, "app1" and "app2". You could then use that signing request to obtain
0 commit comments