如何解决可用性测试:是否可以在启用 AAD 的情况下对端点进行 HTTP ping?
为了更好地理解并在我们的项目中实施它,我创建了一个带有 3 个端点的功能应用(this gist 中的源代码)并配置了 6 个可用性测试强>(类似Ping 测试):
oktest: https://myfuncname.azurewebsites.net/apI/Ok (parse dependent requests = false)
oktest2: https://myfuncname.azurewebsites.net/apI/Ok (parse dependent requests = true)
badtest: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = false)
badtest2: https://myfuncname.azurewebsites.net/api/bad (parse dependent requests = true)
errtest: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = false)
errtest2: https://myfuncname.azurewebsites.net/api/err (parse dependent requests = true)
函数应用使用客户端 ID 和允许的令牌受众配置了 AAD。
/ok returns 200 content OK
/bad returns 400 content BAD
/err returns 500
使用 Postman(使用有效的Bearer Token)测试 Azure 端点会产生与本地托管环境相同的预期结果。
我预计 oktest
和 oktest2
的成功率为 100%,其他测试的失败率为 100%。
我得到了这些结果:
oktest: success 21 fail 0
oktest2: success 17 fail 0
badtest: success 20 fail 2
badtest2: success 17 fail 0
errtest: success 21 fail 1
errtest2: success 17 fail 0
然后我将身份验证设置为允许匿名,经过一段时间后我得到了这些结果:
oktest: success 31 fail 0
oktest2: success 36 fail 0
badtest: success 29 fail 9
badtest2: success 25 fail 8
errtest: success 28 fail 8
errtest2: success 24 fail 7
很明显,首次身份验证设置阻止了端点HTTP ping。这是否可以保留 AAD 身份验证,或者我们必须重新考虑我们的网络架构?
任何帮助或建议将不胜感激!
问候, 贾科莫 S. S.
解决方法
我想我已经了解情况了。
启用允许匿名后,HTTP-ping 在“badtest”中正确失败:
启用AAD 身份验证后,HTTP-ping 会返回成功,导致 可用性测试能够进行身份验证,然后返回 200 OK(成功的身份验证):
查看这些细节可以解释任何一个结果。
我的结论:可用性测试更倾向于测试网页而不是 REST 服务。
可以在 MS 文档中找到确认。
如果有人要补充的话,我很感兴趣!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。