Skip to content

Commit e438d41

Browse files
authored
DOC-12750 Authentication improvements - Ability to enable/disable Couchbase User (#3853)
* manage users n groups n blocking user * lock n unlock users n manage password page * Updated manage users and roles page for cli n api * Added auditing user activity and rewrote manage auditing * Added Reference section contents * Enterprise Edition note added * whats new entries * image fix * Implemented technical review inputs * Implemented editorial review comments * Minor edit Enterprise to Enterprise Edition
1 parent da8bee0 commit e438d41

26 files changed

+1755
-561
lines changed

modules/ROOT/nav.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ include::third-party:partial$nav.adoc[]
9696
**** xref:learn:security/using-multiple-cas.adoc[Using Multiple Root Certificates]
9797
** xref:learn:security/authorization-overview.adoc[Authorization]
9898
*** xref:learn:security/roles.adoc[Roles]
99-
*** xref:learn:security/upgrading-to-rbac.adoc[Upgrading to RBAC]
10099
** xref:learn:security/on-the-wire-security.adoc[On-the-Wire Security]
101100
** xref:learn:security/auditing.adoc[Auditing]
102101
** xref:learn:security/encryption-overview.adoc[Encryption]
@@ -158,6 +157,7 @@ include::third-party:partial$nav.adoc[]
158157
*** xref:manage:manage-security/configure-saslauthd.adoc[Configure saslauthd]
159158
*** xref:manage:manage-security/configure-saml.adoc[Configure SAML]
160159
*** xref:manage:manage-security/configure-pam.adoc[Configure PAM]
160+
*** xref:manage:manage-security/manage-passwords.adoc[Manage Passwords]
161161
*** xref:manage:manage-security/manage-certificates.adoc[Manage Certificates]
162162
**** xref:manage:manage-security/configure-server-certificates.adoc[Configure Server Certificates]
163163
**** xref:manage:manage-security/configure-client-certificates.adoc[Configure Client Certificates]

modules/introduction/partials/new-features-80.adoc

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,40 @@ This mode enhances flexibility for clients while enforcing strict security for n
314314
+
315315
For more information, see xref:manage:manage-security/enable-client-certificate-handling.adoc[Enable Client Certificate Handling].
316316
317+
https://jira.issues.couchbase.com/browse/MB-11575[MB-11575]::
318+
XDCR now supports the identification of Incoming Replications on a cluster.
319+
The Incoming Replications can be:
320+
321+
* Viewed on the XDCR tab of the UI. See xref:manage:manage-xdcr/incoming-xdcr-replications.adoc#view-incoming-replications[View Incoming Replications] in xref:manage:manage-xdcr/incoming-xdcr-replications.adoc[Incoming Replications].
322+
* Retrieved by using the REST API command `GET /xdcr/sourceClusters`. See xref:rest-api:rest-xdcr-list-incoming-replications.adoc[Listing Incoming Replications].
323+
324+
https://jira.issues.couchbase.com/browse/MB-30260[MB-30260]::
325+
You can lock user accounts to prevent them from authenticating with Couchbase Server.
326+
+
327+
--
328+
* Locking an account terminates all active UI sessions and long-running connections such as Memcached or streaming connections.
329+
* This feature is useful for preventing users from connecting to the database during maintenance.
330+
* This feature is applicable to local domain user accounts only.
331+
* This is an Enterprise Edition feature, and only available after the entire cluster is upgraded to the Couchbase Server 8.0 or a later version.
332+
--
333+
+
334+
For more information, xref:learn:security/authentication-overview.adoc#blocking-user-authentication[Blocking User Authentication].
335+
336+
https://jira.issues.couchbase.com/browse/MB-31823[MB-31823]::
337+
As an administrator, you can force a local domain user account to change their password when they next authenticate with Couchbase Server.
338+
This feature is useful for assigning a temporary password to new user accounts by selecting the option to force the user to change their password when creating a new user.
339+
+
340+
For more information, see xref:learn:security/usernames-and-passwords.adoc#force-password-change[Force Password Change].
341+
342+
https://jira.issues.couchbase.com/browse/MB-63755[MB-63755]::
343+
You can track the user activity, such as the last time a user made a request to the Cluster Manager, through user auditing.
344+
It's useful in locating users whose accounts are no longer active.
345+
You select which roles or groups a user must belong to for their last activity time to be saved.
346+
This feature is only available for users in the local domain.
347+
The activity of externally authenticated users cannot be tracked using this feature.
348+
+
349+
For more information, see xref:learn:security/auditing.adoc#audit-user-activity[Audit User Activity].
350+
317351
[#section-new-feature-800-query-service]
318352
=== Query Service
319353

modules/learn/pages/security/auditing.adoc

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,45 @@ The output is written to a log-file, which is periodically rotated.
1414
[#adit_event_types]
1515
== Audit Event-Types
1616

17-
Events generated by Couchbase Server are of two kinds:
17+
The following types of events are generated by Couchbase Server:
1818

19-
* _Admin_ events, which track administrative and configuration changes to the cluster.
19+
* Admin events and Data events:
2020
21-
* _Data_ events, which track attempts to access and change data.
21+
** Admin events, which track administrative and configuration changes to the cluster.
2222

23-
Note that event-auditing occurs on a _per node_ basis: each node captures its own events only.
24-
If a cluster-wide record is needed, the individual per node records must be manually consolidated by the administrator.
23+
** Data events, which track attempts to access and change data.
24+
+
25+
[NOTE]
26+
.Event auditing occurs on a per node basis
27+
====
28+
Each node captures its own events only.
29+
If a cluster-wide record is needed, the individual per node records must be manually consolidated by the administrator.
30+
====
31+
32+
* User Activity, which records the date and time of the user’s last request to the server.
2533
2634
This page explains frequently used audit fields, and gives examples of record-structures.
27-
For information on managing auditing, see xref:manage:manage-security/manage-auditing.adoc[Manage Auditing].
35+
For information about managing auditing, see xref:manage:manage-security/manage-auditing.adoc[Manage Auditing].
2836
See the reference page xref:audit-event-reference:audit-event-reference.adoc[Audit Event Reference], for a complete list of events that can be audited.
2937

38+
[#audit-user-activity]
39+
== Audit User Activity
40+
41+
IMPORTANT: This is a Couchbase Server Enterprise Edition feature.
42+
43+
Auditing user activity allows administrators to track the last time a local user made a request to the Cluster Manager.
44+
This feature helps identify dormant accounts, improve security, and support compliance with organizational policies.
45+
The system does not record every action but instead stores the timestamp of the most recent request.
46+
This approach minimizes performance overhead while still providing useful insight into account usage.
47+
48+
User activity auditing applies only to the local domain users.
49+
Externally authenticated users, such as those managed by LDAP or SAML, are not tracked.
50+
Administrators can configure which roles and groups are included in activity tracking.
51+
52+
The last recorded connection time is visible on the UI in the xref:manage:manage-security:manage-security-settings.adoc[Security] section and can also be retrieved through the REST API.
53+
This makes it easier for administrators to monitor active and inactive accounts.
54+
To enable and configure user activity auditing, see xref:manage:manage-security/manage-auditing.adoc#auditing-user-activity[Auditing User Activity] in xref:manage:manage-security/manage-auditing.adoc[Manage Auditing].
55+
3056
== Audit Fields
3157

3258
The table below lists frequently used audit fields, with corresponding descriptions.

modules/learn/pages/security/authentication-overview.adoc

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ For more information about single sign-on, see xref:learn:security/authenticatio
2222
The recommended method for application-authentication when connecting to Couchbase Server is to use x.509 _certificate-based_ authentication.
2323
This ensures that only approved users, machines, or endpoints are authenticated, and provides what is known as _mutual authentication_.
2424

25-
_Mutual-TLS_ (mTLS) certificate-based authentication relies on a _Certificate Authority_ (CA) to validate identities and issue certificates.
25+
Mutual-TLS (mTLS) certificate-based authentication relies on a _Certificate Authority_ (CA) to validate identities and issue certificates.
2626
When using this method, no sensitive credentials are shared over the network; and all communication between application and server is performed over an _encrypted channel_, to prevent eavesdropping and impersonation.
2727

2828
For a complete overview of Couchbase Server’s certificate-handling mechanisms, see xref:learn:security/certificates.adoc[Certificates].
@@ -138,7 +138,40 @@ The _local_ domain contains users defined locally, on Couchbase Server.
138138
The _external_ domain contains users defined externally on an LDAP server, a SAML IdP provider, or Linux systems that are accessed by means of _PAM_.
139139
For a complete overview, see xref:learn:security/authentication-domains.adoc[Authentication Domains].
140140

141+
In addition to a username and password requirement,
142+
SAML can require _Two-Factor Authentication_ (TFA) such as a one-time code sent via text message or a code generated by an authentication module or app.
143+
SAML can also provide _Single Sign On_ (SSO), where a user that has already authenticated with another application is automatically authenticated to use.
141144

145+
[#blocking-user-authentication]
146+
== Blocking User Authentication
142147

148+
IMPORTANT: This is a Couchbase Server Enterprise Edition feature.
143149

144-
In addition to a username and password requirement, SAML can require _Two-Factor Authentication_ (TFA) such as a one-time code sent via text message or a code generated by an authentication module or app. SAML can also provide _Single Sign On_ (SSO), where a user that has already authenticated with another application is automatically authenticated to use
150+
Administrators can lock user accounts by blocking their authentication.
151+
This is enforced through account locking.
152+
After an account is marked as locked, it prevents the user from logging in or from continuing the existing sessions.
153+
Locking an account terminates all active UI sessions and long-running connections such as Memcached or streaming connections.
154+
155+
[IMPORTANT]
156+
====
157+
* This feature is only available after the entire cluster is upgraded to version 8.0 or later.
158+
159+
* Only local domain user accounts can be locked or unlocked.
160+
External domain user accounts cannot be locked or unlocked.
161+
====
162+
163+
This feature is useful for preventing users from connecting to the database during maintenance.
164+
165+
Administrators can block authentication manually through the UI, REST API, or CLI,
166+
or automatically through inactivity-based locking after a defined idle period (using TTL).
167+
TTL based locking also allows accounts to be blocked temporarily, with automatic unlocking after the configured duration.
168+
By default, automatic blocking rules can exclude System Administrators and other critical roles, to maintain uninterrupted operations.
169+
170+
From the authentication flow perspective, any login attempt against a blocked account is denied,
171+
and the login screen displays a clear error message indicating that the account has been locked.
172+
The server communicates this state consistently across interfaces; UI responses, CLI status, REST API outputs, and SDK error codes all reflect the locked status.
173+
174+
For auditing and compliance, every lock event is logged with details of who performed the action and under what conditions.
175+
This ensures that blocking user authentication is both transparent and reversible while maintaining strong security boundaries.
176+
177+
For more information about locking or unlocking user accounts from the UI, see xref:manage:manage-security/manage-users-and-roles.adoc#lock-and-unlock-user-accounts[Lock and Unlock User Accounts].

modules/learn/pages/security/upgrading-to-rbac.adoc

Lines changed: 0 additions & 46 deletions
This file was deleted.

modules/learn/pages/security/usernames-and-passwords.adoc

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,35 @@ Therefore, once a user has authenticated, their role-assignment is examined, and
8787
See xref:learn:security/authorization-overview.adoc[Authorization], for details.
8888

8989
Note that usernames and role-names are _case sensitive_.
90+
91+
== Changing Passwords
92+
93+
Administrators can configure and enforce security policies to make sure that users maintain secure and up-to-date passwords.
94+
Couchbase Server supports temporary passwords.
95+
These controls help prevent unauthorized access and reduce the risk of weak or repeated passwords.
96+
97+
All local users can change their passwords through the UI, REST API, or CLI.
98+
99+
When local users authenticate with the UI, the system prompts them to change their password at their next login.
100+
The CLI provides the `couchbase-cli user-change-password` command, and the REST API supports password updates through the `/controller/changePassword` endpoint.
101+
For more information, see xref:manage:manage-security/manage-passwords.adoc[Manage Passwords].
102+
103+
Even users whose accounts do not have privileges to use the Couchbase Web Console can sign in using the UI login page to change their password.
104+
105+
The users managed by external systems, such as LDAP or SAML, must use the tools provided by their external authentication provider to update their passwords.
106+
107+
[#force-password-change]
108+
=== Force Password Change
109+
110+
Administrators can enforce a password change on the user’s next login.
111+
This option is useful when issuing a temporary password or resetting a compromised account.
112+
113+
Enforcing password change results in the following:
114+
115+
* The user is prompted to set a new password before accessing the Couchbase Server.
116+
The user can set a new password using the UI, REST API, or CLI.
117+
* When authenticating from the UI, users are prompted to set a new password and cannot access any features until they have updated their password.
118+
119+
This feature ensures that only the user knows their active password and that temporary or shared credentials cannot be reused indefinitely.
120+
121+
For more information, see xref:manage:manage-security/manage-passwords.adoc#force-password-update[Force Password Update].
3.36 KB
Loading
6.25 KB
Loading
16.9 KB
Loading
157 KB
Loading

0 commit comments

Comments
 (0)