Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Keycloak Admin Laravel Package

overtrue/laravel-keycloak-admin

Laravel wrapper for the Keycloak Admin REST API. Manage Keycloak users, roles, groups, and clients from your Laravel app with a fluent, configurable client—ideal for syncing accounts, assigning permissions, and automating identity workflows.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on identity: This package is the "buy-ish" middle path — you self-host Keycloak (open source, no per-MAU fees) and use a thin Laravel wrapper instead of hand-rolling Admin REST API calls. It makes "own our identity layer on Keycloak" a credible roadmap option rather than a multi-sprint integration project.
  • Enterprise/B2B readiness: Keycloak's realm model plus admin-side user/role/group provisioning is what unblocks SSO, SCIM-adjacent provisioning, and per-tenant isolation asks that show up in enterprise deals. This package is the Laravel-side enabler for those commitments.
  • Admin and back-office tooling: Supports internal features like creating/offboarding users, assigning roles and groups, managing clients and realm settings from within your own Laravel admin panel — often cheaper than buying a separate IdP admin UI.
  • Multi-tenant architecture decisions: Realm-per-tenant (or group-per-tenant) strategies are directly expressible through the admin API, which shapes pricing tiers, onboarding flows, and data-isolation claims.
  • Roadmap sequencing for framework upgrades: Release 1.0.3 adds Laravel 13 support, which is the decision-relevant signal here — adopting this package no longer pins the platform to Laravel 12. That keeps an identity workstream from becoming a blocker on the framework upgrade roadmap.
  • Sizing the identity workstream: Because the package is a thin client, effort estimation should assume "integration + Keycloak operations," not "auth system build." That reframes the cost line in planning from engineering-heavy to ops-and-config-heavy.
  • Release 1.0.3 specifics: one feature (Laravel 13 compatibility) plus dev-dependency bumps (psysh, symfony/process, symfony/http-foundation, league/commonmark) that affect the test/tooling surface, not runtime auth behavior. No breaking changes and no deprecations — a low-risk patch upgrade, not a reason to re-scope work.

When to Consider This Package

Consider it when:

  • Keycloak is already the chosen IdP, or is the leading candidate. The package adds value only on top of that decision; it does not help you evaluate Keycloak itself.
  • You need admin-plane operations, not just login. User creation, role/group assignment, client and realm management, session handling. For plain OIDC/SAML login, a guard/socialite-style package is the lighter fit.
  • The stack is Laravel and staying there. Laravel 13 support in 1.0.3 makes it viable for teams on the current or next framework version; verify your pinned Laravel version against the package's constraint before committing.
  • Your team can operate Keycloak. Someone must own realm design, upgrades, backups, and HA. The package removes HTTP boilerplate, not operational burden.
  • You want to keep identity self-hosted for data residency, cost, or vendor-independence reasons.
  • You can absorb single-maintainer risk. Wrap it behind your own interface/adapter, pin versions, and keep a direct-HTTP fallback for endpoints it doesn't expose.

Look elsewhere when:

  • You want a managed identity vendor with an SLA — Okta, Auth0, WorkOS, Cognito, Entra. This package is the opposite trade: control and low marginal cost in exchange for ops ownership.
  • You need contractual support or a large maintainer base. This is a single-maintainer open-source project with a small release cadence; the 1.0.3 changelog is dominated by Dependabot bumps.
  • You need guaranteed API stability. It is pre-2.0 (1.x); treat minor releases as potentially containing surface changes and pin exact versions.
  • Your identity needs are shallow. One social login or one SSO button doesn't justify standing up Keycloak plus an admin client.
  • You're not on Laravel/PHP, or you need coverage of Keycloak features the wrapper doesn't surface — in that case use a generic Keycloak admin client or call the REST API directly.

How to Pitch It (Stakeholders)

For executives: This is a small, low-cost open-source connector that lets our Laravel product use Keycloak — a mature, self-hosted identity system — for SSO, user provisioning, and role management. The strategic point is cost and control: we avoid per-user identity SaaS fees that scale with growth, and we keep customer identity data in our own infrastructure, which helps with enterprise security reviews and data-residency questions. The new 1.0.3 release adds Laravel 13 support, so this path doesn't hold back our framework upgrade. The trade-off we're accepting is that we operate Keycloak ourselves and depend on a single-maintainer library — we mitigate that by isolating it behind our own adapter, pinning versions, and budgeting a small amount of ongoing ops ownership.

For engineering: It's a thin wrapper over the Keycloak Admin REST API — configuration, a client binding, and resource helpers. 1.0.3 is a low-risk upgrade: Laravel 13 compatibility plus dev-dependency bumps (psysh, symfony/process, symfony/http-foundation, league/commonmark), no breaking changes, no deprecations, no runtime behavior changes. Adoption guidance: pin the exact version, keep it behind a narrow internal interface so it can be swapped for direct HTTP calls or an alternative client, use it for admin-plane operations only (keep request-path auth in a dedicated guard/middleware), and budget explicitly for Keycloak operations — realm topology, upgrades, backups, HA — since the package does not reduce that work. Verify the Laravel version constraint against our target before we commit to the upgrade sequencing.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core