Azure cosmosdb 如何针对运行在VM中的Cosmos DB emulator对Node.js MongoClient进行身份验证?

Azure cosmosdb 如何针对运行在VM中的Cosmos DB emulator对Node.js MongoClient进行身份验证?,azure-cosmosdb,azure-cosmosdb-mongoapi,Azure Cosmosdb,Azure Cosmosdb Mongoapi,我在OSX上,我正在尝试使用基于Node.js的MongoClient连接到运行在Parallels虚拟机中的CosmosDB模拟器。我能够让它连接,但查询失败,出现身份验证错误 我先看了一下,但我不得不稍微修改一下,让我的主机连接到虚拟机: Microsoft.Azure.Cosmos.Emulator.exe/AllowNetworkAccess/EnableMongoDbEndpoint/Key=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4qdu5de2nq9n

我在OSX上,我正在尝试使用基于Node.js的
MongoClient
连接到运行在Parallels虚拟机中的CosmosDB模拟器。我能够让它连接,但查询失败,出现身份验证错误

我先看了一下,但我不得不稍微修改一下,让我的主机连接到虚拟机:

Microsoft.Azure.Cosmos.Emulator.exe/AllowNetworkAccess/EnableMongoDbEndpoint/Key=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4qdu5de2nq9nduvtqobd4b8mgypmbiznqymsecagqy67xiw/Jw=

我的连接字符串:
mongodb://vm1:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4qdu5de2nq9nduvtqobd4b8mgypmbiznqymsecagqy67xiw/Jw=@vm1:10255/admin?ssl=true

在我能够让它连接之后,我无法想出如何使用
MongoClient
提供与
ServerCertificateCustomValidationCallback
相当的功能

我收到的身份验证错误消息:

[8/31/19 12:40:54 AM] System.Private.CoreLib: Exception while executing function: Functions.datasets. System.Private.CoreLib: Result: Failure
[8/31/19 12:40:54 AM] Exception: MongoError: Authentication Failed.  ConnectionId 1a87b001-e1e6-4918-9a1c-92db5719c670  ActivityId: 8c071a01-0000-0000-0000-000000000000
[8/31/19 12:40:54 AM] Stack: MongoError: Authentication Failed.  ConnectionId 1a87b001-e1e6-4918-9a1c-92db5719c670  ActivityId: 8c071a01-0000-0000-0000-000000000000
[8/31/19 12:40:54 AM]     at /Users/Documents/Projects/DataStore/node_modules/mongodb-core/lib/connection/pool.js:598:61
[8/31/19 12:40:54 AM]     at authenticateStragglers (/Users/Documents/Projects/DataStore/node_modules/mongodb-core/lib/connection/pool.js:516:16)
[8/31/19 12:40:54 AM]     at Connection.messageHandler (/Users/Documents/Projects/DataStore/node_modules/mongodb-core/lib/connection/pool.js:552:5)
[8/31/19 12:40:54 AM]     at emitMessageHandler (/Users/Documents/Projects/DataStore/node_modules/mongodb-core/lib/connection/connection.js:309:10)
[8/31/19 12:40:54 AM]     at TLSSocket.<anonymous> (/Users/Documents/Projects/DataStore/node_modules/mongodb-core/lib/connection/connection.js:452:17)
[8/31/19 12:40:54 AM]     at TLSSocket.emit (events.js:182:13)
[8/31/19 12:40:54 AM]     at addChunk (_stream_readable.js:283:12)
[8/31/19 12:40:54 AM]     at readableAddChunk (_stream_readable.js:264:11)
[8/31/19 12:40:54 AM]     at TLSSocket.Readable.push (_stream_readable.js:219:10)
[8/31/19 12:40:54 AM]     at TLSWrap.onStreamRead (internal/stream_base_commons.js:94:17).
[8/31/19 12:40:54 AM]System.Private.CoreLib:执行function:Functions.dataset时发生异常。System.Private.CoreLib:结果:失败
[8/31/19 12:40:54 AM]异常:MongoError:身份验证失败。连接ID 1a87b001-e1e6-4918-9a1c-92db5719c670活动ID:8c071a01-0000-0000-0000-0000000
[8/31/19 12:40:54 AM]堆栈:MongoError:身份验证失败。连接ID 1a87b001-e1e6-4918-9a1c-92db5719c670活动ID:8c071a01-0000-0000-0000-0000000
[8/31/19 12:40:54 AM]at/Users/Documents/Projects/DataStore/node_modules/mongodb core/lib/connection/pool.js:598:61
[8/31/19 12:40:54 AM]在AuthenticateTraggler(/Users/Documents/Projects/DataStore/node_modules/mongodb core/lib/connection/pool.js:516:16)
[8/31/19 12:40:54 AM]在Connection.messageHandler(/Users/Documents/Projects/DataStore/node_modules/mongodb core/lib/Connection/pool.js:552:5)
[8/31/19 12:40:54 AM]在emitMessageHandler(/Users/Documents/Projects/DataStore/node_modules/mongodb core/lib/connection/connection.js:309:10)
[8/31/19 12:40:54 AM]在特尔索克。(/Users/Documents/Projects/DataStore/node_modules/mongodb core/lib/connection/connection.js:452:17)
[8/31/19 12:40:54 AM]在TLSSocket.emit(events.js:182:13)
[8/31/19 12:40:54 AM]在addChunk(_stream_readable.js:283:12)
[8/31/19 12:40:54 AM]在readableAddChunk(_stream_readable.js:264:11)
[8/31/19 12:40:54 AM]在TLSSocket.Readable.push(_stream_Readable.js:219:10)
[8/31/19 12:40:54 AM]在TLSWrap.onStreamRead(内部/stream_base_commons.js:94:17)。

我使用这个连接字符串得到了以下结果:

mongodb://localhost:C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4qdu5de2nq9nduvtqobd4b8mgypmbiznqymsecagqy67xiw/Jw=@vm1:10255/admin?ssl=true

请注意,
localhost
仍然用作用户名<代码>vm1被指定为
@
之后的机器名