[CSHARP-3239] Cannot authenticate with an AWS session token Created: 26/Oct/20  Updated: 28/Oct/23  Resolved: 01/Dec/20

Status: Closed
Project: C# Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 2.11.5

Type: Bug Priority: Major - P3
Reporter: Matthew Thompson Assignee: James Kovacs
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Problem/Incident
Related
is related to CSHARP-3228 Percent-encoded authSource in mongodb... Closed
Case:

 Description   

When using MONGODB-AWS and authenticating with an AWS session token specified in the connection string (?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:..., I receive the following authentication error:

Unhandled exception. MongoDB.Driver.MongoAuthenticationException: Unable to authenticate using sasl protocol mechanism MONGODB-AWS.
 ---> MongoDB.Driver.MongoCommandException: Command saslContinue failed: Authentication failed..
   at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol`1.ProcessReply(ConnectionId connectionId, ReplyMessage`1 reply)
   at MongoDB.Driver.Core.WireProtocol.CommandUsingQueryMessageWireProtocol`1.Execute(IConnection connection, CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Authentication.SaslAuthenticator.Authenticate(IConnection connection, ConnectionDescription description, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Connections.BinaryConnection.Open(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.PooledConnection.Open(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.ConnectionPools.ExclusiveConnectionPool.AcquiredConnection.Open(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Servers.Server.GetChannel(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Bindings.ServerChannelSource.GetChannel(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Bindings.ChannelSourceHandle.GetChannel(CancellationToken cancellationToken)
   at MongoDB.Driver.Core.Operations.DropCollectionOperation.Execute(IWriteBinding binding, CancellationToken cancellationToken)
   at MongoDB.Driver.OperationExecutor.ExecuteWriteOperation[TResult](IWriteBinding binding, IWriteOperation`1 operation, CancellationToken cancellationToken)
   at MongoDB.Driver.MongoDatabaseImpl.ExecuteWriteOperation[T](IClientSessionHandle session, IWriteOperation`1 operation, CancellationToken cancellationToken)
   at MongoDB.Driver.MongoDatabaseImpl.DropCollection(IClientSessionHandle session, String name, CancellationToken cancellationToken)
   at MongoDB.Driver.MongoDatabaseImpl.<>c__DisplayClass29_0.<DropCollection>b__0(IClientSessionHandle session)
   at MongoDB.Driver.MongoDatabaseImpl.UsingImplicitSession(Action`1 func, CancellationToken cancellationToken)
   at MongoDB.Driver.MongoDatabaseImpl.DropCollection(String name, CancellationToken cancellationToken)
   at tour.Program.Main(String[] args) in /home/vagrant/dotnet/tour/csharp/Program.cs:line 20

The same connection string works fine in the following:

  • mongo shell (4.4.1)
  • pymongo 3.11.0
  • Node.js driver 3.6.2

This was tested using C# driver 2.11.2.



 Comments   
Comment by Githook User [ 01/Dec/20 ]

Author:

{'name': 'James Kovacs', 'email': 'jkovacs@post.harvard.edu', 'username': 'JamesKovacs'}

Message: CSHARP-3228 / CSHARP-3239: Avoid double-escaping connection string options when merging in options from a TXT record.
Branch: v2.11.x
https://github.com/mongodb/mongo-csharp-driver/commit/8a453e09b78f4df9d66b9a64f48caa38165ae3d0

Comment by Githook User [ 01/Dec/20 ]

Author:

{'name': 'James Kovacs', 'email': 'jkovacs@post.harvard.edu', 'username': 'JamesKovacs'}

Message: CSHARP-3228 / CSHARP-3239: Avoid double-escaping connection string options when merging in options from a TXT record.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/c52e4d5459922b212b61f5d6539f56b959e9cb8d

Generated at Wed Feb 07 21:44:46 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.