关于istio外部授权的问题
Questions about istio external authorization
问题陈述:
我的目标是让 istio 具有外部授权服务(最好是 HTTP,如果不可能的话 GRPC 也可以)。需要能够控制在授权服务上将 return 发送给客户端的确切状态代码。后一个要求是最有问题的部分。
我的研究
-
我已经用 HTTP Auth 服务制作了一个原型,但是无论是非 200 状态
来自 Auth Service 的代码 I return 客户端总是收到 403
禁止
在网格中 config specification 我看到设置 statusOnError 的唯一可能性,但它只会在无法访问身份验证服务的情况下使用,并且它可以不能动态改变。
也在 envoy documentation for GRPC service 我看到了设置自定义状态的可能性
HTTP attributes for a denied response.
{
"status": "{...}",
"headers": [],
"body": "..."
}
问题:
- 是否只能使用 GRPC 身份验证服务才能自定义状态?
- istio 使用的是 envoy API-V3 还是 API-V2?
- 关于如何使用外部授权者和 custin 状态代码来烹饪 istio 有什么建议吗?
我做了GRPC Auth服务原型,找到了答案。它是 counter-intuitive 但 GRPC 外部身份验证服务确实比 HTTP 服务更灵活。它真的允许设置任意状态代码
问题陈述:
我的目标是让 istio 具有外部授权服务(最好是 HTTP,如果不可能的话 GRPC 也可以)。需要能够控制在授权服务上将 return 发送给客户端的确切状态代码。后一个要求是最有问题的部分。
我的研究
我已经用 HTTP Auth 服务制作了一个原型,但是无论是非 200 状态 来自 Auth Service 的代码 I return 客户端总是收到 403 禁止
在网格中 config specification 我看到设置 statusOnError 的唯一可能性,但它只会在无法访问身份验证服务的情况下使用,并且它可以不能动态改变。
也在 envoy documentation for GRPC service 我看到了设置自定义状态的可能性
HTTP attributes for a denied response. { "status": "{...}", "headers": [], "body": "..." }
问题:
- 是否只能使用 GRPC 身份验证服务才能自定义状态?
- istio 使用的是 envoy API-V3 还是 API-V2?
- 关于如何使用外部授权者和 custin 状态代码来烹饪 istio 有什么建议吗?
我做了GRPC Auth服务原型,找到了答案。它是 counter-intuitive 但 GRPC 外部身份验证服务确实比 HTTP 服务更灵活。它真的允许设置任意状态代码