Skip to content

Commit 2e4b0a3

Browse files
DOCSP-46049 First-Round Edits: Auth Page (#64)
* DOCSP-46049 First-Round Edits: Auth Page * Apply suggestions from code review SS' review feedback Co-authored-by: Sarah Simpers <[email protected]> * DOCSP-46049 updates for SS's feedback --------- Co-authored-by: Sarah Simpers <[email protected]>
1 parent f8dd1ba commit 2e4b0a3

File tree

1 file changed

+50
-48
lines changed

1 file changed

+50
-48
lines changed

source/auth.txt

Lines changed: 50 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,9 @@ Authentication)` within your identity provider. |service| also supports
110110
Google or Github account authentication.
111111

112112
{+atlas-ui+} manages user identities in a MongoDB-controlled Okta
113-
instance, encrypted and stored securely. You must also configure IP
114-
access list to allow only connections from those IP ranges added to the
115-
access list.
113+
instance, encrypted and stored securely. You must also configure the IP
114+
access list to allow only connections from IP ranges that include your
115+
users and application servers.
116116

117117
To learn more, see :ref:`atlas-federated-authentication`.
118118

@@ -140,18 +140,27 @@ Recommendations for |service| Database
140140
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
141141

142142
|service| supports the following options for |service| database
143-
authentication. In development and test environments, create separate
144-
project with {+cluster+} and grant users ``Project Data Access Admin``
145-
and ``Organization Member`` roles. In staging and production
146-
environments, we recommend granting only programmatic access by using
147-
Workforce Identity Federation. |service| also supports creating
148-
temporary database users that automatically expire after the predefined
149-
times. A user can be created for the following periods:
143+
authentication. In development and test environments, create a separate
144+
project with {+cluster+} and grant users ``Project Data Access
145+
Admin`` roles. In staging and production environments, we recommend
146+
granting only programmatic access by using :atlas:`Workforce Identity
147+
Federation </workforce-oidc/>`.
148+
149+
|service| also supports creating temporary database users
150+
that automatically expire after the predefined times. A user can be
151+
created for the following periods:
150152

151153
- 6 hours
152154
- 1 day
153155
- 1 week
154156

157+
We recommend using a secrets manager like `HashiCorp Vault
158+
<https://developer.hashicorp.com/vault/docs/secrets/databases/mongodbatlas>`__
159+
to generate database credentials dynamically based on configured
160+
roles for |service| databases. To learn more, see :website:`Manage
161+
MongoDB Atlas Database Secrets in HashiCorp Vault
162+
</blog/post/manage-atlas-database-secrets-hashicorp-vault>`.
163+
155164
Workforce Identity Federation
156165
`````````````````````````````
157166

@@ -185,32 +194,22 @@ To learn more, see the following:
185194
- :ref:`oidc-authentication-workload`
186195
- :ref:`set-up-pwdless-auth`
187196

188-
X.509 Client Certificates
189-
`````````````````````````
190-
191-
|service| supports X.509 client certificates for database user
192-
authentication. You must follow best practices for password management
193-
and credential rotation. We recommend that you use complex passwords,
194-
automate credential rotations, or ideally, generate one-time passwords
195-
through a privileged access management (PAM) solution for each access.
196-
|service| integrates seamlessly with HashiCorp Vault, allowing secure
197-
management and automation of secrets and credentials for database
198-
access.
199-
200-
To learn more, see :manual:`x.509 </core/security-x.509/>`.
201-
202-
SCRAM
203-
`````
197+
X.509 Client Certificates and SCRAM
198+
```````````````````````````````````
204199

205-
|service| supports SCRAM for database user authentication. SCRAM is
206-
recommended only as a quick option for development or test environments.
207-
We recommend that you use complex passwords, automate credential
208-
rotations, or ideally, generate one-time passwords through a privileged
209-
access management (PAM) solution for each access. |service| integrates
210-
seamlessly with HashiCorp Vault, allowing secure management and
211-
automation of secrets and credentials for database access.
200+
We recommend that you leverage a third-party federated identity provider
201+
for accessing all aspects of the |service| control and data plane.
202+
|service| {+clusters+} do support :manual:`x.509
203+
</core/security-x.509/>` client certificates and :manual:`SCRAM
204+
</core/security-scram/>` for user authentication, but you should use these
205+
only if you don't have an identity provider for federation.
212206

213-
To learn ore, see :manual:`SCRAM </core/security-scram/>`.
207+
If you
208+
leverage x.509 or SCRAM authentication, we recommend that you use complex
209+
passwords and store credentials in a third-party secrets manager like
210+
`HashiCorp Vault <https://developer.hashicorp.com/vault/docs/secrets/databases/mongodbatlas>`__
211+
or |aws|. Alternatively, implement automatic credential rotation or
212+
create a one-time password through your PAM system for each access.
214213

215214
Recommendations for {+atlas-admin-api+}
216215
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -272,10 +271,12 @@ as this makes the authorization process more secure and supports the
272271
flexibility needed to programmatically assign :abbr:`IdP (Identity Provider)`
273272
groups to |service| roles. You should restrict your company's domain from
274273
preventing users from logging into |service| when they are not authorized
275-
for access, which you can do by following the procedure in
276-
`Manage Domain Mapping for Federated Authentication <https://www.mongodb.com/docs/atlas/security/manage-domain-mapping/>`__. From here, we recommend that you map your
277-
:abbr:`IdP (Identity Provider)` groups to |service| roles as shown in
278-
`Role Mapping Process <https://www.mongodb.com/docs/atlas/security/manage-role-mapping/#role-mapping-process>`__.
274+
for access, which you can do by following the procedure in
275+
:atlas:`Manage Domain Mapping for Federated Authentication
276+
</security/manage-domain-mapping/>`. From here, we recommend that
277+
you map your :abbr:`IdP (Identity Provider)` groups to |service| roles
278+
as shown in :atlas:`Role Mapping Process
279+
</security/manage-role-mapping/#role-mapping-process>`.
279280

280281
If you have followed the standard |service| hierarchy of a single billing
281282
organization with a linked organization for each {+BU+} or department, then
@@ -333,19 +334,20 @@ roles, predefined or custom, with permissions tailored to specific
333334
projects or individual {+clusters+}. In staging and production
334335
environments, we recommend using Identity Federation to streamline
335336
access management by linking your Identity Provider (IdP) to |service|
336-
for a more modern and
337-
streamlined authentication and authorization flow for data access.
337+
for a more modern and streamlined authentication and authorization flow
338+
for data access.
338339

339340
Only allow workload authentication in production. You can leverage workforce
340341
authentication during development and in lower environments. By configuring
341-
'Group Membership' in your :abbr:`IdP (Identity Provider)`, you can map
342-
groups to database users, simplifying access control within the
343-
:abbr:`IdP (Identity Provider)`. However, for workload identities, we
344-
recommend assigning roles directly using the 'users' claim instead of
345-
'groups.' In development and test environments, you can default to the
346-
predefined ``readWriteAny`` role to simplify the development and testing process. When moving the application to higher environments, you should build a custom
347-
role to restrict the access that the application server has based on the
348-
principle of least privilege.
342+
:atlas:`Group Membership </workforce-oidc/>` in your :abbr:`IdP (Identity
343+
Provider)`, you can map groups to database users, simplifying access
344+
control within the :abbr:`IdP (Identity Provider)`. However, for
345+
workload identities, we recommend assigning roles directly using the
346+
``users`` claim instead of ``groups``. In development and test environments,
347+
you can default to the predefined ``readWriteAny`` role to simplify the
348+
development and testing process. When moving the application to higher
349+
environments, you should build a custom role to restrict the access that
350+
the application server has based on the principle of least privilege.
349351

350352
To learn more, see the following:
351353

0 commit comments

Comments
 (0)