2016-12-22 3 views
1

Когда я вызываю свой API из API управления (APIM), я не вижу сертификат в RequestContext или заголовке.Отсутствует сертификат, когда Azure API Manager вызывает службу Azure APP


У меня есть следующие настройки:

My App использует план обслуживания по ценообразованию уровня: Основные: 1 Малые

Я по подписке Benefit Program Developer

Что я считаю, означает, что у меня есть доступ к использованию. Сертификаты


Я надежно d сертификат: Azure | APIM Instance | Каталог издателей | Безопасность | Клиентские сертификаты

Для сайта

"clientCertEnabled": true, 

Для API сферы

<inbound> 
    <base /> 
    <authentication-certificate thumbprint="58D06D6E3265F6AE841527ABDF721F260871B6A5" /> 
</inbound> 

APIM обнажает HTTPS URI АФИ


Я использую этот код в моем классе AuthorizeAttribute читать сертификат из Запроса:

protected override bool IsAuthorized(HttpActionContext actionContext) 
{ 
    var cert = actionContext.RequestContext.ClientCertificate; 

И я использую это в контроллере действий:

X509Certificate2 clientCertInRequest = RequestContext.ClientCertificate; 

Я считаю, что все это работало в начале недели, но, как я пытаюсь Azure, что я записал то, что я сделал , уничтожил мою установку и начал с нуля, чтобы проверить мое понимание.

Теперь я застрял.

Что я пропустил/сделал неправильно?

+0

Вы используете https ServiceURL? –

+0

Ах, вот и все. Я пометил HTTPS для схемы URL веб-API, поэтому я ожидал, что URL-адрес веб-службы обнаружит и изменит. Это не так. Думаю, это ошибка. – Richard210363

+1

Мы разрешаем интерфейсу HTTPS, а бэкэнд - HTTP, или наоборот. Раньше я делал ту же ошибку. Возможно, мы сможем определить, загрузите ли вы сертификат, который вам нужен, используя сервер HTTPS. –

ответ

2

URL-адрес бэкэнд-сервиса также должен быть URL-адресом HTTPS.