授權服務(proto)
外部授權所使用的授權服務請求訊息,適用於網路篩選器和HTTP 篩選器。
service.auth.v3.CheckRequest
[service.auth.v3.CheckRequest proto]
{
"attributes": {...}
}
- attributes
(service.auth.v3.AttributeContext) 請求屬性。
service.auth.v3.DeniedHttpResponse
[service.auth.v3.DeniedHttpResponse proto]
遭拒回應的 HTTP 屬性。
{
"status": {...},
"headers": [],
"body": ...
}
- status
(type.v3.HttpStatus) 此欄位允許授權服務將 HTTP 回應狀態碼傳送至下游客戶端。若未設定,Envoy 預設會傳送
403 Forbidden
HTTP 狀態碼。
- headers
(repeated config.core.v3.HeaderValueOption) 此欄位允許授權服務將 HTTP 回應標頭傳送至下游客戶端。請注意,當在此訊息中使用時,HeaderValueOption 中的 append 欄位預設為 false。
- body
(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": []
}
- headers
(repeated config.core.v3.HeaderValueOption) 除了原始請求標頭之外的 HTTP 實體標頭。這允許授權服務在將請求分派至上游之前,附加、新增或覆寫原始請求的標頭。請注意,當在此訊息中使用時,HeaderValueOption 中的 append 欄位預設為 false。透過將
append
欄位設定為true
,篩選器會將對應的標頭值附加到相符的請求標頭。若將append
保留為 false,篩選器會新增新標頭,或是在有相符的情況下覆寫現有標頭。
- headers_to_remove
(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
。
- dynamic_metadata
(Struct) 此欄位已棄用,建議使用CheckResponse.dynamic_metadata。在移除之前,設定此欄位會覆寫CheckResponse.dynamic_metadata。
- response_headers_to_add
(repeated config.core.v3.HeaderValueOption) 此欄位允許授權服務在成功時將 HTTP 回應標頭傳送至下游客戶端。請注意,當在此訊息中使用時,HeaderValueOption 中的 append 欄位預設為 false。
- query_parameters_to_set
(repeated config.core.v3.QueryParameter) 此欄位允許授權服務在原始請求傳送至上游之前,設定(並覆寫)原始請求的查詢字串參數。
- query_parameters_to_remove
(repeated string) 此欄位允許授權服務指定在原始請求傳送至上游之前,應從中移除哪些查詢參數。此清單中的每個元素都是要移除的區分大小寫的查詢參數名稱。
service.auth.v3.CheckResponse
[service.auth.v3.CheckResponse proto]
僅適用於 gRPC 和網路授權伺服器 only
。
{
"status": {...},
"denied_response": {...},
"ok_response": {...},
"dynamic_metadata": {...}
}
- status
(Status) 狀態
OK
允許請求。任何其他狀態都表示應該拒絕請求,對於 HTTP 篩選器,如果未被拒絕的 HTTP 回應狀態覆寫,Envoy 預設會傳送403 Forbidden
HTTP 狀態碼。
- denied_response
(service.auth.v3.DeniedHttpResponse) 提供遭拒回應的 HTTP 屬性。
包含 HTTP 回應屬性的訊息。當授權服務需要將自訂回應傳送至下游客戶端,或修改/新增分派至上游的請求標頭時,會使用此訊息。
只能設定 denied_response 和 ok_response 其中之一。
- ok_response
(service.auth.v3.OkHttpResponse) 提供 ok 回應的 HTTP 屬性。
包含 HTTP 回應屬性的訊息。當授權服務需要將自訂回應傳送至下游客戶端,或修改/新增分派至上游的請求標頭時,會使用此訊息。
只能設定 denied_response 和 ok_response 其中之一。
- dynamic_metadata
(Struct) 可選的回應中繼資料,會以動態中繼資料的形式發出,供下一個篩選器使用。此中繼資料位於需要它的擴充篩選器的規範名稱所指定的命名空間中。
envoy.filters.http.ext_authz 用於 HTTP 篩選器。
envoy.filters.network.ext_authz 用於網路篩選器。