如何在Azure上保护REST-ful API?

时间:2019-06-06 23:49:31

标签: angular azure rest azure-web-app-service azure-rest-api

我正在使用App Services在Azure上运行REST-ful API(应用程序)。特别是,我使用Flask编写API。我可以使用CSRF来“保护” CORS,以防app = Flask(__name__) CORS(app, resources={r'/api/v1/*': {'origins': 'https://my-angular-app.azurewebsites.net'}})

https://my-angular-app.azurewebsites.net

请注意,我的意图仅是允许域https://my-rest-app.azurewebsites.net/api/v1/test(这是Angular应用程序)中的XHR。

但是,我仍然可以使用浏览器(无论是否隐身)或Postman来访问REST端点(例如Login with Azure Active Directory)。邮递员工具不是浏览器,因此应具有观察到的作用。由于浏览器不是一个使用XHR访问REST-ful API的域,因此,通过直接键入已知的终结点,我仍然可以访问资源。

我尝试使用401 Unauthorized在REST应用程序上应用身份验证/授权。这种方法确实“保护”了外部人员免于直接访问REST端点,但是,它也阻止了Angular应用程序制作XHR(我得到了%.txt: %.in @echo some-command $(SOME_OPTIONS) $@ $< compile: $(outputs) upgrade: SOME_OPTIONS:=whatever upgrade: compile )。

关于如何保护REST应用程序不受“外部人员”影响的任何想法?我可以想象多个位置(例如Angular,Flask,Azure等)中的“修复程序”,但不确定合理的方法。

0 个答案:

没有答案