Skip to content

Commit d7901e6

Browse files
DOCS-15864 documentation for enforceUserClusterSeparation parameter (#6789)
* DOCS-15864 documentation for enforceUserClusterSeparation parameter * DOCS-15864 updates for SJ's feedback * DOCS-15864 updates for SJ's feedback * DOCSP-15864 updates for more feedback * DOCS-15864 updates for JA's feedback * DOCS-15864 adding enforceUserClusterSeparation to Server Parameters page * Update source/reference/parameters.txt Co-authored-by: Jeff Allen <jeffrey.allen@10gen.com> * DOCS-15864 updates for JA's feedback --------- Co-authored-by: Jeff Allen <jeffrey.allen@10gen.com>
1 parent 2ab0c14 commit d7901e6

File tree

4 files changed

+67
-1
lines changed

4 files changed

+67
-1
lines changed

source/includes/extracts-x509-certificate.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ content: |
2929
- Organizational Unit (``OU``)
3030
- Domain Component (``DC``)
3131
32+
.. note::
33+
34+
You can also disable the ``enforceUserClusterSeparation``
35+
parameter during startup to automatically disable the
36+
``O/OU/DC`` check. This allows member certificates to
37+
authenticate as users stored in the ``$external`` database.
38+
3239
- The ``subject`` of a client x.509 certificate, which contains the
3340
Distinguished Name (``DN``), must be **different** than the ``subject``\s
3441
of :ref:`member x.509 certificates <x509-member-certificate>`.
@@ -64,6 +71,27 @@ content: |
6471
6572
.. include:: /includes/list-cluster-x509-requirements.rst
6673
74+
.. note::
75+
76+
If you disable the ``enforceUserClusterSeparation`` parameter, the
77+
following behaviors apply:
78+
79+
- The ``O/OU/DC`` check is disabled if ``clusterAuthMode`` is
80+
``keyFile`` in your configuration file. This allows clients
81+
possessing member certificates to authenticate as users stored in
82+
the ``$external`` database.
83+
- The server won't start if ``clusterAuthMode`` isn't ``keyFile`` in
84+
your configuration file.
85+
86+
.. include:: /includes/fact-enforce-user-cluster-separation-parameter.rst
87+
88+
To set the ``enforceUserClusterSeparation`` parameter to
89+
``false``, run the following command during startup:
90+
91+
.. code-block:: javascript
92+
93+
mongod --setParameter enforceUserClusterSeparation=false
94+
6795
The certificates have the following requirements:
6896
6997
.. include:: /includes/list-tls-certificate-requirements.rst
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
If you set the ``enforceUserClusterSeparation`` parameter to ``false``,
2+
the server doesn't distinguish between client certificates, which
3+
applications use to authenticate, and intra-cluster certificates, which
4+
have privileged access. This has no effect if your ``clusterAuthMode``
5+
is ``keyFile``. However, if your ``clusterAuthMode`` is ``x509``, user
6+
certificates that use the allowed scheme are conflated with cluster
7+
certificates and granted privileged access.
8+
9+
Your existing certificates are granted internal privileges if you do the
10+
following:
11+
12+
1. Create a user, with a name allowed by this parameter.
13+
#. Set the ``enforceUserClusterSeparation`` parameter to ``false``.
14+
#. Set ``clusterAuthMode`` to ``x509``.
15+
16+
You must not upgrade from ``keyFile`` to ``x509`` without validating
17+
that you've removed users with elevated privileges that the
18+
``enforceUserClusterSeparation`` flag allowed you to create.

source/includes/list-cluster-x509-requirements.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,3 @@
1919
tls:
2020
clusterAuthX509:
2121
attributes: O=MongoDB, OU=MongoDB Server
22-

source/reference/parameters.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,34 @@ Authentication Parameters
139139

140140
|both|
141141

142+
*Default*: ``true``
143+
142144
Specify ``0`` or ``false`` to disable localhost authentication
143145
bypass. Enabled by default.
144146

145147
.. include:: /includes/fact-startup-parameter
146148

147149
See :ref:`localhost-exception` for more information.
148150

151+
.. parameter:: enforceUserClusterSeparation
152+
153+
|both|
154+
155+
Set to ``false`` to disable the ``O/OU/DC`` check when
156+
``clusterAuthMode`` is ``keyFile`` in your configuration file. This
157+
allows clients possessing member certificates to authenticate as
158+
users stored in the ``$external`` database. The server won't start if
159+
``clusterAuthMode`` isn't ``keyFile`` in your configuration file.
160+
161+
To set the ``enforceUserClusterSeparation`` parameter to ``false``,
162+
run the following command during startup:
163+
164+
.. code-block:: javascript
165+
166+
mongod --setParameter enforceUserClusterSeparation=false
167+
168+
.. include:: /includes/fact-enforce-user-cluster-separation-parameter.rst
169+
149170
.. parameter:: KeysRotationIntervalSec
150171

151172
*Default*: 7776000 seconds (90 days)

0 commit comments

Comments
 (0)