Overview

Authentication:认证,指的是对请求中的用户进行识别,即判断你是谁

Authorization:授权,指的是对识别出的用户做授权验证,判断用户是否有权限进行该请求,即判断你有什么权限

Authentication

Kubernetes 使用客户端证书、bearer token、身份验证代理或者 HTTP Basic Auth 等身份认证插件来对 API 请求进行身份验证。当有 HTTP 请求发送到 API server 时,插件会尝试将以下属性关联到请求上:

Static Password File [Deprecated]

APIServer 通过 --basic-auth-file 来开启对 basic auth 的支持

在 HTTP 请求的 Header 中使用 Authorization: Basic BASE64ENCODED(USER:PASSWORD)

来认证

文件模板如下

password,user,uid,"group1,group2,group3"

X509 Client Cert

APIServer 通过 --client-ca-file=SOMEFILE 参数启动这个模式,其中证书的 /CN(Common Name) 表示 username,/O (organization)表示 group

Bearer Tokens

在 HTTP 请求的 Header 中,使用 Authorization: Bearer <Token> 来认证