nmasse-itix / keycloak-client

Home Page:https://www.itix.fr/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Golang Keycloak REST Client

This Golang library provides Types and Methods to drive a Keycloak instance through its REST Admin interface.

Supported Features

  • Realms: CRUD, Export, Import
  • Clients: CRU
  • Users: CRUD
  • Components: CRUD

Hello, World example

package main

import (
	"fmt"
	"log"
	"time"

	keycloak "github.com/nmasse-itix/keycloak-client"
)

func main() {
	config := keycloak.Config{
		AddrTokenProvider: "http://localhost:8080/auth/realm/master",
		AddrAPI:           "http://localhost:8080/auth",
		Timeout:           10 * time.Second,
	}

	client, err := keycloak.NewClient(config)
	if err != nil {
		log.Fatalf("could not create keycloak client: %v", err)
	}

	accessToken, err := client.GetToken("master", "admin", "admin")
	if err != nil {
		log.Fatalf("could not get access token: %v", err)
	}

	realms, err := client.GetRealms(accessToken)
	if err != nil {
		log.Fatalf("could not get realms: %v", err)
	}

	for _, realm := range realms {
		fmt.Println(*realm.Realm)
	}
}

About

https://www.itix.fr/

License:GNU Affero General Public License v3.0


Languages

Language:Go 100.0%