【发布时间】:2021-05-03 20:58:09
【问题描述】:
我有一个 Web 应用程序通过 Ocelot API 网关向不同的 API 发出请求。其中一个端点需要通过 JWT 以“授权:承载 {access_token}”(将其标识为承载/令牌认证方案的“承载”关键字)格式作为授权标头发送的身份验证。此令牌特定于应用程序,不用于向网关进行身份验证(网关使用不同的身份验证方案),而是将其作为声明存储在应用程序的安全 HttpOnly cookie 中。
虽然 Ocelot 确实支持将声明转换为标头 (https://ocelot.readthedocs.io/en/latest/features/claimstransformation.html),但
"AddHeadersToRequest": {
"HeaderName": "Claims[ClaimName] > value[0] > |"
},
它只支持一个值,不支持动态标题/字符串连接。换句话说
"AddHeadersToRequest": {
"Authorization": "Bearer Claims[ClaimName] > value[0] > |"
},
不起作用(这样的请求显然会导致错误 401)。所以我的问题是,如何将适当的授权标头/承载令牌添加到特定的 Ocelot 路由?
【问题讨论】:
标签: c# asp.net-core bearer-token ocelot