Skip to content

Commit 34c91b5

Browse files
authored
OIDC Group Sync (#403)
* OIDC Group Sync * added images and changed title
1 parent 367489b commit 34c91b5

File tree

2 files changed

+96
-0
lines changed

2 files changed

+96
-0
lines changed

docs/authentication/group-sync.mdx

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
title: Manage project access with IdP groups
3+
sidebar_label: Group Sync
4+
hide_title: true
5+
description: Automatically provision project memberships based on identity provider groups.
6+
---
7+
8+
import Tags from "@site/src/components/Tags";
9+
10+
<div className="tag-wrapper">
11+
<h1>Group syncing</h1>
12+
<Tags tags={[{ name: "Enterprise", link: "https://plane.so/pricing", additionalClass: "enterprise" }]} />
13+
</div>
14+
15+
:::info
16+
Group syncing is currently available on the self-hosted Commercial Edition and supports OIDC only. SAML and LDAP support is coming soon.
17+
:::
18+
19+
Group syncing lets workspace admins map identity provider groups to Plane projects. When users sign in via OIDC, their project memberships are provisioned and kept in sync automatically.
20+
21+
## Prerequisites
22+
23+
- OIDC SSO configured and working
24+
- Identity provider configured to send group claims in the OIDC token
25+
26+
## Turn on group syncing
27+
28+
1. Navigate to **Workspace Settings → Group syncing**.
29+
2. Toggle on **Enable group syncing**.
30+
31+
![Group syncing](https://media.docs.plane.so/sso/enable-group-sync.webp#hero)
32+
33+
## Configure sync settings
34+
35+
| Setting | Description | Default |
36+
|---------|-------------|---------|
37+
| **Sync on login** | Update group membership and project access when a user signs in | Enabled (recommended) |
38+
| **Offline sync** | Run sync automatically every six hours, without waiting for users to log in | Disabled |
39+
| **Auto remove** | Automatically remove users from projects when they no longer match the group | Disabled |
40+
| **Group attribute key** | The identity provider attribute used to identify and sync user groups | `groups` |
41+
42+
Set **Group attribute key** to match exactly what your IdP sends. Common values include `groups` (default), `roles`, `memberOf`, or `custom:groups`.
43+
44+
## Add group mappings
45+
46+
Each mapping links an IdP group to a Plane project with a default role.
47+
48+
1. Under **Group mapping**, click **Add new group sync**.
49+
2. Enter the **User group** name exactly as it appears in your IdP.
50+
3. Select the **Project** to grant access to.
51+
4. Choose the **Project role**: Admin, Member, or Guest.
52+
5. Click **Add**.
53+
54+
![Add new group sync](https://media.docs.plane.so/sso/add-new-group-sync.webp#hero)
55+
56+
Repeat for additional group-to-project mappings.
57+
58+
## What happens on login
59+
60+
| Condition | Result |
61+
|-----------|--------|
62+
| User not in workspace, but in a mapped group | Added to workspace as Member, then added to mapped project(s) |
63+
| User in workspace, in mapped group, not yet in project | Added to project with configured role |
64+
| User in workspace, in mapped group, already in project | No change |
65+
| User in workspace, not in any mapped group | No action |
66+
67+
## When users leave IdP groups
68+
69+
If a user is removed from an IdP group and **Auto remove** is enabled, they're removed from the corresponding project. They are never removed from the workspace.
70+
71+
**These users are never auto-removed**
72+
- Users who were manually added to the project
73+
- Users who are the sole project admin
74+
75+
## Sync behavior
76+
77+
- Users in multiple groups mapped to the same project receive the highest role across all matching groups.
78+
- Roles assigned manually in Plane are never downgraded by group syncing.
79+
- Workspace guests cannot be assigned as project admins, regardless of group mapping.
80+
- Members manually invited to the project are never auto-removed.
81+
- Workspace membership is always preserved.
82+
- Sole project admins are protected from removal.
83+
- Sync errors never block user login.
84+
85+
## Common usecases
86+
87+
**New hire provisioning**
88+
Map your `engineering` group to all engineering projects. New engineers get access on first login without admin intervention.
89+
90+
**Department scoping**
91+
Map `product-team`, `design-team`, and `marketing-team` to their respective projects. Users only see what's relevant to them.
92+
93+
**Contractor offboarding**
94+
Map `contractors` to projects with Guest role and enable Auto remove. Access is revoked the moment they're removed from the IdP group.

sidebars.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,13 @@ const sidebars: SidebarsConfig = {
6868
label: "Authentication",
6969
items: [
7070
"authentication/sso",
71+
"authentication/group-sync",
7172
{
7273
type: 'link',
7374
label: 'Self-hosted authentication',
7475
href: 'https://developers.plane.so/self-hosting/govern/authentication',
7576
},
77+
7678
],
7779
},
7880
{

0 commit comments

Comments
 (0)