如何限制生产API';来自外部用户的信息?

如何限制生产API';来自外部用户的信息?,api,security,azure,azure-web-app-service,Api,Security,Azure,Azure Web App Service,我使用应用程序服务将API应用程序发布到Azure中。但是我想限制外部用户使用我的API 我知道Azure中有一个API管理概念,但这是一个大概念。还有一个ipSecurity特性来限制指定的IP地址,但我不希望这样 所以我想要一种简单的方法来限制外部用户访问我的生产API 您能告诉我实现上述功能的最佳企业实践是什么吗?根据您的应用程序是B2B还是B2C应用程序,Azure提供了两种身份即服务: 为了防止未经授权访问您的API,您应该使用Azure AD保护API,并强制用户在访问API之

我使用应用程序服务将API应用程序发布到Azure中。但是我想限制外部用户使用我的API

我知道Azure中有一个API管理概念,但这是一个大概念。还有一个ipSecurity特性来限制指定的IP地址,但我不希望这样

所以我想要一种简单的方法来限制外部用户访问我的生产API


您能告诉我实现上述功能的最佳企业实践是什么吗?

根据您的应用程序是B2B还是B2C应用程序,Azure提供了两种身份即服务:


为了防止未经授权访问您的API,您应该使用Azure AD保护API,并强制用户在访问API之前进行身份验证/授权

您需要在Azure AD中为此创建一个应用程序。为了防止外部用户访问您的API,您应该使此应用程序成为
单租户
。这将确保只有创建应用程序的Azure AD的用户才能访问该应用程序


请参阅此链接了解有关如何完成此操作的更多详细信息:。

您可以基于IP进行限制。“应用内服务”转到“属性”以查找出站IP地址,用于您希望能够连接到API的那些应用。然后在API的web.config中,拒绝除这些之外的所有内容。除了身份验证之外,还可以使用此功能

<configuration>
   <system.webServer>
      <security>
        <ipSecurity allowUnlisted="true">    <!-- this line blocks all apart  those listed below -->                
           <clear/> 
           <add ipAddress="xx.xx.xx.xx"/>   <!-- block an IP  -->                
           <add ipAddress="90.100.100.23" subnetMask="255.255.255.0"/>   <!--block network 90.100.100.0 to 90.100.100.0-->               
        </ipSecurity>
      </security>
...
...
   </system.webServer>
</configuration>

...
...

你能解释一下你所说的外部环境是什么意思吗?你的意思是它应该被限制在某些用户或IP地址或其他什么?请使用这些详细信息更新您的问题。谢谢,但我不想在web.config文件中使用ipSecurity元素,因为我的应用程序是B2C。很抱歉,这没有意义。您的问题是避免“外部用户不能从外部环境访问我的API”,但您希望它是B2C。根据定义,B2C中的C意味着“外部环境”,所以你的问题是“我想验证我的api用户,我该怎么做?”。这很模糊,我的问题是,当任何外部用户知道我的API URL时,他/她试图访问我的API URL,当时我不想让他/她访问我的API,即使他/她知道我的API URL。是的,身份验证和授权。这是非常基本的东西。你知道登录是什么意思吗?谢谢,上面的链接包含API管理功能,但我现在不想实现API管理,因为它的概念太大,我没有时间学习和开发完整的API管理结构。请告诉我实现上述功能的最简单方法。请查看此链接是否有帮助:。