--- api_metadata: apiVersion: "authentication.k8s.io/v1" import: "k8s.io/api/authentication/v1" kind: "TokenRequest" content_type: "api_reference" description: "TokenRequest 为给定的服务账号请求一个令牌。" title: "TokenRequest" weight: 2 --- `apiVersion: authentication.k8s.io/v1` `import "k8s.io/api/authentication/v1"` ## TokenRequest {#TokenRequest} TokenRequest 为给定的服务账号请求一个令牌。
- **apiVersion**: authentication.k8s.io/v1 - **kind**: TokenRequest - **metadata** (}}">ObjectMeta) 标准的对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - **spec** (}}">TokenRequestSpec),必需 spec 包含与正被评估的请求相关的信息。 - **status** (}}">TokenRequestStatus) status 由服务器填充,表示该令牌是否可用于身份认证。 ## TokenRequestSpec {#TokenRequestSpec} TokenRequestSpec 包含客户端提供的令牌请求参数。
- **audiences** ([]string),必需 audiences 是令牌预期的受众。 令牌的接收方必须在令牌的受众列表中用一个标识符来标识自己,否则应拒绝该令牌。 为多个受众签发的令牌可用于认证所列举的任意受众的身份,但这意味着目标受众彼此之间的信任程度较高。 - **boundObjectRef** (BoundObjectReference) boundObjectRef 是对令牌所绑定的一个对象的引用。该令牌只有在绑定对象存在时才有效。 注:API 服务器的 TokenReview 端点将校验 boundObjectRef,但其他受众可能不用这样。 如果你想要快速撤销,请为 expirationSeconds 设一个较小的值。 **BoundObjectReference 是对令牌所绑定的一个对象的引用。** - **boundObjectRef.apiVersion** (string) 引用对象的 API 版本。 - **boundObjectRef.kind** (string) 引用对象的类别。有效的类别为 “Pod” 和 “Secret”。 - **boundObjectRef.name** (string) 引用对象的名称。 - **boundObjectRef.uid** (string) 引用对象的 UID。 - **expirationSeconds** (int64) expirationSeconds 是请求生效的持续时间。 令牌签发方可能返回一个生效期不同的令牌,因此客户端需要检查响应中的 “expiration” 字段。 ## TokenRequestStatus {#TokenRequestStatus} TokenRequestStatus 是一个令牌请求的结果。
- **expirationTimestamp** (Time),必需 expirationTimestamp 是已返回令牌的到期时间。 **Time 是 time.Time 的包装器,支持正确编组为 YAML 和 JSON。为 time 包提供的许多工厂方法提供了包装器。** - **token** (string),必需 token 是不透明的持有者令牌(Bearer Token)。 ## 操作 {#Operations}
### `create` 创建 ServiceAccount 的令牌 #### HTTP 请求 POST /api/v1/namespaces/{namespace}/serviceaccounts/{name}/token #### 参数 - **name** (**路径参数**): string,必需 TokenRequest 的名称 - **namespace** (**路径参数**): string,必需 }}">namespace - **body**: }}">TokenRequest,必需 - **dryRun** (**查询参数**): string }}">dryRun - **fieldManager** (**查询参数**): string }}">fieldManager - **fieldValidation** (**查询参数**): string }}">fieldValidation - **pretty** (**查询参数**): string }}">pretty #### 响应 200 (}}">TokenRequest): OK 201 (}}">TokenRequest): Created 202 (}}">TokenRequest): Accepted 401: Unauthorized