我们正在使用 Mongo 3.0.3 . 由于我们的客户端.Net驱动程序不支持SCRAM-SHA-1类型身份验证,因此必须将安全性降级为MONGODB-CR . replicaset成功连接到客户端并进行通信 .

以下是证明:

db.system.version.find()

{“_ id”:“authSchema”,“currentVersion”:3} {“_ id”:“admin.admin_mongo”,“user”:“admin_mongo”,“db”:“admin”,“凭据”:{“MONGODB -CR“:”0c23321a8e8ffc2377a61eb54fccf4a5“},”roles“:[{”role“:”userAdminAnyDatabase“,”db“:”admin“},{”role“:”root“,”db“:”admin“}] }

最近我们在Mongod.conf文件中实现了Auth-Enabled功能,从那时起重启Replica set后,看到下面的错误 .

ACCESS [conn253]来自客户端XXXXXXX的本地__system的SCRAM-SHA-1认证失败; AuthenticationFailed SCRAM-SHA-1身份验证失败,storedKey不匹配

使用OpenSSL方法生成密钥文件 . 它在运行mongod的用户可以访问的地方以600权限存储 .

我一直在寻找这个问题的解决方案,但没有一个与我的情况有关 . 令我感到紧张的是 - 在Mongodb文档中它说“Keyfiles使用SCRAM-SHA-1挑战和响应认证机制 . ”

所以,如果Keyfiles使用SCRAM-SHA-1挑战和响应,那么在这种情况下它是如何工作的,因为我已经将认证机制降级为MONGODB-CR,因为客户端驱动程序?

什么是这个问题的解决方案 . 请帮忙 .

谢谢, .