Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
401通过APIM调用Azure服务时未经授权_Azure_Asp.net Web Api_Azure Api Management - Fatal编程技术网

401通过APIM调用Azure服务时未经授权

401通过APIM调用Azure服务时未经授权,azure,asp.net-web-api,azure-api-management,Azure,Asp.net Web Api,Azure Api Management,我在Azure中有一个web服务,不能通过其azurewebsites.net端点调用,只能通过我们公司的端点api.ourcompany.net(不是真正的域名)调用 我通过在web.config中白名单Azure APIM的IP地址来保护web服务,如下所示(未显示实际IP): 这个很好用 该服务由iPad应用程序调用。应用程序必须在授权标题中提供承载令牌。该令牌是一个OAuth/JWT令牌,通过用户在应用程序内登录到我们公司的登录页面获得 这有时效果很好,但有时会产生错误。我确信令牌在

我在Azure中有一个web服务,不能通过其
azurewebsites.net
端点调用,只能通过我们公司的端点
api.ourcompany.net
(不是真正的域名)调用

我通过在web.config中白名单Azure APIM的IP地址来保护web服务,如下所示(未显示实际IP):


这个很好用

该服务由iPad应用程序调用。应用程序必须在
授权
标题中提供
承载
令牌。该令牌是一个OAuth/JWT令牌,通过用户在应用程序内登录到我们公司的登录页面获得

这有时效果很好,但有时会产生错误。我确信令牌在所有情况下都是有效的,并且应用程序正在正确发送令牌

从故障排除中我几乎可以看出,当用户连接到公司的WiFi网络或使用带有LTE的移动设备时,令牌可以工作。当用户连接到另一个WiFi网络时,它会失败。在切换网络时,它的行为似乎也不稳定

我关闭了白名单,问题似乎已经消失了


我的问题是,在使用
承载
令牌时,如何将我的服务列入白名单或以其他方式保护我的服务?

事实证明,我们有两个APIM实例,我只将其中一个列入白名单。我的列表是从两年前部署的一个项目复制的,去年又添加了一个APIM实例。令人惊讶的是,这么小的事情怎么这么难解决

  <ipSecurity allowUnlisted="false" denyAction="Unauthorized">
    <!--This is for api.ourcompany.net -->
    <add allowed="true" ipAddress=“aaa.bbb.ccc.ddd” subnetMask="255.255.255.0"/>
  </ipSecurity>