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