问题标签 [digest-authentication]

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 回答
1092 浏览

ruby - 使用 net-http-digest_auth 的未知算法 MD5

我正在尝试对服务器进行一些摘要授权,然后使用 nokogiri 解析生成的 HTML。我正在使用 net-http-digest_auth gem (https://github.com/drbrain/net-http-digest_auth) 进行 url 连接。一切都很好,直到我启动了 digest_auth 代码(第 20 行);它抛出一个“未知算法“MD5”错误'..

来自控制台的完整错误消息: ~/.rvm/gems/ruby-1.9.3-p194@rails32/gems/net-http-digest_auth-1.2.1/lib/net/http/digest_auth.rb:105:in 'auth_header': unknown algorithm ""MD5"" (Net::HTTP::DigestAuth::Error) from ./server_connection.rb:20:in '<main>'

第 20 行是 auth 行: auth = digest_auth.auth_header uri, res['www-authenticate'], 'GET'

这是我的完整代码(几乎完全逐字逐句地来自 github 链接上使用的示例代码):

通过 Chrome 的开发工具更新了这个问题以包含请求标头:

0 投票
1 回答
943 浏览

mobile - 移动设备的最佳实践身份验证

我开发了一个网站,要求对某些部分进行用户注册和身份验证。现在我正在寻找一种最佳实践来从连接到服务器的移动应用程序中实现注册和身份验证。这个应用程序将使用 json 与服务器进行通信。我在考虑 HTTP 摘要,但我想听听其他人的意见。

只是为了记录,服务器是用 Grails (groovy) 编写的,并使用 spring security 进行身份验证。

0 投票
1 回答
6805 浏览

javascript - 使用 Javascript XMLHttpRequest 进行摘要式身份验证

我正在尝试使用使用摘要式身份验证的 API 进行身份验证。

我正在向服务器发送 POST 请求,但返回的响应是HTTP 401 Denied. 这是WWW-Authenticate来自服务器的挑战标头:

(包含用于格式化的反斜杠,不存在于响应标头中)

使用此标头中的参数,我应用摘要身份验证算法并构建质询回复标头:

发送到服务器的标头:

但这不起作用,我仍然收到 HTTP 401 Denied。服务器摘要认证已经过测试。

0 投票
2 回答
2236 浏览

google-apps-script - 使用 UrlFetch 使用 Google Apps 脚本进行摘要式身份验证

我正在尝试使用 Google Apps 脚本的 UrlFetch 访问受 Digest Authentication 保护的 URL。

我设法使用基本身份验证访问 URL:

我设法根据文档中的示例使用 OAuth 进行访问。

现在的问题是我需要与正在实施 Digest 的站点具有相同的功能。我可以使用以下 curl 访问它:

更新

如果我尝试简单地打电话

由于 Digest Authentication 的 Challenge-Response 机制,它不起作用。

我可以使用任何实现此类功能的 JavaScript 库来使用 UrlFetch 吗?还是直接通过 UrlFetch 本身?

0 投票
1 回答
797 浏览

ruby - 对单个路由使用 HTTP Digest 身份验证

我想在我的模块化 Sinatra 应用程序中对特定路由使用 HTTP Digest 身份验证。

sinatra recipes 网站中列出的示例仅描述了如何为整个应用程序启用摘要身份验证。为使其适用于特定路由而提出的解决方案是创建两个单独的应用程序,(一个具有摘要身份验证,另一个没有)将受保护和不受保护的路由放置在各自的应用程序中。

这将需要以下内容:

这对我来说似乎有点矫枉过正。

有没有一种方法可以保护模块化 sinatra 应用程序中的单个路由,而无需创建全新的应用程序?

常见问题解答中有一个示例,其中引用了创建 Rack::Auth::Basic::Request 的实例并传入环境,但是使用摘要身份验证执行此类操作会大不相同,并且更像是手动身份验证过程。

这是基本的身份验证示例:

有人对如何做到这一点有想法吗?

0 投票
1 回答
128 浏览

java - java- which way is easy to implement yet secure, for end user authentication in a web app/web service

I am going to create an application which will have a regular web interface where a user can sign up, access some resources.

I am reading up on different means of authentication- Basic authentication, digest authentication, openid , oauth, oauth2...

What I want to know is, if I implement basic or digest authentication, then is it secure? Because in many sites that I visited, the talk was about oauth and how secure it is. Open ID was also mentioned in some of the sites I visited...

The current usage scenario for which I am looking at end user authentication is for a web interface in a web app. Another usage scenario is for a JAX-RS based web service. Which means of authentication is secure for these 2 usage scenarios? Ideally I want to use the same means of auth in both scenarios...

0 投票
1 回答
1461 浏览

jquery - 使用带有摘要身份验证、jquery ajax 调用的 RestFul PHP Web 服务

我想知道如何使用摘要身份验证调用 RestFul PHP webservice ?

当我创建我的基本请求时,服务器需要身份验证,但我不知道如何发送用户名和密码。我需要这个用于phonegap应用程序。

});

谢谢,

0 投票
1 回答
2026 浏览

javascript - 客户端 JavaScript Facebook OAuth2 实现?

RFC 2617指定了HTTP Basic 和 Digest Auth标准,其工作原理在Wikipedia 的“Example with explanation”小节中进行了总结:

  • 客户端请求一个需要身份验证但不提供用户名和密码的页面。通常这是因为用户只需输入地址或点击页面链接。
  • 服务器以 401“客户端错误”响应代码进行响应,提供身份验证领域和一个随机生成的、一次性的值,称为 nonce。
  • 此时,浏览器将向用户显示身份验证领域(通常是对正在访问的计算机或系统的描述)并提示输入用户名和密码。用户此时可以决定取消。
  • 提供用户名和密码后,客户端会重新发送相同的请求,但会添加包含响应代码的身份验证标头。
  • 在此示例中,服务器接受身份验证并返回页面。如果用户名无效和/或密码不正确,服务器可能会返回“401”响应码,客户端会再次提示用户。

注意:客户端可能已经拥有所需的用户名和密码,而无需提示用户,例如,如果它们先前已由 Web 浏览器存储。

我正在使用Facebook实施的OAuth2 草案标准执行登录。

给定一个具有公开的公共 API(例如:JSONRPC 或 REST)的服务器,如何编写客户端 JavaScript 前端以包含前面提到的 RFC 2617 示例中的那种功能,但对于 Facebook 身份验证?

0 投票
2 回答
143 浏览

passwords - 我应该如何存储密码?

我有一个需要登录的系统,但我为谁构建它是要求在登录期间传输密码非常安全(即使使用 SSL)。所以我使用摘要访问身份验证的变体来传输登录请求。我现在遇到的唯一问题是如何将密码存储在数据库中(最好是在安全的加盐散列中),以便它们可以与摘要请求一起使用,并且密码在任何时候都不是非散列格式,除了在客户端浏览器几秒钟。

那么,简而言之,我怎样才能安全地存储密码但允许摘要(与数据库的盐不同且不断变化的随机数)进行身份验证?

0 投票
1 回答
294 浏览

oauth-2.0 - 我应该在摘要领域内协商 OAuth2 身份验证吗?

我可能混淆了概念,但我一直在web2py Google Group上讨论​​他们应该实现摘要身份验证。

使用 OAuth2,我认为 auth-key 应该被散列并且只在身份验证领域内发送。

如果有所不同,我使用 JavaScript 客户端,接口使用 JSONRPC 服务器端公开,OAuth2 使用 Facebook 完成。

我应该在摘要领域内协商 OAuth2 吗?