问题标签 [sasl-scram]
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.
authentication - XMPP SASL SCRAM-SHA1 身份验证
最近,按照以下两个网站上的说明,我能够在 Swift IOS 中对 XMPP 流进行 MD5 身份验证(我使用 Apple 的 CommonCrypto C 库的 CC-MD5 函数进行实际散列):
http://wiki.xmpp.org/web/SASLandDIGEST-MD5
http://www.deusty.com/2007/09/example-please.html
我正在寻找有关如何使其他散列 SASL 身份验证方案正常工作的类似解释,尤其是 SCRAM-SHA1。我找到了官方的RFC5802文档,但我在理解它时遇到了很多麻烦(它也不特定于 XMPP)。我将不胜感激一个更简单的解释或一些特定于 XMPP 身份验证的简单可读代码(C、PHP、C++、Javascript、Java),除了实际散列之外不使用任何库。
我有兴趣了解该过程,并且不打算使用 ios XMPP-Framework。任何帮助,将不胜感激。
authentication - 实现 SCRAM-SHA1 客户端,在某处出错
注意:我已经阅读了这个问题的非常好的答案,但它没有回答我的问题。
我正在尝试在 Common Lisp 中实现RFC 5802指定的 SCRAM-SHA1 身份验证标准。在生成客户端最终响应消息时,我遇到了问题。
这是函数的代码(其余函数可在此处获得)——这是尝试实现 RFC 第 7 页中描述的算法:
RFC 中的示例对话使用用户名user
和密码pencil
:
获取相同的服务器响应 ( r=fyko+d2lbbFgONRv9qkxdawL3rfcNHYJY1ZVvWVs7j,s=QSXCR+Q6sek8bf92,i=4096
) 并将其输入到我的函数中,我得到:
如您所见,我的client-proof
( 的p=
部分final-message
)与示例中的完全不同。
我将所有中间变量添加到返回中,以防这里的任何人都可以看到出了什么问题。不幸的是,没有显示中间变量值的示例,所以我无法比较我得到的替代方案。
mongodb - 在 cl-mongo 中实现 MongoDB SASL 身份验证
我已经从 fons 分叉了 cl-mongo(通用 lisp MongoDB 库)存储库,因为它已经停止维护并且不支持 SCRAM-SHA-1 登录过程。这是我的分叉:https ://github.com/mprelude/cl-mongo——主要的变化是添加了对cl-scram(我的 SCRAM 实现)的依赖,并添加了一个 bson 二进制通用容器。
我仍在尝试发送初始消息,所以问题不在于密码错误,因为尚未使用。
为什么这部分身份验证失败?如果我想将 MESSAGE 中的内容传输到 mongo,任何人都可以确认 BINARY-MESSAGE 是否是我应该发送的内容?
这是我的电话,添加了一些调试输出:
值得注意的是,我认为 Mongo 必须正确读取我的请求,因为消息是“身份验证失败”(错误代码 18),这表明它理解我已请求 SASL 对话。
我相信我遇到的问题是基于有效负载,无论是内容(base64 的初始消息,作为八位字节)或格式。
借鉴MongoDB 文档以及原始讨论的工作方式,这是我重写的 db.auth 函数:
php - 通过 PHP 进行 SCRAM-SHA-1 身份验证
请帮助我在 XMPP 服务器中实现有关 SCRAM-SHA-1 授权的手册中的语义代码。所以,我们得到了:
我的PHP代码:
某处错误(可能是所有大错误;))并且我非常需要您的帮助来纠正我的代码,也许我使用了错误的函数或错误位置的参数?因为结果 - 失败,服务器发送给我:
“客户提供的回复与我们计算的不符。”
PS:对不起我的英语不好;)
javascript - SCRAM 客户端 Javascript 实现/示例/库?
几个月前,我创建了一个为客户端和服务器提供功能的小型 Java 库。昨天它的一个用户问我一个例子,如何在他的网站上实现SCRAM登录客户端,即浏览器(他已经使用我的 lib 在服务器端使用 SCRAM)。他告诉我,他找不到任何 Javascript 示例或库,而且我的搜索也不成功(这让我很惊讶,鉴于所有数据泄露和被盗登录凭据,我认为 SCRAM 现在被更广泛地使用)。
您是否知道可以在浏览器中使用此类示例或库 (javascript) 来提供 SCRAM 身份验证的客户端功能?
apache-kafka - KAFKA:连接到节点的身份验证失败,原因是:由于使用 SASL 机制 SCRAM-SHA-256 的凭据无效,身份验证失败
一段时间以来,我一直在尝试使用 SASL_PLAINTEXT SCRAM-SHA-256 向我的 Kafka Brokers 添加 SASL 身份验证,但没有任何成功。我在 Kafka 的日志文件中不断收到以下错误。
错误 [Controller id=0, targetBrokerId=0] 连接到节点 0 的身份验证失败,原因是:由于 SASL 机制 SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient) 的凭据无效,身份验证失败。
但是我一直在关注 SCRAM Config 上的 Kafka 文档,并没有成功实现这一目标。
我使用 kafka-configs.sh 在 Zookeeper 上注册了一个管理员用户,如下所示:
这是我配置 SCRAM-SHA-256 的 server.properties 的一部分。
c# - 如何使用 C# 和 SslStream 类打开与 TLS 通道绑定的连接?
我正在尝试在我的 XMPP 库中实现 SCRAM-SHA-1-PLUS,但我陷入了让通道绑定工作的问题。我的 SslStream 的 TransportContext 中有一个 ChannelBinding 对象,但该值不是服务器所期望的。有没有不同的方法或者.NET Core 没有实现 tls-unique?
编辑:
有问题的代码文件可以在我下面的评论中找到。
postgresql - 如何在 Debian 的 Postgres 10 中使用 scram-sha-256?获取“致命:密码验证失败”
我编辑pg_hba.conf
:
并添加了这一行:
并将所有更改md5
为该scram-sha-256
文件中的所有内容。
作为postgres
用户,我创建了一个具有超级用户权限的新用户:
然后我重新启动了 Postgres:
并尝试使用 pgAdmin4 登录,我在数据库的 Connection 属性下更改了用户名。但这既不是psql -U username testdb < ./testdb.sql
我得到的工作,也不是:
致命:用户“用户名”的密码验证失败
那么如何让 Postgres 在我的 Debian9/KDE 机器上使用 scram-sha-256 呢?当我把所有的东西都留md5
在pg_hba.conf
原样时,它更早地起作用了。