# SCIM Plugin

**URL:** https://meta.discourse.org/t/scim-plugin/336743
**Category:** Plugin
**Created:** [November 18, 2024, 3:16pm UTC](https://meta.discourse.org/t/scim-plugin/336743 "2024-11-18T15:16:22Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![pbouda](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pbouda/32/449990_2.png) [@pbouda](https://meta.discourse.org/u/pbouda)
#### Post date: [November 18, 2024, 3:16pm UTC](https://meta.discourse.org/t/scim-plugin/336743/1 "2024-11-18T15:16:22Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **Summary** | Add SCIM service provider endpoints |
| 🛠 | **Repository Link** | [https://forge.libre.sh/libre.sh/discourse-scim](https://forge.libre.sh/libre.sh/discourse-scim) |
| 📖 | **Install Guide** | [How to install plugins in Discourse](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

  

### Features

A plugin that adds SCIM endpoints to Discourse. SCIM is a standard proposed by the IETF through [RFC7644](https://www.rfc-editor.org/rfc/rfc7644) and [RFC7643](https://www.rfc-editor.org/rfc/rfc7643) which aims to provide solution for user/group management through a simple Rest API.

In addition to any existing SSO and centralized account creation SCIM has the following advantages:

- assign users to groups;
- change user information immediately in several apps;
- delete the user when they are removed from the SSO;
- get the list of users or groups in a standard way;
- …

We tested this plugin with the [keycloak SCIM plugin](https://forge.libre.sh/libre.sh/keycloak-scim) and the [authentik SCIM provider](https://docs.goauthentik.io/docs/add-secure-apps/providers/scim/) as clients. The idea is that you can add/edit users in keycloak or authentik and the changes are automatically reflected in Discourse.

### Configuration

To query the SCIM endpoints you have to create an API key first. You can have a global API key for all users or a granular (scoped) API key for all users as described here: [Create and configure an API key](https://meta.discourse.org/t/create-and-configure-an-api-key/230124)

Please use the scope `scim`. Currently you have to allow access to all endpoints together.

Then to query all users with curl for example:

```plaintext
$ curl -H 'Authorization: Bearer <your_api_key>' -H 'Content-Type: application/scim+json' -v http://localhost:4200/scim_v2/Users

```
