@@ -73,7 +73,7 @@ The motivation for this KEP is to reduce obscurity and help users with debugging
73
73
74
74
## Proposal
75
75
76
- Add a new API endpoint to the ` authentication ` group - ` SelfSubjectAttributesReview ` .
76
+ Add a new API endpoint to the ` authentication.k8s.io ` group - ` SelfSubjectAttributesReview ` .
77
77
The user will hit the endpoint after authentication happens, so all attributes will be available to return.
78
78
79
79
## Design Details
@@ -92,7 +92,7 @@ type SelfSubjectAttributesReview struct {
92
92
// +optional
93
93
metav1.ObjectMeta ` json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
94
94
// Status is filled in by the server with the user attributes.
95
- Status SelfSubjectAttributesReview ` json:"status,omitempty" protobuf:"bytes,2,opt,name=status"`
95
+ Status SelfSubjectAttributesReviewStatus ` json:"status,omitempty" protobuf:"bytes,2,opt,name=status"`
96
96
}
97
97
```
98
98
``` go
@@ -141,9 +141,9 @@ Response example:
141
141
142
142
User attributes are known at the moment of accessing the rest API endpoint and can be extracted from the request context.
143
143
144
- NOTE: There are no audiences in requests and responses since the SelfSubjectAttributesReview API is implied to be simple.
145
- Unlike the TokenReview API works, kube-apiserver will not do additional internal requests.
146
- Instead, a user will see the exact result of the authentication, which will be extracted from the request context .
144
+ NOTE: Unlike the TokenReview, there are no audiences in requests and responses since
145
+ the SelfSubjectAttributesReview API can only be accessed using valid credentials against the API server,
146
+ meaning that the audience must always be that of the API server. Thus learning this value is not practical .
147
147
148
148
### RBAC
149
149
@@ -186,12 +186,16 @@ Unit tests covering:
186
186
2. Request returns some user attributes
187
187
3. Request with a status returns overridden fields
188
188
189
- Integration test covering :
189
+ Integration tests covering :
190
190
191
191
1. Successful authentication through a simple authenticator, e.g., token or certificate authenticator
192
192
2. Successful authentication through a complicated authenticator, e.g., webhook or authentication proxy authenticator
193
193
3. Failed authentication
194
194
195
+ Command line interface tests covering :
196
+ 1. How successful responses are rendered in the terminal with various output modes.
197
+ 2. How errors are rendered.
198
+
195
199
# ## Graduation Criteria
196
200
197
201
` authentication.k8s.io/v1alpha1` and `authentication.k8s.io/v1beta1` apis will be reintroduced to go through the graduation cycle.
0 commit comments