8000 GitHub - chrellrich/cloaksmith: cloaksmith is a CLI tool to make some administrative tasks in Keycloak easier.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

chrellrich/cloaksmith

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cloaksmith Logo

Cloaksmith

Cloaksmith is a CLI tool designed to interact with a Keycloak server using OAuth 2.0 Device Authorization Grant. It allows you to import roles from a CSV file and create role mappings, with a focus on simplicity and extensibility.

Prerequisites

  • Python 3.7 or higher
  • Keycloak server
  • Keycloak client with OAuth 2.0 Device Authorization Grant enabled

Installation

  1. Clone the repository:

    git clone https://git.ellri.ch/c.ellrich/cloaksmith
  2. Change to the project directory:

    cd cloaksmith
  3. Install Cloaksmith using pip:

    pip install .

Configuration

  1. Create a Keycloak client with OAuth 2.0 Device Authorization Grant enabled. No other features are required. Refer to the Keycloak documentation for detailed instructions.

  2. Initialize the configuration by running:

    cloaksmith init-env

    This will prompt you to enter the following values:

    • KEYCLOAK_URL (e.g. https://your-keycloak/)
    • KEYCLOAK_REALM (e.g. master)
    • KEYCLOAK_CLIENT_ID (e.g. your-app-client-id)

    The .env file will be saved to the appropriate config directory:

    • Linux/macOS: ~/.config/cloaksmith/.env
    • Windows: %APPDATA%\cloaksmith\.env
  3. Alternatively, you can specify a custom .env file using the --env-file option for any command:

    cloaksmith import-roles --env-file /path/to/.env ...

Usage

Once installed, you can use the cloaksmith command to interact with your Keycloak server.

General Help

To see the available commands and options, run:

cloaksmith --help

Import Roles and Role Mappings to a Client

Create a CSV file based on the role_mappings.csv.example file provided.

Run the following command to import roles and map them to groups:

cloaksmith import-roles --client-id <target_client_id> --realm <target_client_realm> <path_to_csv>

Enabling Completion

ZSH

Add this to ~/.zshrc:

eval "$(_CLOAKSMITH_COMPLETE=zsh_source cloaksmith)"

BASH

Add this to ~/.bashrc:

eval "$(_CLOAKSMITH_COMPLETE=bash_source cloaksmith)"

Extensibility

Cloaksmith is designed to be easily extensible. You can add new commands or functionality by modifying the CLI or the underlying modules.

License

This project is licensed under the terms specified in the LICENSE file.

About

cloaksmith is a CLI tool to make some administrative tasks in Keycloak easier.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0