🚀 Feature: SCIM Provisioning #160

Open
opened 2025-10-07 00:04:13 +03:00 by OVERLORD · 9 comments
Owner

Originally created by @HeyITGuyFixIt on GitHub.

Feature description

Please add support for SCIM (System for Cross-domain Identity Management) provisioning. Specifically SCIM version 2.

Pitch

In my use case, Pocket ID users can access sites protected by Cloudflare's Zero Trust Access, via the Generic OIDC feature in Zero Trust. This feature supports SCIM version 2, which allows user and group changes made in the OIDC provider to synchronize with Zero Trust.

A couple links to documentation:

Originally created by @HeyITGuyFixIt on GitHub. ### Feature description Please add support for SCIM (System for Cross-domain Identity Management) provisioning. Specifically SCIM version 2. ### Pitch In my use case, Pocket ID users can access sites protected by Cloudflare's Zero Trust Access, via the Generic OIDC feature in Zero Trust. This feature supports SCIM version 2, which allows user and group changes made in the OIDC provider to synchronize with Zero Trust. A couple links to documentation: - https://developers.cloudflare.com/cloudflare-one/identity/users/scim/ - https://developers.cloudflare.com/cloudflare-one/identity/idp-integration/generic-oidc/#synchronize-users-and-groups
OVERLORD added the open to pull requests label 2025-10-07 00:04:13 +03:00
Author
Owner

@HeyITGuyFixIt commented on GitHub:

Yeah I think that's the gist of how it should work. Basically automate account management across compatible cloud services.

Currently, the availability of SCIM tends to be limited to enterprise plans (i.e. GitLab, Bitwarden). I would hope that if some of the open source, self hosted identity providers support SCIM, more service providers will also support it like many do with OIDC.

@HeyITGuyFixIt commented on GitHub: Yeah I think that's the gist of how it should work. Basically automate account management across compatible cloud services. Currently, the availability of SCIM tends to be limited to enterprise plans (i.e. GitLab, Bitwarden). I would hope that if some of the open source, self hosted identity providers support SCIM, more service providers will also support it like many do with OIDC.
Author
Owner

@kmendell commented on GitHub:

SCIM is a "whole different spec" in itself, and is kind of a enterprise based feature, but if @stonith404 sees some value, we could think about implementing it.

@kmendell commented on GitHub: SCIM is a "whole different spec" in itself, and is kind of a enterprise based feature, but if @stonith404 sees some value, we could think about implementing it.
Author
Owner

@HeyITGuyFixIt commented on GitHub:

I'm looking into additional potential uses cases. SCIM support can be added to NextCloud with the SCIM Service Provider app.

@HeyITGuyFixIt commented on GitHub: I'm looking into additional potential uses cases. SCIM support can be added to NextCloud with the [SCIM Service Provider](https://apps.nextcloud.com/apps/scimserviceprovider) app.
Author
Owner

@stonith404 commented on GitHub:

I’m not really sure I understand the full purpose of SCIM, but from what I understand, it allows user information to be updated in the background without requiring the user to sign in again.

For example, if a Pocket ID account is deleted, the current session would be invalidated automatically?

And if a user updates their name, that change would be reflected immediately, even if they haven’t signed out and back in?

@stonith404 commented on GitHub: I’m not really sure I understand the full purpose of SCIM, but from what I understand, it allows user information to be updated in the background without requiring the user to sign in again. For example, if a Pocket ID account is deleted, the current session would be invalidated automatically? And if a user updates their name, that change would be reflected immediately, even if they haven’t signed out and back in?
Author
Owner

@HeyITGuyFixIt commented on GitHub:

For what it's worth, it looks like Authentik already supports it. And there is a discussion on Authelia to add support for it. I've also seen a few extensions created that add SCIM support to Keycloak.

@HeyITGuyFixIt commented on GitHub: For what it's worth, it looks like Authentik already [supports](https://docs.goauthentik.io/docs/add-secure-apps/providers/scim/) it. And there is a [discussion](https://github.com/authelia/authelia/discussions/4620) on Authelia to add support for it. I've also seen a few extensions created that add SCIM support to Keycloak.
Author
Owner

@bannmann commented on GitHub:

Another use case: Tailscale exclusively uses SCIM to pull group membership info.

So if I want to use groups for access rules in my tailnet, right now I would have to set up the groups and their members entirely inside the tailnet policy file.

If Pocket ID supported SCIM, I could define the groups centrally (or pull them via LDAP) and use them across Tailscale and other apps.

@bannmann commented on GitHub: Another use case: Tailscale exclusively [uses SCIM to pull group membership info](https://tailscale.com/kb/1290/user-group-provisioning#syncing-group-membership). So if I want to use groups for access rules in my tailnet, right now I would have to set up the groups and their members entirely inside the tailnet policy file. If Pocket ID supported SCIM, I could define the groups centrally (or pull them via LDAP) and use them across Tailscale and other apps.
Author
Owner

@derekschartung commented on GitHub:

Agreed. SCIM provisioning from various IdPs would be a welcome feature.

@derekschartung commented on GitHub: Agreed. SCIM provisioning from various IdPs would be a welcome feature.
Author
Owner

@kmendell commented on GitHub:

This is a big feature to implement, as it would require the full SCIM Server implmentation, ill look again at it once we get all caught up on PR's.

@kmendell commented on GitHub: This is a big feature to implement, as it would require the full SCIM Server implmentation, ill look again at it once we get all caught up on PR's.
Author
Owner

@ben-kuhn commented on GitHub:

@stonith404 That's exactly correct.

For me the biggest use case is "leavers" in an organization. Many apps and SaaS solutions will use very long sessions. If a user has signed in to the SmartSheet app on a personal device (using this as an example since I've seen it many times) and they leave the organization, they retain access to organization data until someone removes their account in SmartSheet even if their access from the IdP is immediately revoked. IMO SCIM is the nicest way to do this as it's a single step and doesn't require additional tooling other than the IdP.

@ben-kuhn commented on GitHub: @stonith404 That's exactly correct. For me the biggest use case is "leavers" in an organization. Many apps and SaaS solutions will use very long sessions. If a user has signed in to the SmartSheet app on a personal device (using this as an example since I've seen it many times) and they leave the organization, they retain access to organization data until someone removes their account in SmartSheet even if their access from the IdP is immediately revoked. IMO SCIM is the nicest way to do this as it's a single step and doesn't require additional tooling other than the IdP.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pocket-id#160