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 (204 on group PATCH, excludedAttributes=members on 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-managed role are visible or modifiable through SCIM.SCIMから見える・変更できるのは scim-managed ロールを持つユーザーだけ
  • Without SCIM_AUTHENTICATION_MODE every request is rejected; organization-level endpoints only support EXTERNAL authentication.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前提条件