First, install and run Docker on your Linux server.
Get the trusted build from the Docker Hub registry:
docker pull vassio/keycloak-radius-plugin
Get the trusted build from the Docker Hub registry:
docker pull vassio/keycloak-radius-plugin:latest-multiarch
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_DICTIONARY=""
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)
- RADIUS_DICTIONARY - path to the dictionary file in freeradius format
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 .example.radius.env --restart=always -p 8080:8080 -p1812:1812/udp -p1813:1813/udp vassio/keycloak-radius-plugin start-dev
- arm64, arm/v7 version
docker run -d --name keycloak-radius-plugin --env-file .example.radius.env --restart=always -p 8080:8080 -p1812:1812/udp -p1813:1813/udp vassio/keycloak-radius-plugin:latest-multiarch start-dev
Create a new Docker container from this image (replace ./radius.env
with your own env
file):
docker network create docker_default
docker-compose -f docker/docker-compose-keycloak.yaml create
docker-compose -f docker/docker-compose-keycloak.yaml start
RADIUS_RADSEC = 'true'
RADIUS_RADSEC_PRIVATEKEY = /config/private.key
RADIUS_RADSEC_CERTIFICATE = /config/public.crt
Realm | Radius-Realm-example |
Radius Client Name | Radius |
User | testUser |
Password | testUser |
- 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
- reset Radius Password
docker logs keycloak-radius-plugin -f
To start a Bash session in the running container:
docker exec -it keycloak-radius-plugin bash
To start a Bash session in the running container:
docker exec -it keycloak-radius-plugin bash
docker stop keycloak-radius-plugin
docker rm keycloak-radius-plugin
set -e
docker build -t keycloak-radius-plugin .
docker run --env-file ./example.radius.env -e KEYCLOAK_ADMIN_PASSWORD="admin" -e KEYCLOAK_ADMIN="admin" --name=keycloak-radius-plugin keycloak-radius-plugin start-dev
./docker.publish.sh