felipe.devops / laravel-keycloak-admin
Keycloak Admin Rest API for Laravel/Lumen
Requires
- guzzlehttp/guzzle: ^7.0
README
这是一个来自 https://github.com/Mnikoei/laravel-keycloak-admin 的分支仓库
原始工作归功于 Mnikoei。
替代方案
由 Scito 创建的 Keycloak Admin 库。 https://gitlab.com/scito-performance/keycloak-admin
支持
安装
composer require haizad/laravel-keycloak-admin
使用发布命令将包配置复制到您的本地配置
Laravel 仅限
php artisan vendor:publish --provider="LaravelKeycloakAdmin\KeycloakAdminServiceProvider"
Lumen 仅限
在根目录中创建一个 config 文件夹。从 vendor/haizad/laravel-keycloak-admin/src/Config/ 中复制 keycloakAdmin.php,并将其粘贴到 config 文件夹。
在您的 bootstrap/app.php 应用文件中注册提供者
在文件中添加以下行。请注意,$app->configure('keycloakAdmin'); 应该放在 $app->register(\LaravelKeycloakAdmin\KeycloakAdminServiceProvider::class); 之下。
//"Register Service Providers" section $app->register(\LaravelKeycloakAdmin\KeycloakAdminServiceProvider::class); $app->configure('keycloakAdmin'); $app->router->group([ 'namespace' => 'App\Http\Controllers', ], function ($router) { require __DIR__.'/../routes/web.php'; }); return $app;
为了使用外观,请在您的 bootstrap/app.php 应用文件中取消注释 $app->withFacades();
环境设置
将这些环境变量添加到您的 .env
KEYCLOAK_BASE_URL=http://keycloak-domain.example/auth
KEYCLOAK_REALM=
KEYCLOAK_REALM_PUBLIC_KEY= # realm settings -> keys
KEYCLOAK_CLIENT_ID=
KEYCLOAK_CLIENT_SECRET= # clients -> your_client -> credentials
KEYCLOAK_ADMIN_BASE_URL=${KEYCLOAK_BASE_URL}/admin/realms/${KEYCLOAK_REALM}
启用领域管理
转到 clients -> your_client -> Service Account 然后从客户端角色列表中选择 realm-managment
并将 realm-admin 分配给客户端。
可用方法
包提供了以下服务
- 用户
- 角色
- 客户端
- 客户端角色
- 插件
可用函数
- 创建用户
- 获取所有用户
- 查询用户
所有 API 都在 config\keycloakAdmin.php 中声明
用法
将 KeycloakAdmin 包含在您的 Laravel 控制器/API 路由中
use LaravelKeycloakAdmin\Facades\KeycloakAdmin;
示例
KeycloakAdmin::serviceName()->apiName($parameters) //Create User Sample //Refer https://keycloak.com.cn/docs-api/11.0/rest-api/index.html#_userrepresentation KeycloakAdmin::user()->create([ 'body' => [ 'username' => 'foo', 'enabled' => true, 'emailVerified' => false, 'email' => 'foo@email.com', 'credentials' => [[ 'type' => 'password', 'value' => 'foobar', 'temporary' => false ]] ] ]); //Query User Sample //Refer Query parameter on GET /{realm}/users https://keycloak.com.cn/docs-api/11.0/rest-api/index.html KeycloakAdmin::user()->find([ 'query' => [ 'email' => 'foobar@example.com' ] ]); //Get All User Sample KeycloakAdmin::user()->all();
附加方法
通过用户 ID 注销用户会话
KeycloakAdmin::addon()->logoutById([
'id' => 'user_id'
])
设置过期访问令牌
KeycloakAdmin::addon()->setAccessTokenExpiry([
'body' => [
'accessTokenLifespan' => 60
]
])
待办事项列表
- Lumen 支持
- 测试 LDAP 连接
- 从 LDAP 导入用户
所有其他 API 调用与示例相同,只需提供如 https://keycloak.com.cn/docs-api/11.0/rest-api/index.html 中所述的必要参数即可