401通过APIM调用Azure服务时未经授权
我在Azure中有一个web服务,不能通过其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令牌,通过用户在应用程序内登录到我们公司的登录页面获得 这有时效果很好,但有时会产生错误。我确信令牌在
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>