![](/img/trans.png)
[英]How can I call a python script from an asp.net Azure app service?
[英]How can I authenticate as a user to Azure App Service from Python script?
我有一個 Python 腳本,它應該使用鏈接從 Web 資源下載數據。 碰巧資源位於受 Active Directory 保護的 Azure 應用服務中。 我的用戶帳戶被允許訪問鏈接和下載數據(我可以從 Web 瀏覽器手動完成,但想自動化這個過程)。 Python 腳本使用requests
庫。 我無法弄清楚如何正確驗證,因為當我嘗試運行腳本時,我得到:
Error 403 - Forbidden
The web app you have attempted to reach has blocked your access.
通常的requests
身份驗證不起作用(使用auth
參數或session.auth
或使用HttpNtlmAuth
)。 我知道可以使用 VS Code 對 Azure 進行身份驗證,然后使用DefaultAzureCredential
,但我不知道應該在哪里使用這個DefaultAzureCredential
對象(因為它不適用於requests
)。
我不需要注冊整個 Python 應用程序或以其他方式被 Azure 資源識別。 它只是一個下載數據的腳本,不應該被生產化。
有什么想法可以從 Azure 中刪除數據嗎?
注意:我不是此 Azure 應用的管理員或創建者,因此無法更改任何限制設置。
簡而言之,腳本制作請求的部分如下所示:
params = {"param1": param1,
"param2": param2}
session = requests.Session()
session.auth = HttpNtlmAuth(USERNAME, PASSWORD)
url = "my-app.azurewebsites.net/the-rest-of-the-path"
response = session.get(url, params=params, verify=False)
如果要訪問 Azure App Service,則必須對 Azure App Service 進行身份驗證。 如果您無權訪問 Azure 應用服務,我們將無法訪問 Azure 資源。
通常,當網絡服務器阻止您訪問您嘗試在瀏覽器中打開的頁面時,您會收到 403 禁止錯誤。 大多數時候你無能為力。 但是,有時問題出在您的頭上。 以下是可能導致此錯誤的一些要點。
以下是您可以嘗試的可能解決方案:
從您的網絡應用程序的網絡頁面中刪除訪問限制。
嘗試添加 0.0.0.0/0 以授予所有人訪問權限。 您可以稍后根據需要添加限制。
限制的順序很重要,因此請仔細檢查。 如果您在批准的呼叫之前有一個被阻止的呼叫,它可能會產生影響。
你也可以有基於 http-headers 的限制,比如 X-Forwarded-For。 請仔細檢查。 這也可能發生在代碼中,具體取決於您處理錯誤的方式。 Azure Front Door 中 HTTP 標頭的協議支持 微軟文檔
如果您的 API 落后於網關應用程序網關與服務端點的集成,請檢查這一點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.