Проблема
У меня есть служба приложений, и я хочу, чтобы люди с определенными сертификатами могли звонить мне, а затем также отправлять отпечаток сертификата в службу. Как мне это сделать в Azure?
Дополнительные пояснения
Итак, предположим, что есть 10 различных систем, которые должны иметь возможность вызывать мою службу, используя свой собственный сертификат (подписанный). Я хотел бы сверить их с теми, что есть в моем хранилище сертификатов, и если это одна из них, поместить отпечаток в заголовок HTTP и отправить его в мою службу приложений.
Что я обнаружил на данный момент:
Мне кажется, что это работа брандмауэра, поэтому я проверил "Application Gateway", похоже, это решение. Но я не смог найти, где я могу настроить его, чтобы добавить отпечаток в заголовки HTTP.
Есть идеи?
решение1
В вашем случае Azure Application Gateway ограничен обработкой сертификата. В вашем случае одним из самых распространенных решений является использование сертификата Azure Key Vault для хранения вашего сертификата. Каждый раз, когда кто-то отправляет запрос в ваше веб-приложение, вашему приложению необходимо будет вызывать идентификатор сертификата Azure Key Vault для получения и проверки отпечатка пальца.
Эта статья может стать хорошим началомhttps://docs.microsoft.com/en-us/rest/api/keyvault/certificates-and-policies
Если вы используете REST API, вы можете получить отпечаток вашего сертификата с помощью операции Get Certificate (https://docs.microsoft.com/en-us/rest/api/keyvault/getcertificate/getcertificate). Значение x5t в ответе — это информация об отпечатке пальца.
Почему я предлагаю Azure Key Vault? Потому что он предназначен для управления сертификатами и криптографией. Я не буду говорить, что Azure Key Vault лучший или очень безопасный, но, по крайней мере, он предназначен для решения вашей проблемы наверняка.