我在Azure Web App上托管了ASP.NET Core REST API服务。我拥有其源代码,可以根据需要进行更改。
我计划使用Azure API管理发布REST API服务。
我正在将Azure AD身份验证添加到Azure API管理前端。因此,API管理前端是安全的。 All the steps are is described here。
到目前为止一切都很好。 这是问题(或挑战?):
考虑到我的后端REST API服务托管在Azure上并且可以公开访问,我如何保护它免受API管理调用以外的请求调用的侵害?
后端服务如何知道传入呼叫的身份和AAD组声明以及对其声明的访问权限?
链接到代码示例或在线文档会很有帮助。
更新
以下问题有些重叠:
How to prevent direct access to API hosted in Azure app service
...这个问题的一部分仍然很突出:
后端服务如何知道传入呼叫的身份和AAD组声明以及对其声明的访问权限?
答案 0 :(得分:0)
您可以在WebApp上启用静态IP限制,以仅允许来自APIM服务的VIP的传入流量(请注意,在某些特定情况下,VIP可能会更改,并且需要再次更新白名单)。 / p>
客户端==> AAD ==> VIP APIM服务<==>(允许使用VIP APIM)Web应用
https://docs.microsoft.com/en-us/azure/app-service/app-service-ip-restrictions
答案 1 :(得分:-1)
您可以使用CORS定义哪个域可以访问您的API 请参阅文档=> https://docs.microsoft.com/en-us/aspnet/core/security/cors?view=aspnetcore-2.1