问题标签 [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.

0 投票
2 回答
12453 浏览

python-2.7 - 如何从烧瓶 API 返回 401 身份验证?

我在烧瓶中开发了一个 API,它使用 HttpBasicAuth 对用户进行身份验证。API 在提琴手中工作得非常好,当我们传递错误的凭据时返回 401,但是当我在登录页面上使用相同的凭据时,我会从浏览器中弹出额外的信息。我真的不想看到这个要求凭据的额外弹出窗口(返回时浏览器的默认行为

401

WWW-Authenticate: Basic realm="Authentication Required"

)。

它在本地部署时工作正常,但在远程服务器上托管时无法正常工作。

我们如何实现 401,它不会让浏览器显示要求凭据的弹出窗口。

0 投票
1 回答
1247 浏览

c# - NetworkCredential 401 未经授权的 HttpWebRequest

验证 HttpWebRequest 时遇到问题

远程服务器返回错误:(401) Unauthorized。

这是我的代码:

我试图以另一种方式设置授权:

但这也无济于事。

0 投票
0 回答
359 浏览

rest - Passport-local 和 WWW-Authenticate 标头

我正在对需要认证的简单 API 使用本地护照策略。我在所有路由之前使用中间件,它处理对应用程序的访问

  1. 如果用户将订阅或登录,我允许访问这些路线
  2. 如果用户已登录,我允许访问
  3. 如果用户没有登录并且他在浏览器中(例如),我重定向到 /login
  4. 如果用户未登录并且他在其他设备中且 Accept Header = 'application/json',则应用程序返回 401

我读过使用 401,发送带有响应的 WWW-Authenticate 标头可能会很有趣。他们建议使用 Basic Auth 或 OAuth 作为值。我应该为本地策略使用哪个值?我认为发送带有登录网址的位置也会很有趣吗?

0 投票
0 回答
329 浏览

scala - Akka-Http WWW-验证不带引号的渲染

在我的 akka-http 应用程序中,我从另一个安全服务返回了一个响应,该响应带有一个WWW-Authenticate标头:当 akka-http 解析此标头,然后将WWW-Authenticate值呈现为一个字符串时,其中一个参数上的引号丢失了。我是否在渲染中遗漏了某些内容,或者这可能是 akka-http 错误?

这是一个测试用例:

invalid_request第三个断言失败,缺少引号。akka-http 应用程序发送的响应的标头中也缺少引号。

0 投票
0 回答
423 浏览

node.js - 如何在 hapijs 的 WWW-Authenticate 中设置 jwt 令牌?

我能够在成功的用户登录时创建 jwt。但是当我对其他路由使用 jwt 策略时,我在标题中得到 'WWW-Authenticate →Token' 也出现错误:

如果有人知道我如何删除此错误,请回复。

0 投票
1 回答
33 浏览

django - 具有/不具有 www 的 url 上的一致用户授权

我需要澄清一个基本概念(这里是初学者)。

在我维护的一个 Django 网络应用程序中,我注意到如果一个人通过go to 登录example.com他们仍然处于注销状态www.example.com(然后可以继续创建一个克隆帐户)。

1)为什么会发生这种情况?

2)解决这个问题的标准做法是什么?即,在www和上给出一致的体验no-www

如果答案与重定向一样基本,我也可以在那里使用一些指针和一个说明性示例 - 我正在使用带有 gunicorn 的 nginx 反向代理。

0 投票
1 回答
1430 浏览

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

有人可以帮忙吗?

谢谢, 克鲁纳尔

0 投票
1 回答
1998 浏览

c# - C# HttpListener 多种身份验证方案和 Chrome

好的,这是一个很长的问题,但我认为这是值得的。我们有什么:

  1. 一个示例虚拟 C# 控制台应用程序,它启动自托管 owin ASP.Net WebAPI 服务(Microsoft.AspNet.WebApi.OwinSelfHostNuGet 包):

    /li>
  2. OWIN启动类:

    /li>
  3. 具有两个公共方法的示例 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 类中替换IntegratedWindowsAuthenticationNegotiate并将您的 brouser 带到http://localhost:8080/sample/protected

通常,我们的服务器首先响应 401 HTTP 状态并设置标头www-authenticate: Negotiate,然后浏览器使用附加的授权标头重复请求。如果我们替换IntegratedWindowsAuthenticationNtlm.

还有一个让事情更清楚的例子。如果我们AuthenticationSchemes.Anonymous只删除并离开,AuthenticationSchemes.IntegratedWindowsAuthentication我们会注意到两件事:

  1. /sample/public端点不再可用于匿名请求(如预期的那样)
  2. /sample/protected端点现在可以正常工作(!)

如果我们查看第一个 401 服务器响应,我们会注意到有两个 www-authenticate 标头而不是一个(和以前一样):

所以,我的问题是:将多个身份验证方案放在单个www-authenticate标头中是否“可以”?如果“是的,没关系”,为什么我的 chrome 不处理这种情况?如果“不!完全错了!”,为什么HttpListener要这样做,我该如何绕过呢?请帮忙!

0 投票
1 回答
906 浏览

c# - 如何在 .NET 中将 www-authenticate 标头添加到 HttpListenerResponse

我有一个带有自定义自托管服务器(没有 IIS,没有 WCF)的自定义 Web 堆栈。它使用HttpListener来获取由模块管道处理的HttpListenerContext 。所以,我在处理模块中使用HttpListenerRequestHttpListenerRespose 。

现在我需要在某些特定情况下向客户端返回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 响应?

0 投票
0 回答
657 浏览

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标题(在这个顺序内):

  1. www-authenticate: Bearer
  2. www-authenticate: Basic <realm>
  3. 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-authenticateIIS 或 TFS 上的标头顺序?

www-authenticate: Basic也许有人知道禁用基本身份验证时如何删除标头?

是 IIS 问题还是 TFS 与 IIS 无关?