问题标签 [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 投票
1 回答
672 浏览

authentication - 使用 Spring Security 在同一个 URI 映射上同时支持 Basic 和 Digest 身份验证

我有一个用于保护 RESTful 服务的用例,但我不确定它是否可以实现 - 基本上我希望同时设置 Basic 和 Digest 身份验证。在链中设置两个过滤器应该相对容易,但我不确定如何处理入口点 - 据我所知,两种类型的身份验证有 2 个入口点,但它应该的方式如果授权标头带有基本或摘要身份验证逻辑,则可能的工作是调用正确的入口点。

我知道在 Spring 3.1 中你可以有多个元素,但我认为这在这种情况下没有帮助,因为这两个身份验证选项应该在同一个映射上得到支持,并且映射似乎是 2元素可以区分。

我也知道这个问题: Spring Security 3.x: How can I enable BASIC and DIGEST authentication? 但这似乎并没有解决多个入口点的问题。

有没有我忽略的东西,或者没有完全理解的东西?任何帮助表示赞赏。谢谢。欧根。

0 投票
2 回答
2112 浏览

tomcat - 使用 authentication="DIGEST-MD5" 为 LDAP 身份验证配置 Tomcat 6.0

简单认证:

使用 LDAP 浏览器时,我可以使用纯文本密码登录公司的 LDAP 服务器,方法是提供:CN=username,OU=users,DC=my,DC=company,DC=com。如果我将此字符串复制粘贴到 Tomcat 的 server.xml connectionName 标记,并使用简单的身份验证(使用wireshark 可以看到纯文本密码),一切正常。

加密密码:

在 server.xml JNDI 领域中,我添加了以下内容

现在,Tomcat 无法绑定到 LDAP。

使用 LDAP 浏览器,我必须提供以下形式的凭据:域/用户,然后我可以使用 DIGEST-MD5 绑定到 LDAP。

是否有一种特殊的方式在 server.xml 文件中指定 connectionName 以便 Tomcat 可以成功执行绑定?

0 投票
0 回答
319 浏览

security - 从服务器获取挑战后的 RESTFul 身份验证

我对如何向服务器提供挑战以进行身份​​验证感到困惑。它是一个 RESTFul 架构。从我的服务器,我返回这个:

现在在客户端上,如何向服务器提供包含用户名和密码的挑战?只需告诉我需要使用从服务器获得的值执行的过程即可。

0 投票
2 回答
1269 浏览

selenium - 如何将 Selenium 与摘要身份验证一起使用?

我正在寻找一种将 Selenium 与 Digest Authentication 结合使用的好方法(对于 flex UI,尽管我认为如果我不能进行身份验证,这不会有什么不同)。我想避免平台依赖性,例如使用 AutoIT 来驱动浏览器弹出窗口(因为跨平台测试是使用 Selenium 的动力),尽管如果有一个很好的跨平台库来做这样的事情会起作用美好的。

我在想也许有一种方法可以使用单独的 http 客户端创建会话,然后将会话凭据传递给浏览器,但我不确定如何将会话 ID 注入浏览器请求。这只是我的一个想法,不确定它是否可行。

0 投票
1 回答
3341 浏览

java - Apache HttpClient 4.x 在上传较大文件时表现奇怪?

我正在使用java(和scala)开发和测试一个简单的客户端-服务器应用程序。

服务器基于com.sun.net.httpserver.HttpServer并允许使用 POST 和 PUT 操作通过基本 RESTful 接口上传文件。上传操作使用我们自己实现的Digest 身份验证进行限制,在浏览器、curl 和Apache HttpClient.

上传客户端通过http包装Apache HttpClient 4.1.2并执行 PUT 操作以上传文件实体。文件的内容类型application/xml在标题中指定,一次只上传一个文件。

上传不同大小的文件时,可能会观察到奇怪的行为:

  • 大小小于或等于 1.076.006 字节的文件上传 成功
  • 大小大于或等于 1.122.158 字节的文件 失败并带有java.net.SocketException: Broken pipe.

确切的临界大小未知,因为我手动创建了不同大小的文件以接近最大工作大小

管道损坏的原因是,客户端以某种方式忽略了该大小的www-authenticate-response上传文件,正如服务器日志所记录的那样。“忽略”意味着它只发送多 (4) 条根本不包含身份验证标头的消息。但是较小的文件www-authenticate运行良好,并且客户端在-response之后立即正确地发送具有正确挑战-响应的身份验证请求。

上传适用于各种大小的文件,所以没有问题。

所以在这一点上,人们可以说:“你的客户端有一些错误。” 好的,我希望如此,但我也尝试了一个开源的 java RESTclient(也包装了 apache httpclient),它具有完全相同的行为!

我们在互联网上使用此客户端进行了尝试,它也与描述的相同。所以现在,我只是希望我错过了设置Apache HttpClient导致这种错误行为的重要内容,并且开源 RESTclient 的开发人员也错过了它......任何想法都会很棒!

0 投票
1 回答
1686 浏览

html - 摘要式身份验证的“实体主体”是什么?

我正在集成摘要身份验证并在下面的文档中看到“实体主体”(用于 auth-int 身份验证)?这是 HTML 标题和正文吗?还是只是 HTML 标头部分?

http://freeradius.org/rfc/rfc4590.html http://tools.ietf.org/html/rfc2069

0 投票
1 回答
107 浏览

digest-authentication - 使用 CustomAuthenticator 进行 Caucho Resin Digest Authentication,有人请赐教

好的,经过一番试验后,我发现树脂正在调用我的 AbstractAuthenticator 实现“身份验证”方法,该方法采用 HttpDigestCredentials 对象而不是 DigestCredentials (仍然不知道何时调用它们中的每一个)问题是 HttpDigestCredentials 没有有一个 getDigest() 方法,而是有一个 getResponse() 方法,该方法不返回哈希值或至少不返回可比较的哈希值。

创建我自己的 [[user:realmassword] [nonce] [method:uri]] 哈希后,哈希非常不同,实际上我认为 getResponse() 不会返回摘要,但可能是服务器对浏览器的响应?

无论如何,这是我的调试日志:

如您所见,假定的客户端 nonce 与服务器生成的 nonce 非常不同,实际上客户端 nonce 看起来根本不像 MD5 哈希。

请问以前有人做过吗?HttpDigestCredentials 中是否缺少某些内容?我知道摘要几乎没有使用。

拜托,我知道 SSL,但我还没有 SSL 证书,所以不要告诉我“你为什么不使用 SSL”。;)

更新:

不确定这样做是否正确,但正如我之前读到的,Resin 使用 base64 格式的哈希值,所以我使用 apache commons-codec-1.6 来使用 encodeBase64String() 方法,现在哈希值看起来很相似,但它们不一样。

我都试过了passwordDigest.getPasswordDigest(a1+':'+nonce+':'+a2); passwordDigest.getPasswordDigest(a1+':'+nonce+':'+ncount+':'+cnonce+':'+qop+':'+a2);

并且它们都没有给出与 HttpDigestCredentials 中的哈希值相同的哈希值。

0 投票
1 回答
359 浏览

node.js - 使用 Zombie.js 进行摘要式身份验证

我想使用 Zombie.js 连接到使用 Digest Auth 的站点。

我可以从运行时访问 http 请求标头吗?

还是我需要修补 Zombie 以添加摘要身份验证支持?

0 投票
0 回答
332 浏览

java - 有没有办法在 GlassFish 和 HTTP 摘要身份验证中使用散列存储密码?

我想在 HTTP 摘要身份验证中,存储的散列密码需要像“MD5(用户名 + 领域 + 密码)”。

GlassFish 的 JDBCRealm 需要单独存储密码。所以,它必须是明文。

这是对的吗?或者有没有办法使用存储的哈希密码?

0 投票
3 回答
4683 浏览

ruby-on-rails-3.1 - Ruby on Rails 将盐传递给 Digest::SHA512

这个(PHP)在Rails中的等价物是什么:

我做到了这一点:

但是不知道如何将站点盐纳入方程式,我看到的所有在线示例都没有将盐传递给 hexdigest 方法。当我尝试过它时,我会因为参数太多而出错。

这个带有冒号的符号(我在某处看到):

不会产生相同的哈希。

谢谢

编辑 我偶然发现了这个看起来更接近我需要的东西(对不起,我对整个散列很陌生):

但它仍然会产生与存储在数据库中的哈希值不同的哈希值。