首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用HTTP身份验证在服务器上使用基本身份验证的测试API

使用HTTP身份验证在服务器上使用基本身份验证的测试API
EN

Stack Overflow用户
提问于 2014-12-31 15:35:01
回答 1查看 1.4K关注 0票数 0

我正在为网络项目编写API。为了识别API用户,使用了基本的身份验证。为了测试API调用,我可以使用curl命令行工具并编写如下内容:

代码语言:javascript
运行
复制
curl -H "Authorization: Basic Tm9TY1hETjRGNjIwZ1FwcTZOMENjMHczSjJDTjFlcnM6VmhWM21kUHF1MkIyMjFDaWRKVE4odyYmbyRpTEBsM0U=" http://example.com/api/function

在测试服务器上,我们有HTTP身份验证。我已经上传了带有API功能的脚本,现在我不明白如何在测试服务器上调用API函数。我如何为HTTP身份验证提供用户名和密码,然后为API提供用户名和密码?

EN

回答 1

Stack Overflow用户

发布于 2015-01-05 23:37:26

基本上,您试图使用相同的方法在一行中执行两个身份验证。这不是这个认证协议所涵盖的场景--简而言之,您不能使用标准设置。

协议不能满足这种情况的原因是头冲突:第一个挑战将使用WWW-Authenticate / Authorization头对,第二个挑战将在单个请求中使用。

允许双重身份验证的一种方法需要更改(可能不允许这样做):

  • 您可以让第一个身份验证进程接受两对标头,对第一对头进行身份验证,然后重写第二个身份验证进程的标头。如果环境中不包含安全敏感数据(例如客户数据),这对于测试环境应该是很好的。否则绝对是个坏主意。
  • 您可以将第一个身份验证过程替换为不同的协议。例如,您可以停用进程,并需要一个SSH / VPN隧道来访问该机器。然后,可以对所有HTTP请求进行隧道化,它们只需要针对第二个进程进行身份验证。

最后一件事。我不知道这是行不通的:

代码语言:javascript
运行
复制
curl --user "test:password" http://stan:uberflow@myserver.com

--user和URL中的凭据都使用基本身份验证,因此它们是相互执行的。它可能取决于实现;在我的环境中,--user优先。

1:我谨慎地避免使用安全协议,因为是不“非常”安全,它在HTTPS上提供了很差的保护。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27723146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档