OfficialSPIProvisioning (SCIM)Active
keycloak-scim-server
Metatavu/keycloak-scim-server ↗
SCIM server implemented as a Keycloak extension.KeycloakにSCIMサーバーを追加する拡張
- ★
- 95
- Forks
- 37
- Contributors
- 13
- Updated
- 2026-10-07
- KC
- —
- License
- Apache-2.0
What it can doできること6
- Turn Keycloak into a SCIM 2.0 server so IdPs can provision users and groups into it (
/realms/{realm}/scim/v2).KeycloakをSCIM 2.0サーバーにして、外部IdPからユーザーとグループをプロビジョニングできる(/realms/{realm}/scim/v2) - Provide per-organization SCIM endpoints on Keycloak 26+ with Organizations enabled.Organizationsを有効にしたKeycloak 26以上では、組織単位のSCIMエンドポイントも使える
- Authenticate SCIM clients with Keycloak tokens, external JWTs (JWKS), a shared bearer secret or basic auth; configure per instance, realm or organization.SCIMクライアントの認証は、Keycloakのトークン、外部JWT(JWKS)、共有シークレットのBearer、Basic認証から選べる。設定はインスタンス・realm・組織の単位で可能
- Includes setup guides for Microsoft Entra ID and Okta, and can link provisioned users to an IdP (e.g. Entra
oid).Microsoft Entra IDとOktaの設定ガイドがあり、プロビジョニングしたユーザーをIdP(Entraのoidなど)にリンクできる - Handle large groups efficiently (
204on group PATCH,excludedAttributes=memberson reads).大規模グループも効率よく扱える(グループのPATCHは204を返し、読み取りはexcludedAttributes=membersに対応) - Provision custom attributes through user-profile unmanaged attributes and IdP mappers.ユーザープロファイルのunmanaged属性とIdPマッパーで、独自属性もプロビジョニングできる
What it cannot do / limitsできないこと・制約5
- It receives provisioning (Keycloak as SCIM server); it does not push users from Keycloak to other systems.プロビジョニングを受ける側(KeycloakがSCIMサーバー)であり、Keycloakから他システムへユーザーを送り出すことはしない
- Only users with the
scim-managedrole are visible or modifiable through SCIM.SCIMから見える・変更できるのはscim-managedロールを持つユーザーだけ - Without
SCIM_AUTHENTICATION_MODEevery request is rejected; organization-level endpoints only supportEXTERNALauthentication.SCIM_AUTHENTICATION_MODEを設定しないと全リクエストが拒否される。組織単位のエンドポイントはEXTERNAL認証のみ - Only built-in attributes are exposed by default (userName, email, given/family name, active).標準で公開されるのは組み込み属性(userName、email、姓名、active)のみ
- Each plugin version targets a specific Keycloak minor (e.g. 1.7.0 → 26.6.x); 1.8.0 changes group PATCH responses (breaking).プラグインのバージョンごとに対応Keycloakが決まっている(例:1.7.0 → 26.6.x)。1.8.0ではグループPATCHの応答が変わる(破壊的変更)
Requirements前提条件
- Copy the JAR to the providers directory and restart; Java 21 to build from source.JARをprovidersディレクトリに置いて再起動。ソースからビルドするならJava 21
- For Entra ID linking: an
externalIduser-profile attribute and an IdP mapper that uses theoidclaim as broker ID.Entra IDとのリンクには、ユーザープロファイルのexternalId属性と、oidをブローカーIDに使うIdPマッパーが必要