Rest Azure api管理和Web应用程序

Rest Azure api管理和Web应用程序,rest,azure,web,azure-web-app-service,azure-api-management,Rest,Azure,Web,Azure Web App Service,Azure Api Management,我在API管理上托管了我的REST服务,并使用Azure Web app服务中的REST服务,该服务只包含HTML页面、javascript文件和CSS文件 我想知道如何限制仅从web应用程序访问API管理的其余端点,而不使用Azure AD和OAuth设置。客户端应用程序源按设计以明文形式提供给任何使用它的人。任何用户都可以在浏览器中打开开发人员工具,查看您为使应用程序正常工作而编写的代码。因此,即使你用一些秘密保护你的REST API,并在应用程序代码中使用它与该REST API对话,世界上

我在API管理上托管了我的REST服务,并使用Azure Web app服务中的REST服务,该服务只包含HTML页面、javascript文件和CSS文件


我想知道如何限制仅从web应用程序访问API管理的其余端点,而不使用Azure AD和OAuth设置。

客户端应用程序源按设计以明文形式提供给任何使用它的人。任何用户都可以在浏览器中打开开发人员工具,查看您为使应用程序正常工作而编写的代码。因此,即使你用一些秘密保护你的REST API,并在应用程序代码中使用它与该REST API对话,世界上的任何人都将能够获取该应用程序的秘密并直接调用你的REST API,而你将无法区分他们的调用与你的应用程序的调用

OAuth和AAD在一定程度上可以工作,但即使它们允许您对用户进行身份验证,而不是对应用程序进行身份验证。同一个用户可以很容易地跟踪您的应用程序对RESTAPI的调用,并在任何其他应用程序中重现这些调用,而您必须再次找到解决方法


我认为最好的办法是阻止某个用户以任何方式(即使是通过IP地址)对其进行标识的调用。

您可以使用从web应用到api管理的证书身份验证。您可以在api管理策略中验证web应用程序上的ssl证书指纹。

好吧,实现某种身份验证,比如证书身份验证?您能详细说明一下吗?我现在有点困惑,所以您有api和web应用程序?这是两个不同的东西?是的,我在API管理上有REST API端点,这些端点应该只能从我的web应用程序访问,该应用程序使用web app service托管在Azure上。您的网站应该可以从web访问吗?感谢您的快速响应。在这种情况下,我不能使用ip地址访问限制。还有其他方法吗?不,我不认为有任何方法可以做到这一点,不仅仅是在APIM产品中,而是根本没有。如果你想让你的应用程序(纯粹是客户端)与APIM对话——没关系,如果你想确保它是唯一一个可以与APIM对话的应用程序——我看不到实现这一点的方法。因为你的应用程序纯粹是客户端的,它的所有代码和它可能拥有的任何秘密都会被最终用户看到,因此所有这些秘密都会被内在地泄露。您要么通过OAuth或AAD对用户进行身份验证,要么实现web应用的服务器端。