1

有没有人在使用 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 提供服务,但使用自签名证书,如果这样更清楚的话。

4

2 回答 2

1

我认为目前不可能,但会是一个很好的功能。如果您对此感到满意,可以在 openid-config 中切换到 http 而不是 https。

于 2018-05-04T21:33:33.357 回答
0

如果您有证书,您可以将其加载到 API Management 并通过以下策略验证令牌

<issuer-signing-keys>
    <key certificate-id="my-rsa-cert" />
</issuer-signing-keys>
于 2021-06-04T19:24:39.517 回答