授权服务(proto)
外部授权使用的授权服务请求消息 网络过滤器 和 HTTP 过滤器。
service.auth.v3.CheckRequest
[service.auth.v3.CheckRequest proto]
{
"attributes": {...}
}
- 属性
(service.auth.v3.AttributeContext) 请求属性。
service.auth.v3.DeniedHttpResponse
[service.auth.v3.DeniedHttpResponse proto]
拒绝响应的 HTTP 属性。
{
"status": {...},
"headers": [],
"body": ...
}
- 状态
(type.v3.HttpStatus) 此字段允许授权服务向下游客户端发送 HTTP 响应状态代码。如果未设置,Envoy 默认发送
403 Forbidden
HTTP 状态代码。
- 标题
(repeated config.core.v3.HeaderValueOption) 此字段允许授权服务向下游客户端发送 HTTP 响应标头。请注意,HeaderValueOption 中的追加字段 在此消息中使用时默认为 false。
- 主体
(string) 此字段允许授权服务向下游客户端发送响应正文数据。
service.auth.v3.OkHttpResponse
[service.auth.v3.OkHttpResponse proto]
OK 响应的 HTTP 属性。
{
"headers": [],
"headers_to_remove": [],
"dynamic_metadata": {...},
"response_headers_to_add": [],
"query_parameters_to_set": [],
"query_parameters_to_remove": []
}
- 标题
(repeated config.core.v3.HeaderValueOption) 除了原始请求标头之外的 HTTP 实体标头。这允许授权服务在将请求分派到上游之前,将标头附加到原始请求标头中,或向其添加标头或覆盖其标头。请注意,HeaderValueOption 中的追加字段 在此消息中使用时默认为 false。通过将
append
字段设置为true
,过滤器将相应标头值附加到匹配的请求标头。通过将append
设为 false,过滤器将添加新标头,或者如果存在匹配项,则覆盖现有标头。
- 要删除的标头
(repeated string) 在将原始请求分派到上游之前,要从原始请求中删除的 HTTP 实体标头。这允许授权服务对与身份验证相关的标头(如
Authorization
)进行操作,处理它们并使用它们。在此模型下,上游将接收请求(如果已授权)或不接收请求(如果未授权),但不会看到包含身份验证凭据的标头。伪标头(如
:authority
、:method
、:path
等),以及标头Host
,不能被删除,因为这会导致请求格式错误。如果在headers_to_remove
中提到,这些特殊标头将被忽略。使用 HTTP 服务时,这必须由 HTTP 授权服务设置为逗号分隔的列表,如下所示:
x-envoy-auth-headers-to-remove: one-auth-header, another-auth-header
。
- 动态元数据
(Struct) 此字段已弃用,取而代之的是 CheckResponse.dynamic_metadata。在删除它之前,设置此字段会覆盖 CheckResponse.dynamic_metadata。
- 要添加的响应标头
(repeated config.core.v3.HeaderValueOption) 此字段允许授权服务向下游客户端发送成功时的 HTTP 响应标头。请注意,HeaderValueOption 中的追加字段 在此消息中使用时默认为 false。
- 要设置的查询参数
(repeated config.core.v3.QueryParameter) 此字段允许授权服务在将原始请求发送到上游之前设置(并覆盖)原始请求上的查询字符串参数。
- 要删除的查询参数
(repeated string) 此字段允许授权服务指定在将原始请求发送到上游之前应从原始请求中删除哪些查询参数。此列表中的每个元素都是要删除的区分大小写的查询参数名称。
service.auth.v3.CheckResponse
[service.auth.v3.CheckResponse proto]
专为 gRPC 和网络授权服务器 only
设计。
{
"status": {...},
"denied_response": {...},
"ok_response": {...},
"dynamic_metadata": {...}
}
- 状态
(Status) 状态
OK
允许请求。任何其他状态都表示应拒绝请求,对于 HTTP 过滤器,如果未被 拒绝的 HTTP 响应状态 覆盖,Envoy 默认发送403 Forbidden
HTTP 状态代码。
- 拒绝响应
(service.auth.v3.DeniedHttpResponse) 提供拒绝响应的 http 属性。
包含 HTTP 响应属性的消息。当授权服务需要向下游客户端发送自定义响应,或者,修改/添加要分派到上游的请求标头时,使用此消息。
只能设置 denied_response 或 ok_response 中的一个。
- ok 响应
(service.auth.v3.OkHttpResponse) 提供 ok 响应的 http 属性。
包含 HTTP 响应属性的消息。当授权服务需要向下游客户端发送自定义响应,或者,修改/添加要分派到上游的请求标头时,使用此消息。
只能设置 denied_response 或 ok_response 中的一个。
- 动态元数据
(Struct) 可选的响应元数据,将作为动态元数据发出,供下一个过滤器使用。此元数据位于由需要它的扩展过滤器规范名称指定的命名空间中
envoy.filters.http.ext_authz 适用于 HTTP 过滤器。
envoy.filters.network.ext_authz 适用于网络过滤器。