簡體   English   中英

安全地將C#REST API暴露給Python等腳本語言

[英]Securely Exposing C# REST API to scripting language such as Python

我的C#REST API是從AngularJS Web應用程序調用的。 我通過驗證用戶並確保用戶是特定Windows組的一部分來保護Web API。

現在,客戶希望從腳本(Python)調用API。 我該如何實現? 我應該讓他們通過用戶名和密碼作為json調用的一部分嗎?

如果你可以輕松地在Python中擴充標題,我建議你使用令牌認證。 Microsoft不直接提供此類auth,而是通過OWIN項目提供。 這並不難,但你需要先了解它的工作原理。 有一個很好的和全面的教程在這里

基本上,您通過提供用戶名/密碼來獲取令牌(在一段時間內有效)。 此令牌已加密/簽名,這意味着您的后端將信任,無需在每個請求上驗證用戶名/密碼(這是昂貴的)。 然后,您需要將此標記添加到標頭Authorization bearer token或類似的每個請求。 或者,我認為如果您願意,可以在cookie中使用令牌以保持向后一致性。

我建議您在Angular中使用相同的機制,因為您可以輕松地在那里添加攔截器並避免使用cookie和CSRF潛在的麻煩。

使用與您當前使用的完全相同的身份驗證方法。

這是使用python(未經測試)的基本示例:

from requests.auth import HTTPBasicAuth
s = requests.Session()

# Make the initial authentication request from a session object
s.get('https://omg.wtf/user', auth=HTTPBasicAuth('user', 'pass'))

# All subsequent requests from that session will include any cookies set in the initial response
r = s.get('http://omg.wtf/911')
print(r.text)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM