是否有人使用Azure API管理,特别是使用策略模型验证发送给它的JWT令牌?
我已正确配置<validate-jwt>
标记,但我的令牌是非对称签名的,因此我需要使用<openid-config>
标记让系统知道从哪里获取公钥。
这样做,系统将通过SSL / TLS调用该URL,但在我的情况下,主机配置为提供带有自签名证书的SSL / TLS。
有没有办法禁用它?我知道官方文档提到在调用后端API时禁用证书验证,但这是一个面向前端的API。设置似乎不起作用。
我还尝试滥用策略的声明性模型,以某种方式运行禁用该功能的C#代码,但无济于事。
有谁知道这样做的其他方式?禁用验证,或强制使用自签名证书进行信任。
谢谢,并且有一个好的。
编辑:我的配置如下:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="https" require-signed-tokens="true">
<openid-config url="https://identityserverhost/.well-known/openid-configuration" />
<audiences>
<audience>audience</audience>
</audiences>
<issuers>
<issuer>issuer</issuer>
</issuers>
</validate-jwt>
https://identityserverhost是通过https提供的,但如果使用自签名证书,则会更清晰。
答案 0 :(得分:1)
我认为目前不可能,但这将是一个很好的功能。如果您对此感到满意,可以在openid-config中切换到http而不是https。
答案 1 :(得分:0)
如果你有证书,你可以在 API 管理上加载它 并通过以下策略验证令牌
<issuer-signing-keys>
<key certificate-id="my-rsa-cert" />
</issuer-signing-keys>