我在Azure中有一个Web服务,不能通过其azurewebsites.net
端点调用,而只能通过我们公司的端点api.ourcompany.net
(不是真实的域名)来调用。
我通过在web.config中将Azure APIM的IP地址列入白名单来保护Web服务,就像这样(实际IP未显示):
<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>
这很好用。
该服务由iPad应用程序调用。该应用必须在Bearer
标头中提供Authorization
令牌。该令牌是OAuth / JWT令牌,用户通过该应用程序登录我们公司的登录页面获得。
这有时很好,并且在其他时间产生401 Unauthorized。我确信令牌在所有情况下都有效,而且应用程序正在正确发送令牌。
尽管我从故障排除中可以看出,当用户连接到公司WiFi网络或使用带有LTE的移动设备时,令牌仍可正常工作。当用户连接到另一个WiFi网络时,它会失败。在切换网络时,它似乎也表现得不正常
我关闭了白名单,问题似乎消失了。
我的问题是,在使用Bearer
令牌时,如何将我的服务列入白名单或以其他方式保护?
答案 0 :(得分:0)
事实证明我们有两个APIM实例,我只将其中一个列入白名单。我所拥有的清单是从2年前部署的项目中复制而来的,去年增加了另一个APIM实例。令人惊讶的是,如此小的事情如此难以排除故障。