Sign inSign up

vassio/keycloak-radius-plugin

By vassio

Updated over 3 years ago

Make the radius server as part of keycloak SSO

Image
2

50K+

vassio/keycloak-radius-plugin repository overview

run Keycloak radius server inside Docker

Install Docker

First, install and run Docker on your Linux server.

Download

Get the trusted build from the Docker Hub registry:

docker pull vassio/keycloak-radius-plugin

How to use this image

Environment variables

This Docker image uses the following variables, that can be declared in an env file (example:

RADIUS_SHARED_SECRET="secret"
RADIUS_UDP=true
RADIUS_UDP_AUTH_PORT=1812
RADIUS_UDP_ACCOUNT_PORT=1813
RADIUS_RADSEC=false
RADIUS_RADSEC_PRIVATEKEY="/config/private.key"
RADIUS_RADSEC_CERTIFICATE="/config/public.crt"
RADIUS_COA=false
RADIUS_COA_PORT="3799"
  • RADIUS_SHARED_SECRET - Radius shared secret
  • RADIUS_UDP - use Radius auth and Account
  • RADIUS_UDP_AUTH_PORT - Auth port(if RADIUS_UDP = true)
  • RADIUS_UDP_ACCOUNT_PORT - Accounting port(if RADIUS_UDP = true)
  • RADIUS_RADSEC - use RadSec protocol
  • RADIUS_RADSEC_PRIVATEKEY - rsa private key for Rad Sec
  • RADIUS_RADSEC_CERTIFICATE - certificate for RadSec
  • RADIUS_COA -send disconnect message if the keycloak session has expired
  • RADIUS_COA_PORT - CoA port (Mikrotik:3799, Cisco:1700)
Keycloak Configuration
Start the Keycloak Radius Server

Create a new Docker container from this image (replace ./.radius.env with your own env file):

docker run -d --name keycloak-radius-plugin --env-file ./.radius.env --restart=always -p 8080:8080 vassio/keycloak-radius-plugin

RUN Instance

docker compose
docker network create docker_default
docker-compose -f docker/docker-compose-keycloak.yaml create
docker-compose -f docker/docker-compose-keycloak.yaml start

RadSec configuration

  1. generate private and Public Key

  2. docker-compose-keycloak.yaml:

RADIUS_RADSEC = 'true'
RADIUS_RADSEC_PRIVATEKEY = /config/private.key
RADIUS_RADSEC_CERTIFICATE = /config/public.crt

Example Radius Realm

RealmRadius-Realm-example
Radius Client NameRadius
UsertestUser
PasswordtestUser
  1. login with testUser/testUser to http://localhost:8090/auth/realms/Radius-Realm-example/protocol/openid-connect/auth?client_id=account&redirect_uri=http%3A%2F%2Flocalhost%3A8090%2Fauth&state=0&response_type=code&scope=openid
  2. reset Radius Password

Logging

docker logs keycloak-radius-plugin -f

Bash shell inside container

To start a Bash session in the running container:

docker exec -it keycloak-radius-plugin bash

build and Run locally

docker stop keycloak-radius-plugin
docker rm keycloak-radius-plugin
set -e
cp -r ../cli ./cli
docker build -t keycloak-radius-plugin .
docker run --env-file ./example.radius.env -e KEYCLOAK_PASSWORD="admin" -e KEYCLOAK_USER="admin" -e  KEYCLOAK_IMPORT="/config/realm-example.json" --name=keycloak-radius-plugin keycloak-radius-plugin

Deploy new release to dockerhub

./docker.publish.sh

Tag summary

Content type

Image

Digest

sha256:0971dd442

Size

286.4 MB

Last updated

over 3 years ago

docker pull vassio/keycloak-radius-plugin