Azure 上的 Azure Defender 有兩個用於 Azure Function 驗證的策略,我無法從支援 http 呼叫的其他 Azure 資源實作這些策略。
- 函數應用程式應啟用用戶端憑證(傳入客戶端憑證)
- 函數應用程式應啟用身份驗證
在Azure Datafactory上,如果我選擇身份驗證作為系統管理的身份,並且我嘗試在標頭上傳遞證書,那麼微軟不支持它(正如他們在支持票證中告訴我的那樣“很少有情況可以使用兩種不同類型進行身份驗證同時進行身份驗證,MSI 身份驗證應該足夠了。
有沒有人在函數應用程式上成功啟用客戶端憑證和身份驗證並讓客戶端進行身份驗證?您可以共享邏輯應用程式或資料工廠的客戶端配置嗎?
答案1
如果您可以提供有關您的用例的更多詳細信息,那麼回答您的問題會更容易。儘管如此,我還是會嘗試用我的假設來回答這個問題。 (粗體)
使用 Azure 資料工廠中的 Web 活動呼叫 Azure 函數。
遺憾的是,您無法在 Web 活動中同時使用系統指派的託管識別碼和用戶端憑證驗證方法。
如果您仍然想同時使用這兩種方法那麼
- 您需要在 Web 活動中開啟託管身份驗證,並且
- 在自訂標頭中傳遞憑證並在 Azure 函數的程式碼中驗證它。
請注意,在自訂標頭中傳遞憑證與內建 Azure Function 無關用戶端憑證模式。您應該將客戶端憑證模式保留為開啟狀態忽略Azure Functions 的常規設定下的狀態。在這種情況下,Azure Function 的前端負載平衡器會將標頭透明地轉送到客戶端程式碼。
提供兩種獨立的方法來向 Azure Function 進行身份驗證
如果您打算允許 Azure Function 為其用戶端獨立提供這兩種方法,那麼您應該選擇允許Azure Function 中的用戶端憑證模式設定下的選項。在這種情況下,前端負載平衡器將首先提示客戶端提供憑證。如果未提供證書,負載平衡器會將請求轉送至 Easy-Auth 中間件以對呼叫者進行驗證。未經身份驗證的請求將被中間件阻止。
使用此後備方法,您可以獨立提供兩種身份驗證方法。請告訴我我的假設是否正確,或者您需要更多詳細資訊如何配置組件以完成建議的解決方案。