上下文: kubernet + isio +网关(HTTPS/JWT) + nodejs服务。
服务呼叫:USER_TOKEN=$(< user.jwt); curl -H "Host: service.server.io" -H "Authorization: Bearer $USER_TOKEN" https://service.server.io:443/feature --cacert service-server.crt --resolve service.server.io:443:10.109.30.39
一切运行良好,但我希望检索存储在JWT有效负载{ user_uid: xxxxx, group: xxx }中的用户ID。
理想情况下,我希望将"user_id“注入请求头,以便从节点中检索它。
头:
“主机”:“service.server.io”
“用户-代理”:“curl/7.68.0”、“接受”:“/”
“x转发-for”:“172.17.0.1”
“x转发-proto”:“https”
"x-request-id":"6783b5c0-6d20-4702-98d7-b04732de90cc“
“x特使-企图计数”:“1”
“x公使-内部”:“真”
"x-forwarded-client-cert":"By=spiffe://cluster.local/ns/server/sa/service;Hash=118639f45b8873d8a38fb947736dbcfb974d12ae54ad46a8ba391ef9130f289e;Subject="";URI=spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway-service-account“
"x-b3-traceid":"8119e0fa2fc19699f301e1c7035e099d“
"x-b3-spanid":"2910ce2ce185e82b“
“x-b3-父母”:“f301e1c7035e099d”
“x-b3-抽样”:“0”
谢谢你的帮助,
WCDR
发布于 2022-04-08 10:08:29
谢谢Istio ^_^
outputPayloadToHeader字符串此字段指定标题名称,以将成功验证的JWT有效负载输出到后端。转发的数据为base64_encoded(jwt_payload_in_JSON)。如果未指定有效载荷,则不会发出有效载荷。
编辑yaml文件:种类:"RequestAuthentication“
在相同级别的jws下添加: outputPayloadToHeader: x
应用改变..。
现在有一个新的头输入“input”,它是一个包含有效负载的base64输入。
https://stackoverflow.com/questions/71794751
复制相似问题