Azure API管理 - Validate-JWT - 禁用证书验证

时间:2018-05-03 11:41:00

标签: ssl certificate jwt azure-api-management

是否有人使用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提供的,但如果使用自签名证书,则会更清晰。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

如果你有证书,你可以在 API 管理上加载它 并通过以下策略验证令牌

<issuer-signing-keys>
    <key certificate-id="my-rsa-cert" />
</issuer-signing-keys>
相关问题