![gcp-cherry-pick-bot[bot]](/assets/img/avatar_default.png)
website/docs: update preview status of different features (#11817) * remove preview from RAC * add preview page instead of info box * remove preview from rbac * add preview to gdtc * add preview to kerberos source --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: Jens L. <jens@goauthentik.io>
77 lines
2.6 KiB
Markdown
77 lines
2.6 KiB
Markdown
---
|
|
title: SCIM Source
|
|
---
|
|
|
|
<span class="badge badge--preview">Preview</span>
|
|
|
|
---
|
|
|
|
The SCIM source allows other applications to directly create users and groups within authentik. SCIM provides predefined schema for users and groups, with a RESTful API, to enable automatic user provisioning and deprovisioning, SCIM is supported by applications such as Microsoft Entra ID, Google Workspace, and Okta.
|
|
|
|
The base SCIM URL is in the format of `https://authentik.company/source/scim/<source-slug>/v2`. Authentication is done via Bearer tokens that are generated by authentik. When an SCIM source is created, a service account is created and a matching token is provided.
|
|
|
|
## First steps
|
|
|
|
To set up an SCIM source, log in as an administrator into authentik. Navigate to **Directory->Federation & Social login**, and click on **Create**. Select the **SCIM Source** type in the wizard, and give the source a name.
|
|
|
|
After the source is created, click on the name of the source in the list, and you will see the **SCIM Base URL** which is used by the SCIM client. Use the **Click to copy token** button to copy the token which is used by the client to authenticate SCIM requests.
|
|
|
|
## Supported Options & Resource types
|
|
|
|
### `/v2/Users`
|
|
|
|
Endpoint to list, create, update and delete users.
|
|
|
|
### `/v2/Groups`
|
|
|
|
Endpoint to list, create, update and delete groups.
|
|
|
|
There is also the `/v2/ServiceProviderConfig` and `/v2/ResourceTypes`, which is used by SCIM-enabled applications to find out which features authentik supports.
|
|
|
|
## SCIM source property mappings
|
|
|
|
See the [overview](../../property-mappings/index.md) for information on how property mappings work.
|
|
|
|
### Expression data
|
|
|
|
Each top level SCIM attribute is available as a variable in the expression. For example given an SCIM request with the payload of
|
|
|
|
```json
|
|
{
|
|
"schemas": [
|
|
"urn:scim:schemas:core:2.0",
|
|
"urn:scim:schemas:extension:enterprise:2.0"
|
|
],
|
|
"userName": "foo.bar",
|
|
"name": {
|
|
"familyName": "bar",
|
|
"givenName": "foo",
|
|
"formatted": "foo.bar"
|
|
},
|
|
"emails": [
|
|
{
|
|
"value": "foo.bar@authentik.company",
|
|
"type": "work",
|
|
"primary": true
|
|
}
|
|
],
|
|
"title": "",
|
|
"urn:scim:schemas:extension:enterprise:2.0": {
|
|
"department": ""
|
|
}
|
|
}
|
|
```
|
|
|
|
The following variables are available in the expression:
|
|
|
|
- `schemas` as a list of strings
|
|
- `userName` as a string
|
|
- `name` as a dictionary
|
|
- `emails` as a dictionary
|
|
- `title` as a string
|
|
- `urn_scim_schemas_extension_enterprise_2_0` as a dictionary
|
|
|
|
:::info
|
|
Top-level keys which include symbols not allowed in python syntax are converted to `_`.
|
|
:::
|