即使从APIM中删除了客户端证书,它们似乎仍然可以访问

时间:2018-09-10 21:11:24

标签: azure-api-management

我一直在使用Azure的API管理服务,并且遇到了一些意外的行为。具体来说,我一直在阅读有关here所讨论的使用证书进行客户端身份验证的信息。我有兴趣对照已上传到API管理的证书检查传入的指纹。 Azure示例为您提供了以下示例来实现此目的:

<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>

使用Postman和API方面的一些模拟响应可以按预期工作。具有证书工作的传入消息以及其他具有证书工作的消息返回403。奇怪的是,然后我从Azure API管理门户上的“客户端证书”页面中删除了证书,而我对Postman的请求仍然可以通过。我原以为他们会因为证书消失而被拒绝。

至少根据门户中向我显示的通知,成功将证书从Azure删除。一个小时左右后,我还尝试了一次,以为可能需要一段时间才能处理。

谢谢大家的光临!

1 个答案:

答案 0 :(得分:0)

这是一个已知问题,将很快修复。现在,您必须更改(例如)策略,以强制APIM放弃运行时的证书。