问题标签 [www-authenticate]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python-2.7 - 如何从烧瓶 API 返回 401 身份验证?
我在烧瓶中开发了一个 API,它使用 HttpBasicAuth 对用户进行身份验证。API 在提琴手中工作得非常好,当我们传递错误的凭据时返回 401,但是当我在登录页面上使用相同的凭据时,我会从浏览器中弹出额外的信息。我真的不想看到这个要求凭据的额外弹出窗口(返回时浏览器的默认行为
401
和
WWW-Authenticate: Basic realm="Authentication Required"
)。
它在本地部署时工作正常,但在远程服务器上托管时无法正常工作。
我们如何实现 401,它不会让浏览器显示要求凭据的弹出窗口。
c# - NetworkCredential 401 未经授权的 HttpWebRequest
验证 HttpWebRequest 时遇到问题
远程服务器返回错误:(401) Unauthorized。
这是我的代码:
我试图以另一种方式设置授权:
但这也无济于事。
rest - Passport-local 和 WWW-Authenticate 标头
我正在对需要认证的简单 API 使用本地护照策略。我在所有路由之前使用中间件,它处理对应用程序的访问
- 如果用户将订阅或登录,我允许访问这些路线
- 如果用户已登录,我允许访问
- 如果用户没有登录并且他在浏览器中(例如),我重定向到 /login
- 如果用户未登录并且他在其他设备中且 Accept Header = 'application/json',则应用程序返回 401
我读过使用 401,发送带有响应的 WWW-Authenticate 标头可能会很有趣。他们建议使用 Basic Auth 或 OAuth 作为值。我应该为本地策略使用哪个值?我认为发送带有登录网址的位置也会很有趣吗?
scala - Akka-Http WWW-验证不带引号的渲染
在我的 akka-http 应用程序中,我从另一个安全服务返回了一个响应,该响应带有一个WWW-Authenticate
标头:当 akka-http 解析此标头,然后将WWW-Authenticate
值呈现为一个字符串时,其中一个参数上的引号丢失了。我是否在渲染中遗漏了某些内容,或者这可能是 akka-http 错误?
这是一个测试用例:
invalid_request
第三个断言失败,缺少引号。akka-http 应用程序发送的响应的标头中也缺少引号。
node.js - 如何在 hapijs 的 WWW-Authenticate 中设置 jwt 令牌?
我能够在成功的用户登录时创建 jwt。但是当我对其他路由使用 jwt 策略时,我在标题中得到 'WWW-Authenticate →Token' 也出现错误:
如果有人知道我如何删除此错误,请回复。
django - 具有/不具有 www 的 url 上的一致用户授权
我需要澄清一个基本概念(这里是初学者)。
在我维护的一个 Django 网络应用程序中,我注意到如果一个人通过go to 登录example.com
,他们仍然处于注销状态www.example.com
(然后可以继续创建一个克隆帐户)。
1)为什么会发生这种情况?
2)解决这个问题的标准做法是什么?即,在www
和上给出一致的体验no-www
。
如果答案与重定向一样基本,我也可以在那里使用一些指针和一个说明性示例 - 我正在使用带有 gunicorn 的 nginx 反向代理。
jmeter - 使用 Apache JMeter 3.0 获取 SSO 应用程序的 HTTP-401 错误
我正在尝试测试的单点登录 (SSO) 应用程序收到 HTTP-401(未经授权)错误。我正在传递带有以下信息的 HTTP 授权管理器:用户名/密码/域/机制(KERBEROS)。
我在“查看结果树”侦听器中收到以下响应标头:
HTTP/1.1 401 未经授权的内容长度:11785 内容类型:文本/html 日期:2017 年 11 月 9 日星期四 21:55:38 GMT p3p:CP="NON CUR OTPi OUR NOR UNI" www-authenticate:协商缓存控制: no-cache pragma: no-cache Set-Cookie: PD-S-SESSION-ID=0_7Yn3C....Ra4+IsxI=; 路径=/; 安全的; HttpOnly
有人可以帮忙吗?
谢谢, 克鲁纳尔
c# - C# HttpListener 多种身份验证方案和 Chrome
好的,这是一个很长的问题,但我认为这是值得的。我们有什么:
一个示例虚拟 C# 控制台应用程序,它启动自托管 owin ASP.Net WebAPI 服务(
/li>Microsoft.AspNet.WebApi.OwinSelfHost
NuGet 包):OWIN启动类:
/li>具有两个公共方法的示例 WebAPI 控制器:
/li>
现在,当我们运行我们的项目并将 chrome 指向http://localhost:8080/sample/public时,会调用此请求:
但是当我们访问http://localhost:8080/sample/protected时,我们会看到:
这几乎是“预期的”,除了一件事。我希望当我的浏览器收到带有www-authenticate
标头的 401 HTTP 响应时,他将尝试使用指定的身份验证重复相同的请求(如果请求中没有任何其他 Authorization 标头)。但他不这样做,出于某种原因:(
为了让事情更有趣,我们可以看到实际上AuthenticationSchemes.IntegratedWindowsAuthentication
是这样AuthenticationSchemes.Negotiate | AuthenticationSchemes.Ntlm
,当我删除其中一个时,事情开始按预期工作!例如:在我们的 Startup 类中替换IntegratedWindowsAuthentication
为Negotiate
并将您的 brouser 带到http://localhost:8080/sample/protected
通常,我们的服务器首先响应 401 HTTP 状态并设置标头www-authenticate: Negotiate
,然后浏览器使用附加的授权标头重复请求。如果我们替换IntegratedWindowsAuthentication
为Ntlm
.
还有一个让事情更清楚的例子。如果我们AuthenticationSchemes.Anonymous
只删除并离开,AuthenticationSchemes.IntegratedWindowsAuthentication
我们会注意到两件事:
/sample/public
端点不再可用于匿名请求(如预期的那样)/sample/protected
端点现在可以正常工作(!)
如果我们查看第一个 401 服务器响应,我们会注意到有两个 www-authenticate 标头而不是一个(和以前一样):
所以,我的问题是:将多个身份验证方案放在单个www-authenticate
标头中是否“可以”?如果“是的,没关系”,为什么我的 chrome 不处理这种情况?如果“不!完全错了!”,为什么HttpListener
要这样做,我该如何绕过呢?请帮忙!
c# - 如何在 .NET 中将 www-authenticate 标头添加到 HttpListenerResponse
我有一个带有自定义自托管服务器(没有 IIS,没有 WCF)的自定义 Web 堆栈。它使用HttpListener来获取由模块管道处理的HttpListenerContext 。所以,我在处理模块中使用HttpListenerRequest和HttpListenerRespose 。
现在我需要在某些特定情况下向客户端返回401 Unauthorized 。响应还应包括带有特定挑战的WWW-Authenticate标头。所以,我可以设置HttpListenerRespose = 401的StatusCode并且它工作正常。但是,当我尝试将Www-Authenticate标头添加到响应中时 - 我得到一个异常:“必须使用适当的属性或方法修改 'WWW-Authenticate' 标头。参数名称:名称”。
如我所见, WWW-Authenticate 标头受到响应保护。MSDN 文档说我不能“使用 Headers 属性设置 Content-Length、Keep-Alive、Transfer-Encoding 或 WWW-Authenticate 标头”。其中两个有 KeepAlive 和 ContentLenght64 属性,但是“您不能手动设置 Transfer-Encoding 或 WWW-Authenticate 标头”
那么,什么是可能的解决方案?我应该如何正确返回带有特定 WWW-Authenticate 标头的 401 响应?
tfs - TFS IIS www-authenticate:基本标头
我在我的 Windows 2012 服务器 IIS 8 上使用 TFS 2017.3 版本。
当我尝试使用使用 libgit2sharp 的第 3 方工具向我的 TFS 服务器(使用 Oracle 源代码控制,它是 Oracle DB 源代码控制的Red-Gate工具)发送 HTTP 请求时。
使用wireshark,我发现我得到了3个www-authenticate
标题(在这个顺序内):
www-authenticate: Bearer
www-authenticate: Basic <realm>
www-authenticate: NTLM
我只允许在我的 IIS 上进行 Windows 身份验证(使用 NTLM 提供程序)。
这对我来说很成问题,因为我需要不同的顺序。我想使用 Windows 身份验证,但是当NTLM 身份验证不成功www-authenticate: Basic
之前出现时(就像在这种情况下一样)。www-authenticate: NTLM
这很奇怪,因为我在 IIS 上禁用了基本身份验证,但它仍然www-authenticate: Basic
存在于 HTTP 响应 HEADERS 中。
当使用 Windows 身份验证(NTLM 提供程序)启用基本身份验证时,突然www-authenticate: NTLM
出现在www-authenticate: Basic
标题之前(这非常奇怪,因为当禁用基本身份验证时,它的行为方式不同)。
任何建议和提示我应该做什么以及如何管理www-authenticate
IIS 或 TFS 上的标头顺序?
www-authenticate: Basic
也许有人知道禁用基本身份验证时如何删除标头?
是 IIS 问题还是 TFS 与 IIS 无关?