User Tools

Site Tools


teknik:infrastruktur:keycloak

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:

  1. Et realm er en logisk container for brugere, roller og klienter.
  2. Gå til Admin ConsoleCreate Realm.

2. Opret Brugere:

  1. Naviger til UsersAdd User.
  2. Tilføj brugernavn, adgangskode og roller.

3. Opret Klienter (Applikationer):

  1. Gå til ClientsCreate.
  2. Vælg OpenID Connect (OIDC) eller SAML som protokol.
  3. Konfigurer redirect-URLs for applikationen.

4. Konfigurer Autentificeringsflow:

  1. Tilføj MFA (f.eks. TOTP) under AuthenticationFlows.

5. Integrer med LDAP/Active Directory (valgfrit):

  1. Gå til User FederationAdd ProviderLDAP.
  2. 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:

  1. Brug Winbind til at integrere med Keycloak via LDAP.
  2. 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:

  1. Kræver planlægning for at flytte brugere, grupper og politikker.

Kompleksitet:

  1. Keycloak er kraftfuldt, men kræver konfiguration (især for avancerede scenarier).

Support:

  1. Community-support er tilgængelig, men for enterprise-brug kan Red Hat Support (via SUSE eller RHEL) være nødvendigt.

Ydeevne:

  1. 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/

teknik/infrastruktur/keycloak.txt · Last modified: by smarken

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki