Сертификат клиента удален из APIM, но все еще принят - PullRequest
0 голосов
/ 20 октября 2018

Я использую клиентские сертификаты в Azure API Management, как описано здесь для безопасного доступа к 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, чтобы могло пройти некоторое время, пока сертификат больше не будет принят?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

(я не могу комментировать существующие ответы, поэтому добавляю новые)

Как упомянул Кедар Джоши, это известная ошибка, которую мы планируем исправить в ближайшие несколько недель.К сожалению, обходной путь обновления политики не работает для удаленных сертификатов.Работающий, но менее удобный обходной путь - хранить список отпечатков в политике вместо перечисления через context.Deployment.Certificates.Там нет связанных отчетов об ошибках.После устранения проблемы соответствующее сообщение появится на https://azure.microsoft.com/en-gb/updates/?product=api-management

0 голосов
/ 22 октября 2018

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

...