Я поиграл со службой управления 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 прошло успешно, по крайней мере, согласно уведомлениям, представленным мне на портале. Я также попробовал снова через час или около того, подумав, что для обработки может понадобиться какое-то время.
Спасибо всем за потраченное время!