PHPackages                             nawasara/keycloak - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. nawasara/keycloak

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

nawasara/keycloak
=================

Keycloak SSO admin dashboard for Nawasara — manage users and clients with DB-cached snapshots and queue-backed mutations.

v0.1.3(2w ago)044MITPHPPHP ^8.1

Since May 7Pushed 2w agoCompare

[ Source](https://github.com/nawasara/keycloak)[ Packagist](https://packagist.org/packages/nawasara/keycloak)[ RSS](/packages/nawasara-keycloak/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (5)Used By (0)

Nawasara Keycloak
=================

[](#nawasara-keycloak)

Keycloak SSO admin dashboard for the Nawasara superapp framework. Manage users and clients without leaving Nawasara, backed by local DB snapshots for speed and queue jobs for write auditability.

Features
--------

[](#features)

- **Users** — list, search, view detail (sessions, roles, attributes), enable/disable, and reset password
- **Clients** — list, search, create, edit, and delete client applications; reveal and regenerate client secret on demand
- **DB-cached + queue pattern** — list pages read from `nawasara_keycloak_users` / `nawasara_keycloak_clients` snapshots; mutations dispatch through queue jobs that update Keycloak and the local snapshot atomically with content-hash conflict detection
- **Sync info bar** — shows last successful sync time, pending mutations, and a link to the audit log
- **Test connection** — Vault credential page exposes a one-click test that obtains an admin token and queries `/users/count` to confirm realm reachability and admin-API access

Installation
------------

[](#installation)

```
composer require nawasara/keycloak
php artisan migrate
php artisan db:seed --class="Nawasara\Keycloak\Database\Seeders\PermissionSeeder" --force
```

Auto-discovered by Laravel.

Keycloak setup
--------------

[](#keycloak-setup)

The package authenticates to Keycloak via the **client credentials** flow with a confidential client that has admin privileges on the target realm.

1. In the Keycloak admin console, open the realm you want to manage.
2. **Clients → Create client**:
    - Client type: `OpenID Connect`
    - Client ID: e.g. `nawasara-admin`
    - Client authentication: `On`
    - Authentication flow: tick `Service accounts roles` only
3. After creation, open the new client → **Service Account Roles** tab → Assign role:
    - `realm-management` → grant `manage-users`, `manage-clients`, `view-users`, `view-clients`, `view-realm`, `view-events` (and any others you need)
4. Open the **Credentials** tab and copy the client secret.

Storing credentials in Vault
----------------------------

[](#storing-credentials-in-vault)

1. Open Nawasara → `/nawasara-vault`
2. Select the **Keycloak SSO** group
3. Fill in:
    - **Base URL** — e.g. `https://sso.kominfo.go.id`
    - **Realm** — the realm you grant admin access to (e.g. `master`, `kominfo`)
    - **Client ID** — from step 2 above
    - **Client Secret** — from step 4 above
4. Save

Click **Test Connection** in the credential dropdown to verify. A successful test reports the realm's user count.

Pages
-----

[](#pages)

RoutePermission`/nawasara-keycloak/users``keycloak.user.view``/nawasara-keycloak/clients``keycloak.client.view``/nawasara-keycloak/sessions``keycloak.session.view`Permissions
-----------

[](#permissions)

PermissionDescription`keycloak.user.view`View user list and detail`keycloak.user.manage`Toggle enable/disable, reset password`keycloak.user.reset_password`Reset a user's password`keycloak.client.view`View client list and detail`keycloak.client.manage`Create / edit / delete client, regenerate secret`keycloak.client.reveal_secret`Reveal client secret`keycloak.session.view`View active sessions`keycloak.session.revoke`Revoke a sessionAuthor
------

[](#author)

**Pringgo J. Saputro** &lt;&gt;

License
-------

[](#license)

MIT

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance96

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

4

Last Release

20d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16914951?v=4)[Pringgo J. Saputro](/maintainers/pringgojs)[@pringgojs](https://github.com/pringgojs)

![](https://www.gravatar.com/avatar/edcf770bde3babcc9fa554e305e361b8614c1e505470e75842de75ea3e502548?d=identicon)[nawasara](/maintainers/nawasara)

---

Top Contributors

[![pringgojs](https://avatars.githubusercontent.com/u/16914951?v=4)](https://github.com/pringgojs "pringgojs (24 commits)")

---

Tags

laravelSSOUser managementkeycloakoidciamNawasara

### Embed Badge

![Health badge](/badges/nawasara-keycloak/health.svg)

```
[![Health](https://phpackages.com/badges/nawasara-keycloak/health.svg)](https://phpackages.com/packages/nawasara-keycloak)
```

###  Alternatives

[venturedrake/laravel-crm

A free open source CRM built as a package for laravel projects

39910.0k](/packages/venturedrake-laravel-crm)[nasirkhan/laravel-starter

A CMS like modular Laravel starter project.

1.4k2.7k](/packages/nasirkhan-laravel-starter)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.2k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
