Provided by: libmongoc-doc_1.3.1-1_all bug

NAME

       Authentication - None

BASIC AUTHENTICATION

       The  MongoDB  C  driver  supports  challenge  response  authentication (sometimes known as
       MONGODB‐CR ) through the use of MongoDB connection URIs.

       Simply provide the username and password as one would with an HTTP URL , as  well  as  the
       database to authenticate against via authSource \&.

       mongoc_client_t                 *client                 =                mongoc_client_new
       ("mongodb://user:password@localhost/?authSource=mydb");

GSSAPI (KERBEROS) AUTHENTICATION

       NOTE
              Kerberos support is only provided  in  environments  supported  by  the  cyrus‐sasl
              Kerberos implementation. This currently limits support to UNIX‐like environments.

       GSSAPI  (Kerberos)  authentication  is  available  in  the  Enterprise Edition of MongoDB,
       version 2.4 and newer. To authenticate using  GSSAPI  ,  the  MongoDB  C  driver  must  be
       installed   with   SASL  support.  Run  the  kinit  command  before  using  the  following
       authentication methods:

       $ mongodbuser@EXAMPLE.COM's Password: $
       Credentials cache: FILE:/tmp/krb5cc_1000
               Principal: mongodbuser@EXAMPLE.COM

         Issued                Expires               Principal
       Feb  9 13:48:51 2013  Feb  9 23:48:51 2013  krbtgt/EXAMPLE.COM@EXAMPLE.COM

       Now authenticate using the  MongoDB  URI.   GSSAPI  authenticates  against  the  $external
       virtual  database,  so  a database does not need to be specified in the URI. Note that the
       Kerberos principal must be URL‐encoded:

       mongoc_client_t *client;

       client = mongoc_client_new ("mongodb://mongodbuser%40EXAMPLE.COM@example.com/?authMechanism=GSSAPI");

       The default service name used by MongoDB and the MongoDB C driver is mongodb \&. A  custom
       service name can be specified with the gssapiServiceName option:

       mongoc_client_t *client;

       client = mongoc_client_new ("mongodb://mongodbuser%40EXAMPLE.COM@example.com/?authMechanism=GSSAPI&gssapiServiceName=myservicename");

       NOTE
              When  encountering errors such as Invalid net address , check if the application is
              behind a NAT (Network Address Translation) firewall. If so, create  a  ticket  that
              uses  forwardable  and addressless Kerberos tickets. This can be done by passing ‐f
              ‐A to kinit \&.

              $

SSL AUTHENTICATION

       NOTE
              The MongoDB C Driver must be compiled with  the  ‐‐enable‐ssl  option  to  use  SSL
              authentication.

       To  connect  to a MongoDB server enabled with SSL, add the ?ssl=true option in the MongoDB
       URI.

       mongoc_uri_t *uri = mongoc_uri_new ("mongodb://localhost/?ssl=true");

       NOTE
              Connecting to a server that does  not  support  SSL  will  fail  if  the  ?ssl=true
              parameter  is  provided  in  the  URI. This is to prevent unintentional information
              leak.

SASL PLAIN AUTHENTICATION

       NOTE
              The MongoDB C Driver must be compiled with SASL support in order to use SASL  PLAIN
              authentication.

       MongoDB  Enterprise Edition versions 2.5.0 and newer support the SASL PLAIN authentication
       mechanism, initially intended for delegating authentication to an LDAP server.  Using  the
       SASL  PLAIN  mechanism  is very similar to the challenge response mechanism with usernames
       and passwords. These examples use the $external virtual database for LDAP support:

       NOTE
              SASL PLAIN is a clear‐text authentication mechanism. It is strongly recommended  to
              connect  to  MongoDB  using  SSL  with  certificate validation when using the PLAIN
              mechanism.

       mongoc_client_t *client;

       client = mongoc_client_new ("mongodb://user:password@example.com/?authMechanism=PLAIN&authSource=$external");

X.509 CERTIFICATE AUTHENTICATION

       NOTE
              The MongoDB C Driver must be compiled with SSL  support  for  X.509  authentication
              support.

       The MONGODB‐X509 mechanism authenticates a username derived from the distinguished subject
       name of the X.509 certificate  presented  by  the  driver  during  SSL  negotiation.  This
       authentication  method requires the use of SSL connections with certificate validation and
       is available in MongoDB 2.5.1 and newer:

       mongoc_client_t *client;
       mongoc_ssl_opt_t ssl_opts = { 0 };

       ssl_opts.pem_file = "mycert.pem";
       ssl_opts.pem_pwd = "mycertpassword";
       ssl_opts.ca_file = "myca.pem";
       ssl_opts.ca_dir = "trust_dir";
       ssl_opts.weak_cert_validation = false;

       client = mongoc_client_new ("mongodb://x509_derived_username@localhost/?authMechanism=MONGODB‐X509");
       mongoc_client_set_ssl_opts (client, &ssl_opts);

       MONGODB‐X509 authenticates against the $external database, so specifying a database is not
       required.

COLOPHON

       This    page   is   part   of   MongoDB   C   Driver.    Please   report   any   bugs   at
       https://jira.mongodb.org/browse/CDRIVER.