Table of Contents
Keycloak: Open Source Identitets- og Adgangsstyring (IAM)
—
Hvad er Keycloak?
Keycloak er et åbent open source-projekt udviklet af Red Hat, der tilbyder identitets- og adgangsstyring (IAM). Det gør det muligt for organisationer at sikre applikationer og tjenester med autentificering, autorisation og brugerfederation på en centraliseret måde. Keycloak understøtter moderne standarder som OAuth 2.0, OpenID Connect (OIDC) og SAML 2.0, hvilket gør det kompatibelt med et bredt udvalg af applikationer og tjenester.
Projektet er designet til at være let at integrere, skalerbart og fleksibelt, og det kan køre som en selvstændig server eller integreres i eksisterende infrastrukturer.
Hovedfunktioner i Keycloak
| Funktion | Beskrivelse |
| —————————- | —————————————————————————————————– |
| Single Sign-On (SSO) | Brugerne logger ind én gang og får adgang til alle tilknyttede applikationer uden at skulle logge ind igen. |
| Brugerfederation | Understøtter integration med eksterne identitetsudbydere (f.eks. Google, Facebook, Active Directory, LDAP). |
| Multi-Factor Authentication (MFA) | Ekstra sikkerhedslag som SMS, TOTP (Authenticator app), e-mail-bekræftelse osv. |
| Brugeradministration | Centraliseret oprettelse, redigering og sletning af brugere, roller og grupper. |
| Klientadministration | Konfiguration af applikationer (klienter), der skal bruge Keycloak til autentificering. |
| Social Login | Integration med sociale medier (Google, Facebook, Twitter osv.) som login-metode. |
| Adgangskontrol | Finmasket rolle- og tilladelsesbaseret adgangskontrol (RBAC/ABAC). |
| Audit Logging | Logning af aktiviteter (f.eks. login-forsøg, ændringer i brugerdata) for compliance og sikkerhed. |
| Tema- og UI-tilpasning | Mulighed for at tilpasse login-sider med organisationens branding. |
Hvordan kan Keycloak erstatte Microsoft-miljøprodukter?
Keycloak kan erstatte Microsoft Active Directory (AD), Azure Active Directory (Azure AD) og andre identitetsløsninger i et Linux-baseret miljø.
Her er hvordan:
| Microsoft-Produkt | Keycloak-Alternativ | Fordele ved Keycloak |
| —————————– | ——————————————- | ———————————————————- |
| Active Directory (AD) | LDAP-integration + Keycloak (som central IAM-løsning) | Åben kildekode, ingen licensomkostninger, fleksibel integration med Linux/Unix-systemer. |
| Azure AD | Keycloak som cloud/on-prem IAM (med understøttelse af OIDC/OAuth2/SAML) | Fuldt kontroll over data (digital suverænitet), ingen afhængighed af Microsoft-cloud. |
| Microsoft Entra ID | Keycloak med social login og MFA | Understøtter de samme protokoller (OIDC, SAML) og integreres med alle moderne applikationer. |
| Microsoft NPS (Network Policy Server) | Keycloak + Radius/Proxy-integration (f.eks. med FreeRADIUS) | Centraliseret adgangskontrol til netværkstjenester. |
Overordnet Implementering i et Linux-miljø
1. Forudsætninger
- Server: En Linux-server (f.eks. Debia, Rhel, SUSE) med Java (OpenJDK 11+).
- Database: Keycloak kræver en relational database (PostgreSQL, MySQL, MariaDB eller H2 for test).
- Reverse Proxy (valgfrit): Nginx eller Apache HTTP Server for SSL-terminering og load balancing.
- Certifikater: TLS/SSL-certifikater (f.eks. fra Let’s Encrypt) for sikker kommunikation.
2. Installation
Keycloak kan installeres på flere måder:
A. Docker (anbefalet til hurtig opsætning)
bash docker run -d --name keycloak -p 8080:8080 -p 8443:8443 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=strongpassword -e KC_DB=postgres -e KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak -e KC_DB_USERNAME=keycloak -e KC_DB_PASSWORD=dbpassword quay.io/keycloak/keycloak:latest start-dev
*Bemærk*: Erstat postgres med din database-server og opdater miljøvariablerne.
B. Native Installation (via .tar.gz eller RPM/DEB)
1. Download Keycloak fra keycloak.org .
2. Udpak og start serveren:
bash tar -xvf keycloak-*.tar.gz cd keycloak-*/ bin/kc.sh start-dev --db=postgres --db-url=jdbc:postgresql://localhost:5432/keycloak
3. Adgang til admin-konsol:
http://<server-ip>:8080/admin (brug admin/strongpassword)
C. Kubernetes (for skalerbare miljøer)
- Brug Keycloak Operator eller Helm-chart til at deploye i et Kubernetes-cluster.
3. Grundlæggende Konfiguration
1. Opret et Realm:
- Et realm er en logisk container for brugere, roller og klienter.
- Gå til Admin Console → Create Realm.
2. Opret Brugere:
- Naviger til Users → Add User.
- Tilføj brugernavn, adgangskode og roller.
3. Opret Klienter (Applikationer):
- Gå til Clients → Create.
- Vælg OpenID Connect (OIDC) eller SAML som protokol.
- Konfigurer redirect-URLs for applikationen.
4. Konfigurer Autentificeringsflow:
- Tilføj MFA (f.eks. TOTP) under Authentication → Flows.
5. Integrer med LDAP/Active Directory (valgfrit):
- Gå til User Federation → Add Provider → LDAP.
- Indtast LDAP-serveroplysninger (f.eks. OpenLDAP eller Microsoft AD).
4. Integration med Linux-tjenester
| Tjeneste | Integrationsmetode |
| —————————- | ————————————————————————— |
| Apache/Nginx | Brug OAuth2 Proxy (f.eks. [oauth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy)) til at beskytte web-applikationer. |
| SSH (Linux-servere) | Brug Pam Keycloak (PAM-modul) til at integrere Keycloak med SSH-login. |
| Samba (filserver) | Konfigurer Winbind + Keycloak for at erstatte AD-integration. |
| Nextcloud/ownCloud | Brug OpenID Connect-plugin til at integrere med Keycloak. |
| Jenkins/GitLab | Konfigurer OIDC-plugin i Jenkins/GitLab for at bruge Keycloak som login-udbyder. |
5. Sikkerhedsforanstaltninger
- HTTPS: Altid brug TLS/SSL (f.eks. via Nginx eller direkte i Keycloak).
- Firewall: Åbn kun port 8080/8443 for interne/brugere.
- Backup: Sikkerhedskopier databasen og Keycloak-konfigurationen regelmæssigt.
- Opdateringer: Hold Keycloak opdateret til den nyeste stabile version.
Fordele ved at bruge Keycloak i et Linux-miljø
✅ Digital Suverænitet: Ingen afhængighed af Microsoft eller andre proprietary løsninger.
✅ Omkostningsbesparelser: Ingen licensomkostninger (open source).
✅ Fleksibilitet: Understøtter alle moderne protokoller (OIDC, OAuth2, SAML).
✅ Skalerbarhed: Kan køre on-premises, i cloud eller hybrid.
✅ Integration: Let at integrere med Linux-tjenester, databaser og applikationer.
✅ Community & Support: Aktivt community og kommerciel support tilgængelig via Red Hat.
Eksempel: Erstatte Microsoft AD med Keycloak + Samba 1. Installér Samba på en Linux-server:
bash sudo apt install samba
2. Konfigurer Samba til at bruge Keycloak:
- Brug Winbind til at integrere med Keycloak via LDAP.
- Alternativt: Brug SSSD (System Security Services Daemon) til centraliseret autentificering.
3. Opret brugerkonti i Keycloak og synkroniser med Samba.
4. Test login fra en Linux-klient:
bash smbclient //server/share -U username
Udfordringer og Overvejelser
⚠ Migration fra AD:
- Kræver planlægning for at flytte brugere, grupper og politikker.
- Værktøjer som https://github.com/daniel-frak/keycloak-user-migration kan hjælpe.
⚠ Kompleksitet:
- Keycloak er kraftfuldt, men kræver konfiguration (især for avancerede scenarier).
⚠ Support:
- Community-support er tilgængelig, men for enterprise-brug kan Red Hat Support (via SUSE eller RHEL) være nødvendigt.
⚠ Ydeevne:
- For store organisationer: Overvej clustering (f.eks. med Kubernetes) for høj tilgængelighed.
—
Næste Skridt - Prøv Keycloak i et testmiljø: Start med en Docker-container og eksperimenter med brugeroprettelse og klientintegration.
- SUSE Kurser: Foretrækker du SUSE-certificeringer, kan du undersøge om der findes SUSE-udbudte kurser i Keycloak (f.eks. som del af SUSE Linux Enterprise Server (SLES)-økosystemet).
- Integrer med dine nuværende systemer: Prøv at forbinde Keycloak til Nextcloud, GitLab eller Jenkins for at se, hvordan det fungerer i praksis.
Læs mere : (eksterne links)
https://www.linkedin.com/feed/update/urn:li:groupPost:25827-7483945706563555329/ om https://mjmjmj.name/python/keycloak-the-complete-guide-to-open-source-identity-and-access-management-with-fastapi-golang-examples/
—
