Mongodb 副本集中的身份验证

Mongodb 副本集中的身份验证,mongodb,authentication,replication,Mongodb,Authentication,Replication,当我在测试环境中测试身份验证时,一切正常。唯一的区别是我没有使用副本集。我了解到,如果使用复制,我可能需要使用密钥文件来使用用户名和密码进行身份验证,但我的主管希望尽可能远离密钥文件。有没有办法不用密钥文件,同时仍然使用用户名/密码 在我的日志文件中,我看到如下行: [conn4552] Successfully authenticated as principal DBAdmin on admin [conn1] Unauthorized: not authorized on admin t

当我在测试环境中测试身份验证时,一切正常。唯一的区别是我没有使用副本集。我了解到,如果使用复制,我可能需要使用密钥文件来使用用户名和密码进行身份验证,但我的主管希望尽可能远离密钥文件。有没有办法不用密钥文件,同时仍然使用用户名/密码

在我的日志文件中,我看到如下行:

[conn4552] Successfully authenticated as principal DBAdmin on admin

[conn1] Unauthorized: not authorized on admin to execute command { replSetHeartbeat: "rs0", configVersion: 1, hbv: 1, from: "172.30.1.216:27017", fromId: 1, term: 8, $replData: 1, $clusterTime: { clusterTime: Timestamp(1527610291, 1), signature: { hash: BinData(0, FA0631F3EE81E932FE5E49031F76A9E5199250A0), keyId: 6561016230625411073 } }, $db: "admin" }

[replexec-27] Error in heartbeat (requestId: 22357) to <IP>:<PORT>, response status: Unauthorized: not authorized on admin to execute command {  replSetHeartbeat: "rs0", configVersion: 1, hbv: 1, from: "<IP>:<PORT>", fromId: 0, term: 8, $replData: 1, $clusterTime: { clusterTime: Timestamp(1527610291, 1), signature: { hash: BinData(0, FA0631F3EE81E932FE5E49031F76A9E5199250A0), keyId: 6561016230625411073 } }, $db: "admin" }
[conn4552]已成功验证为admin上的主体DBAdmin
[conn1]未经授权:管理员未授权执行命令{replSetHeartbeat:“rs0”,configVersion:1,hbv:1,from:“172.30.1.216:27017”,fromId:1,term:8,$replData:1,$clusterTime:{clusterTime:Timestamp(1527610291,1),签名:{hash:BinData(0,fa0631f3ee81e932fe49031f76a9e5199250a0),keyId:65610162541073},$db:“管理”}
[replexec-27]心跳(requestId:22357)到:,响应状态:未授权:未授权管理员执行命令{replSetHeartbeat:“rs0”,configVersion:1,hbv:1,from::”,fromId:0,term:8,$replData:1,$clusterTime:{clusterTime:Timestamp(1527610291,1),签名:{hash:BinData(0,FA0631F3EE81E932FE5E49031F76A9E5199250A0),keyId:65610163062541073},$db:“admin”}

如果不使用密钥文件,我找不到解决方案。您的主管对密钥文件有什么看法?他不喜欢身份验证吗?它并不那么安全。据我所知,不建议在生产环境中使用密钥文件。使用Active Directory限制对密钥文件的访问是否足够安全?我去了ad并使用了密钥文件。虽然不理想,但问题已经解决。密钥文件仅用于内部身份验证。您不使用密钥文件的原因是什么?MongoDB文档声明不建议在生产中使用密钥文件,并且建议改为使用x.509证书。您可以考虑使用x.509证书吗?