Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-15588

An arbiter should return an empty list of supported SASL mechanisms

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Backlog
    • Major - P3
    • Resolution: Unresolved
    • None
    • None
    • Security
    • Security

    Description

      Currently, to determine whether a server supports authentication, a driver has to call isMaster to see if the server is an arbiter, and then only initiate authentication if it's not. This will become a problem if isMaster is itself put behind authentication.

      Another way would be to make an arbiter return an empty list of supported mechanisms from the saslStart command, which makes sense because currently arbiters do not support any mechanisms. saslStart may need to return if the server is an arbiter.

      So instead of:

      > db.runCommand({"saslStart" : 1, mechanism : "SCRAM-SHA1"})
      {
      	"supportedMechanisms" : [
      		"MONGODB-CR",
      		"MONGODB-X509",
      		"SCRAM-SHA-1"
      	],
      	"ok" : 0,
      	"code" : 2,
      	"errmsg" : "Unsupported mechanism SCRAM-SHA1"
      }
      

      respond

      > db.runCommand({"saslStart" : 1, mechanism : "SCRAM-SHA1"})
      {
      	"supportedMechanisms" : [],
      	"ok" : 0,
      	"code" : 2,
      	"errmsg" : "Unsupported mechanism SCRAM-SHA1"
      }
      

      Attachments

        Issue Links

          Activity

            People

              backlog-server-security Backlog - Security Team
              jeff.yemin@mongodb.com Jeffrey Yemin
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: