haizad / laravel-keycloak-admin
Laravel/Lumen的Keycloak Admin Rest API
1.9
2021-02-04 07:50 UTC
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
并将领域管理员分配给客户端。
可用方法
该包提供了以下服务
- 用户
- 角色
- 客户端
- 客户端角色
- 插件
可用函数
- 创建用户
- 获取所有用户
- 查询用户
所有API都在config\keycloakAdmin.php中声明
用法
在您的Laravel控制器/API路由中包含KeycloakAdmin
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中所述