客户端证书已从 APIM 中删除但仍被接受

Client certificate deleted from APIM but still accepted

我正在 Azure API 管理中使用客户端证书 here 来保护对 API:

的访问
<choose>
  <when condition="@(context.Request.Certificate == null || !context.Deployment.Certificates.Any(c => c.Value.Thumbprint == context.Request.Certificate.Thumbprint))" >
    <return-response>
        <set-status code="403" reason="Invalid client certificate" />
    </return-response>
  </when>
</choose>

到目前为止一切正常。

但是:在我上传客户端证书后,测试了使用该证书访问 API(有效),我从 APIM 中删除了证书。现在我希望我不再能够访问 API 但它仍然有效。在 APIM 的后台是否有一些缓存等,这样可能需要一段时间才能不再接受证书?

首先,请务必在 Azure API 管理门户中确认已删除的证书。问题似乎是已知的,您可以更改策略以强制从 APIM.

上的运行时删除证书

(我无法评论现有答案,因此添加新答案)

正如 Kedar Joshi 提到的,这是一个已知错误,我们计划在接下来的几周内修复它。不幸的是,更新策略的解决方法不适用于已删除的证书。 可行但不太方便的解决方法是在策略中保留指纹列表,而不是通过 context.Deployment.Certificates 进行枚举。 没有相关的错误报告。一旦问题得到解决,相应的公告将出现在 https://azure.microsoft.com/en-gb/updates/?product=api-management