Clarify "no opinion" vs. immediate, short-circuiting deny response. (#15849)
parent
8c4a2bf73c
commit
db29a0f91e
|
@ -108,7 +108,13 @@ the request and respond to either allow or disallow access. The response body's
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To disallow access, the remote service would return:
|
For disallowing access there are two methods.
|
||||||
|
|
||||||
|
The first method is preferred in most cases, and indicates the authorization
|
||||||
|
webhook does not allow, or has "no opinion" about the request, but if other
|
||||||
|
authorizers are configured, they are given a chance to allow the request.
|
||||||
|
If there are no other authorizers, or none of them allow the request, the
|
||||||
|
request is forbidden. The webhook would return:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -121,6 +127,23 @@ To disallow access, the remote service would return:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The second method denies immediately, short-circuiting evaluation by other
|
||||||
|
configured authorizers. This should only be used by webhooks that have
|
||||||
|
detailed knowledge of the full authorizer configuration of the cluster.
|
||||||
|
The webhook would return:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"apiVersion": "authorization.k8s.io/v1beta1",
|
||||||
|
"kind": "SubjectAccessReview",
|
||||||
|
"status": {
|
||||||
|
"allowed": false,
|
||||||
|
"denied": true,
|
||||||
|
"reason": "user does not have read access to the namespace"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Access to non-resource paths are sent as:
|
Access to non-resource paths are sent as:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
|
|
Loading…
Reference in New Issue