клиентские сертификаты доступны даже после их удаления из APIM - PullRequest
0 голосов
/ 11 сентября 2018

Я поиграл со службой управления API Azure и столкнулся с неожиданным поведением. В частности, я читал об использовании сертификатов для аутентификации клиента, как обсуждалось здесь . Я заинтересован в проверке входящего отпечатка пальца по сертификатам, уже загруженным в управление 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. Что странно, я удалил сертификат со страницы Сертификаты клиента на портале управления API Azure, и мой запрос от Postman все еще проходит. Я ожидал, что они будут отклонены, так как сертификат исчез.

Удаление сертификата из Azure прошло успешно, по крайней мере, согласно уведомлениям, представленным мне на портале. Я также попробовал снова через час или около того, подумав, что для обработки может понадобиться какое-то время.

Спасибо всем за потраченное время!

1 Ответ

0 голосов
/ 12 сентября 2018

Это известная проблема, которая будет исправлена ​​в ближайшее время. Сейчас вам придется изменить, например, политику, чтобы заставить APIM выбрасывать сертификат из среды выполнения.

...