問題
我有一個應用程式服務,我希望擁有特定證書的人能夠給我打電話,然後還將證書的指紋發送到該服務。我應該如何在 Azure 中執行此操作?
更多解釋
假設有 10 個不同的系統應該能夠使用它們自己的憑證(簽署者)來呼叫我的服務。我想將它們與我的憑證儲存中的憑證進行檢查,如果是其中之一,請將指紋放入 HTTP 標頭中並將其發送到我的應用程式服務。
到目前為止我發現了什麼:
對我來說,這似乎是防火牆的工作,所以我檢查了「應用程式網關」似乎是解決方案。但我找不到在哪裡可以將其設定為將指紋新增至 HTTP 標頭。
有任何想法嗎?
答案1
Azure 應用程式閘道僅限於處理您的情況下的憑證。對於您的情況,最常見的解決方案之一是使用 Azure Key Vault 憑證來儲存您的憑證。每次有人向你的 Web 應用程式發送請求時,你的應用程式都需要呼叫 Azure Key Vault 憑證識別碼來檢索和驗證指紋。
這篇文章可能是個好的開始https://docs.microsoft.com/en-us/rest/api/keyvault/certificates-and-policies
如果您使用 REST API,您可以使用「取得憑證」操作來擷取憑證的指紋(https://docs.microsoft.com/en-us/rest/api/keyvault/getcertificate/getcertificate)。響應中的 x5t 值是指紋訊息。
為什麼我建議使用 Azure Key Vault?因為它是為證書和密碼管理而設計的。我不會說 Azure Key Vault 是最好的或高度安全的,但至少它的設計目的是肯定解決您的問題。