我在Azure(Web App)中托管了一个API。并非每个客户端都可以通过目录访问此API(IP限制),我愿意使用APIM对其进行保护。
用户将呼叫APIM网关,网关应作出适当的响应。
一个大问题是身份验证:我正在使用AAD保护该API(后端API,而不是APIM-Gateway端点)。 因此,用户应针对AAD进行身份验证,并在不直接访问后端的情况下访问资源。
是否可以实现这种情况?
答案 0 :(得分:0)
如果您对用户进行AAD身份验证感到满意,那么将为您提供完美支持。使用该模型,APIM可能仅用于将用户请求传递给后端,或者您可以在请求处理管道中的某个地方使用validate-jwt策略来验证用户的令牌并授权调用的操作。
APIM的授权服务器功能可用于证明您的API需要来自某些服务器的AAD令牌。如果这样做,开发人员门户上的测试控制台将显示控件,以简化获取令牌来对API进行测试调用的操作。
通常,APIM要求客户端传递订阅密钥以对呼叫进行身份验证和授权。但是,如果您不希望使用AAD,则可以使用Open产品使您的呼叫匿名到APIM。 validate-jwt策略仍然可以用于要求请求中包含某些令牌。
有多种方法可以确保仅通过APIM可以访问您的后端:
答案 1 :(得分:0)
我在最近的项目中使用了以下方法,并使用jwt验证来验证策略中的oauth2令牌 遵循Microsoft文档链接https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad。
这里是步骤的快速概述: