Skip to content

Commit 28217c5

Browse files
committed
add docs for membership policies for public channels
1 parent 217957d commit 28217c5

4 files changed

Lines changed: 89 additions & 37 deletions

File tree

source/administration-guide/manage/admin/abac-channel-access-rules.rst

Lines changed: 61 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,35 @@ Channel-specific access rules
44
.. include:: ../../../_static/badges/entry-adv.rst
55
:start-after: :nosearch:
66

7-
Channel and Team Admins can self-manage access controls for their private channels directly through the Channel Settings modal, without requiring System Admin intervention. For organization-wide policies created by System Admins, see :doc:`System-wide attribute-based access policies </administration-guide/manage/admin/abac-system-wide-policies>`.
7+
Channel and Team Admins can self-manage access controls for their channels directly through the Channel Settings modal, without requiring System Admin intervention. For organization-wide policies created by System Admins, see :doc:`System-wide attribute-based access policies </administration-guide/manage/admin/abac-system-wide-policies>`.
88

9-
Each ABAC channel access policy has an explicit active state that determines whether the policy will automatically add users who meet the policy's criteria but are not yet channel members. When a policy is applied to a channel, the policy's rules are always enforced to remove members who no longer meet the required attribute rules, regardless of the active state.
9+
From Mattermost v11.8, channel access rules can be applied to **both private and public channels**. The two channel types behave differently under ABAC:
10+
11+
- **Private channels** are hard-gated. Non-matching members are removed during synchronization, and only matching users can be added or invited.
12+
- **Public channels** are advisory. Non-matching members are *never* removed (anyone can still join a public channel by browsing or via a direct link). With auto-add enabled the policy still pulls matching users in; with auto-add disabled the channel surfaces under **Browse Channels > Recommended channels** for users whose attributes match.
13+
14+
Each ABAC channel access policy has an explicit active state that determines whether the policy will automatically add users who meet the policy's criteria but are not yet channel members. For private channels, the policy's rules are always enforced to remove members who no longer meet the required attribute rules, regardless of the active state. For public channels, no member is ever removed by ABAC — the rules are advisory only.
1015

1116
With channel access rules, Channel and Team Admins can:
1217

1318
- Create channel-specific access rules using a simple interface.
1419
- Rules are **additive** to any system policies (both must be satisfied).
1520
- Automatic member synchronization with immediate feedback.
16-
- Self-exclusion prevention to avoid locking yourself out.
21+
- Self-exclusion prevention to avoid locking yourself out (private channels only).
1722

1823
Prerequisites
1924
-------------
2025

2126
- :doc:`Attribute-Based Access Control (ABAC) </administration-guide/manage/admin/attribute-based-access-control>` must be enabled by a System Admin in **System Console > System Attributes > Attribute-Based Access**.
2227
- You need Channel Admin permissions and the ``manage_channel_access_rules`` permission.
23-
- Channel access rules are available only for private channels.
28+
- Channel access rules are available for private and public channels. Default channels (such as Town Square and Off-Topic), shared channels, and group-synced channels remain ineligible.
2429

2530
Access Channel Settings
2631
~~~~~~~~~~~~~~~~~~~~~~~~
2732

28-
1. In a private channel where you have Channel Admin permissions, select the channel name at the top of the center pane.
33+
1. In a private or public channel where you have Channel Admin permissions, select the channel name at the top of the center pane.
2934
2. Select **Channel Settings** from the dropdown menu.
30-
3. Navigate to the **Access Control** tab. This tab is only visible for private channels when you have the appropriate permissions and ABAC is enabled system-wide.
35+
3. Navigate to the **Membership Policy** tab. This tab is only visible for eligible channels when you have the appropriate permissions and ABAC is enabled system-wide. The tab is hidden on default channels, shared channels, and group-synced channels.
3136

3237
.. tip::
3338

@@ -38,7 +43,7 @@ Configure access rules
3843

3944
Channel access rules use the same simple interface as system policies, allowing you to create attribute-based conditions without complex syntax.
4045

41-
1. In the **Access Control** tab, you'll see any inherited system policies at the top in a blue information banner (if applicable).
46+
1. In the **Membership Policy** tab, you'll see any inherited system policies at the top in a blue information banner (if applicable).
4247
2. Use the **Add attribute** button to create new access conditions:
4348

4449
- **Select attribute**: Choose from available user attributes
@@ -58,33 +63,42 @@ Channel access rules use the same simple interface as system policies, allowing
5863
Auto-sync membership
5964
~~~~~~~~~~~~~~~~~~~~
6065

61-
The **Auto-add members based on access rules** toggle controls automatic membership management. This setting ensures that channel membership stays consistently aligned with the defined attribute rules, similar to how LDAP group channels work:
66+
The **Auto-add members based on access rules** toggle controls automatic membership management. The behavior differs by channel type:
67+
68+
- **Private channels (hard gate)**: Membership stays consistently aligned with the rules, similar to how LDAP group channels work.
69+
70+
- **Enabled**: Users matching the rules are automatically added. If users temporarily lose attributes and later regain them, they will be automatically re-added.
71+
- **Disabled**: Rules act as a gate (preventing unauthorized joins) but don't automatically add qualifying users.
6272

63-
- **Enabled**: Users matching the rules are automatically added to the channel. If users temporarily lose attributes and later regain them, they will be automatically re-added
64-
- **Disabled**: Rules act as a gate (preventing unauthorized joins) but don't automatically add qualifying users
73+
- **Public channels (advisory)**: ABAC never removes members — anyone can still join a public channel.
74+
75+
- **Enabled**: Matching users are automatically added (a convenience, not a gate).
76+
- **Disabled**: The channel appears under **Browse Channels > Recommended channels** for users whose attributes match, surfacing the channel without adding anyone.
6577

6678
.. important::
6779

6880
- Auto-add/auto-sync is checked on a per-channel policy basis, not inherited from parent system-wide policies.
6981
- If a system policy has auto-sync enabled, Channel and Team Admins cannot disable it at the channel level.
7082
- If a system policy has auto-sync disabled, Channel and Team Admins can choose to enable it for their channel.
7183
- When no rules are configured, this toggle is automatically disabled.
72-
- Regardless of the auto-sync setting, users who no longer meet required attribute rules are always removed during synchronization.
84+
- On **private** channels, users who no longer meet required attribute rules are always removed during synchronization regardless of the auto-sync setting. On **public** channels, no member is ever removed by ABAC.
7385

7486
Validation and safety
7587
~~~~~~~~~~~~~~~~~~~~~
7688

7789
Before saving changes, Mattermost validates your rules to prevent common issues:
7890

79-
- **Required fields**: All attribute selections and values must be completed
80-
- **Self-exclusion prevention**: You cannot create rules that would remove yourself from the channel
81-
- **Conflict detection**: Rules that create impossible conditions are identified
91+
- **Required fields**: All attribute selections and values must be completed.
92+
- **Self-exclusion prevention**: For private channels, you cannot save rules that would remove yourself from the channel. The check is skipped for public channels because they are advisory under ABAC and can't lock anyone out.
93+
- **Conflict detection**: Rules that create impossible conditions are identified.
8294

8395
When you save changes that affect membership, a confirmation dialog shows you:
8496

85-
- How many users will be added or removed
86-
- Option to view the specific users affected
87-
- Confirmation required before applying changes
97+
- How many users will be added or removed.
98+
- Option to view the specific users affected.
99+
- Confirmation required before applying changes.
100+
101+
Once a policy is attached to a channel, the channel cannot be converted between public and private until the policy is removed. The two modes have different semantics (advisory vs. hard gate), so a silent conversion would change what an existing policy actually does to its members.
88102

89103
Policy inheritance
90104
--------------------
@@ -132,29 +146,39 @@ Visual indicators
132146

133147
**Channel Members panel:**
134148

135-
- Information banner at the top explains that attribute-based access is enabled.
149+
- Information banner at the top explains that attribute-based access is enabled. The wording differs by channel type: private channels say *"Channel access is restricted by user attributes"*; public channels say *"This channel has recommended members based on user attributes"*.
136150
- Displays required attribute values as tags (e.g., "Engineering", "Confidential").
137151
- Tooltip on hover shows the attribute name for each value.
138152

139153
**Add Members modal:**
140154

141155
- Similar information banner and attribute value display.
142-
- Users who don't match the access criteria won't appear in search results.
143-
- Only eligible users can be selected and added to the channel.
156+
- On **private** channels, users who don't match the access criteria won't appear in search results — only eligible users can be added.
157+
- On **public** channels, the full team list is shown and matching users are surfaced with a **Recommended** tag at the top of the list. Anyone can still be added because public-channel ABAC is advisory.
158+
159+
**Browse Channels:**
160+
161+
- A **Recommended channels** filter is available in the channel-type dropdown when ABAC is enabled. Selecting it lists the public channels whose policies the user matches — useful when auto-add is disabled and the channel is offered as a recommendation rather than auto-joined.
144162

145163
Functional restrictions
146164
~~~~~~~~~~~~~~~~~~~~~~~~
147165

148-
When ABAC is enabled for a channel:
166+
When ABAC is enabled for a **private** channel:
149167

150168
- **Search limitations**: Users who don't match access criteria don't appear in member search results.
151169
- **Invitation restrictions**: Only users meeting attribute requirements can be added to the channel.
152170
- **Guest user exclusions**: Private channels with ABAC policies cannot have guest users invited.
153171
- **Automatic removal**: Users who lose required attributes are automatically removed during the next synchronization.
154172

173+
When ABAC is enabled for a **public** channel:
174+
175+
- **Search results are unfiltered**: All eligible team members appear in the Add Members modal so admins can still invite anyone; matching users carry a **Recommended** tag.
176+
- **Recommendations**: With auto-add disabled, the channel surfaces under **Browse Channels > Recommended channels** for matching users.
177+
- **Auto-add (when enabled)**: Matching users are added automatically. **Members are never removed** by ABAC — users can always leave on their own, and joining freely is unaffected because the channel is public.
178+
155179
.. note::
156180

157-
These restrictions apply across all Mattermost clients, including web, desktop, and mobile, to ensure consistent security enforcement.
181+
These behaviors apply across all Mattermost clients, including web, desktop, and mobile, to ensure consistent enforcement.
158182

159183
Troubleshooting and FAQs
160184
---------------------------
@@ -164,15 +188,15 @@ Common questions about attribute-based access control implementation and usage.
164188
Permission and access
165189
~~~~~~~~~~~~~~~~~~~~~~
166190

167-
Why can't I see the Access Control tab in Channel Settings?
168-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
191+
Why can't I see the Membership Policy tab in Channel Settings?
192+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
169193

170-
The **Access Control** tab is only visible when all of these conditions are met:
194+
The **Membership Policy** tab is only visible when all of these conditions are met:
171195

172-
- You have Channel Admin role or higher for the channel
173-
- The channel is a private channel (not public, group message, or direct message)
174-
- ABAC is enabled system-wide by a System Admin in **System Console > System Attributes > Attribute-Based Access**
175-
- Your user role includes the ``manage_channel_access_rules`` permission
196+
- You have Channel Admin role or higher for the channel.
197+
- The channel is a private or public channel (not a default channel like Town Square or Off-Topic, group message, direct message, shared, or group-synced channel).
198+
- ABAC is enabled system-wide by a System Admin in **System Console > System Attributes > Attribute-Based Access**.
199+
- Your user role includes the ``manage_channel_access_rules`` permission.
176200

177201
Can Channel and Team Admins override system policies?
178202
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -182,7 +206,14 @@ No. Channel rules are always **additive** to system policies. Users must satisfy
182206
What happens if I create rules that would exclude myself?
183207
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
184208

185-
Mattermost prevents this with self-exclusion validation. If your rules would remove you from the channel, you'll see an error message and cannot save the changes until you adjust the rules or reset them.
209+
For **private** channels, Mattermost prevents this with self-exclusion validation. If your rules would remove you from the channel, you'll see an error message and cannot save the changes until you adjust the rules or reset them.
210+
211+
For **public** channels, the self-exclusion check is skipped — public-channel ABAC is advisory, the policy can't kick anyone out, and you can always re-join a public channel directly. This lets you author a policy intended for a different team (for example, a Sales admin configuring an Engineering recommendation) without being blocked.
212+
213+
Can I convert a public channel to private (or vice versa) while a policy is attached?
214+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
215+
216+
No. The two modes have different semantics — a public-channel policy is advisory while a private-channel policy is a hard gate that removes non-matching members. A silent conversion would change what the existing policy does to its members, so Mattermost requires you to remove the policy first, convert the channel, and re-attach the policy if you still want it.
186217

187218
Rule configuration
188219
~~~~~~~~~~~~~~~~~~~

source/administration-guide/manage/admin/abac-system-wide-policies.rst

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,23 @@ Manage rules
7272

7373
You can apply changes to existing rules or remove rules at any time using either Simple Mode or Advanced Mode. Select **Save** to save your changes.
7474

75-
Assign policies to private channels
76-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75+
Assign policies to channels
76+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
7777

78-
Specify the private channel that your access control policy applies to by selecting **Add channels** to search for and select the channels you want. You can assign the policy to multiple channels at once, or you can `assign it to individual channels <#define-access-controls-per-channel>`__ later. Select **Save** to save your changes.
78+
From Mattermost v11.8, parent policies can be assigned to **both private and public channels**. Select **Add channels** to search for and select the channels you want. You can assign the policy to multiple channels at once, or you can `assign it to individual channels <#define-access-controls-per-channel>`__ later. Select **Save** to save your changes.
79+
80+
The two channel types behave differently under the same policy:
81+
82+
- **Private channels** are hard-gated. The policy adds matching users (when auto-add is enabled), removes non-matching members at sync time, and prevents non-matching users from being added or invited.
83+
- **Public channels** are advisory. The policy never removes members and never blocks anyone from joining. With auto-add enabled it pulls matching users in; with auto-add disabled the channel appears under **Browse Channels > Recommended channels** for matching users.
84+
85+
The save confirmation dialog explicitly calls out the channel mix and the consequences for each type so the impact of the save is clear before you commit.
86+
87+
Default channels (such as Town Square and Off-Topic), shared channels, and group-synced channels remain ineligible — they are excluded from the channel selector.
7988

8089
.. note::
8190

82-
Private channels with attribute-based access control policies can't have guest users invited to them. Only users who match the defined attribute criteria can be added to ABAC-controlled channels, ensuring strict adherence to access control policies.
91+
Private channels with attribute-based access control policies can't have guest users invited to them. Only users who match the defined attribute criteria can be added to ABAC-controlled private channels, ensuring strict adherence to access control policies. Public channels remain joinable by anyone regardless of the policy.
8392

8493
Delete policies
8594
~~~~~~~~~~~~~~~
@@ -89,12 +98,14 @@ To delete a policy, select the **Delete** button next to the policy you want to
8998
Define access controls per channel
9099
----------------------------------
91100

92-
You can assign an existing access control policy to a private channels for more granular control over channel membership. This is useful when you need to apply different rules for different channels.
101+
You can assign an existing access control policy to a private or public channel for more granular control over channel membership. This is useful when you need to apply different rules for different channels.
93102

94-
1. In the System Console, go to **User Management > Channels** to select the private channel you want to configure, and select **Edit**.
103+
1. In the System Console, go to **User Management > Channels** to select the private or public channel you want to configure, and select **Edit**.
95104
2. In the **Channel Management** section, enable the **Enable attribute-based channel access** option.
96105
3. Under **Access policy**, select **Link to a policy** to select an existing policy.
97106

107+
Once a policy is attached, the channel's privacy can no longer be flipped between public and private until the policy is removed — see :ref:`Channel-specific access rules <administration-guide/manage/admin/abac-channel-access-rules:validation and safety>`.
108+
98109
.. tip::
99110

100111
You can also assign ABAC rules to a channel directly from a channel's details page in the System Console under **Channel Management** by enabling the **Enable attribute-based channel access** option. Under **Access policy**, select **Link to a policy** to select an existing policy.

source/administration-guide/manage/admin/attribute-based-access-control.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ Attribute-based access control (ABAC) provides 2 levels of control:
2121
- **System-wide policies** (managed by System Admins): Centralized policies that can be applied across multiple channels in the System Console. See :doc:`System-wide attribute-based access policies </administration-guide/manage/admin/abac-system-wide-policies>`.
2222
- **Channel-specific rules** (managed by Channel Admins): Self-service access rules that Channel Admins can configure directly in Channel Settings for individual channels. See :doc:`Channel-specific access rules </administration-guide/manage/admin/abac-channel-access-rules>`.
2323

24+
From Mattermost v11.8, ABAC policies can be applied to **both private and public channels**, with deliberately different semantics for each:
25+
26+
- **Private channels** are hard-gated by the policy. Non-matching members are removed during synchronization and only matching users can be added or invited.
27+
- **Public channels** are advisory. Anyone can still join freely, no member is ever removed by ABAC, and the policy is used either to **auto-add** matching users (when enabled) or to **recommend** the channel under **Browse Channels > Recommended channels** (when auto-add is disabled).
28+
29+
Default channels (Town Square, Off-Topic), shared channels, and group-synced channels remain ineligible.
30+
2431
Before you begin
2532
------------------
2633

0 commit comments

Comments
 (0)