felipe.devops/laravel-keycloak-admin

Keycloak Admin Rest API for Laravel/Lumen

1.9 2021-02-04 07:50 UTC

This package is auto-updated.

Last update: 2024-09-29 05:43:09 UTC


README

这是一个来自 https://github.com/Mnikoei/laravel-keycloak-admin 的分支仓库

原始工作归功于 Mnikoei。

替代方案

由 Scito 创建的 Keycloak Admin 库。 https://gitlab.com/scito-performance/keycloak-admin

支持

  • Laravel 8
  • Lumen 8
  • 安装

    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 中所述的必要参数即可