User Tools

Site Tools


teknik:infrastruktur:keycloak

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
teknik:infrastruktur:keycloak [2026/07/18 11:41] – created smarkenteknik:infrastruktur:keycloak [2026/07/18 15:07] (current) – [Udfordringer og Overvejelser] smarken
Line 1: Line 1:
-kladde +====== Keycloak: Open Source Identitets- og Adgangsstyring (IAM) ======
  
-**Keycloak: Open Source Identitets- og Adgangsstyring (IAM)** 
  
 --- ---
  
- **Hvad er Keycloak?**+===== 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. **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.
  
Line 14: Line 15:
  
  
- **Hovedfunktioner i Keycloak**+===== Hovedfunktioner i Keycloak ===== 
 + 
 | **Funktion**               | **Beskrivelse**                                                                                     | | **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. | | **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). | | **Brugerfederation**       | Understøtter integration med **eksterne identitetsudbydere** (f.eks. Google, Facebook, Active Directory, LDAP). |
-| **Multi-Factor Authentication (MFA)** | Ekstra sikkerhedslag som **SMS, TOTP (Google Authenticator), e-mail-bekræftelse** osv.         |+| **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.                  | | **Brugeradministration**   | Centraliseret **oprettelse, redigering og sletning af brugere**, roller og grupper.                  |
 | **Klientadministration**   | Konfiguration af **applikationer (klienter)**, der skal bruge Keycloak til autentificering.       | | **Klientadministration**   | Konfiguration af **applikationer (klienter)**, der skal bruge Keycloak til autentificering.       |
Line 31: Line 34:
  
  
- **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:+===== 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**                                                                 | | **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. | | **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.     | | **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.     |
Line 45: Line 54:
  
  
-**Overordnet Implementering i et Linux-miljø**+===== Overordnet Implementering i et Linux-miljø ===== 
  
  
Line 51: Line 61:
  
  
- **1. Forudsætninger** +=== 1. Forudsætninger === 
-- **Server**: En Linux-server (f.eks. **Ubuntu, CentOS, SUSE**) med Java (OpenJDK 11+).+ 
 +- **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). - **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. - **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. - **Certifikater**: **TLS/SSL-certifikater** (f.eks. fra Let’s Encrypt) for sikker kommunikation.
  
Line 60: Line 74:
 ---- ----
  
- **2. Installation**+=== 2. Installation === 
 Keycloak kan installeres på flere måder: Keycloak kan installeres på flere måder:
  
-##### **A. Docker (anbefalet til hurtig opsætning)** + **A. Docker (anbefalet til hurtig opsætning)** 
-```bash + 
-docker run -d --name keycloak \ +<code> 
-  -p 8080:8080 -p 8443:8443 \ +bash 
-  -e KEYCLOAK_ADMIN=admin \ +docker run -d --name keycloak   
-  -e KEYCLOAK_ADMIN_PASSWORD=strongpassword \ +  -p 8080:8080 -p 8443:8443   
-  -e KC_DB=postgres \ +  -e KEYCLOAK_ADMIN=admin   
-  -e KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak \ +  -e KEYCLOAK_ADMIN_PASSWORD=strongpassword  
-  -e KC_DB_USERNAME=keycloak \ +  -e KC_DB=postgres  
-  -e KC_DB_PASSWORD=dbpassword \ +  -e KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak  
-  quay.io/keycloak/keycloak:latest \ +  -e KC_DB_USERNAME=keycloak  
-  start-dev +  -e KC_DB_PASSWORD=dbpassword   
-``` +  quay.io/keycloak/keycloak:latest   
-> *Bemærk*: Erstat `postgres` med din database-server og opdater miljøvariablerne.+  start-dev  
 +</code> 
 + 
 + *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 [[https://www.keycloak.org/download | keycloak.org ]]  . 
  
- **B. Native Installation (via .tar.gz eller RPM/DEB)** 
-1. Download Keycloak fra [keycloak.org](https://www.keycloak.org/downloads). 
 2. Udpak og start serveren: 2. Udpak og start serveren:
-   ```bash+<code> 
 +   bash
    tar -xvf keycloak-*.tar.gz    tar -xvf keycloak-*.tar.gz
    cd keycloak-*/    cd keycloak-*/
    bin/kc.sh start-dev --db=postgres --db-url=jdbc:postgresql://localhost:5432/keycloak    bin/kc.sh start-dev --db=postgres --db-url=jdbc:postgresql://localhost:5432/keycloak
-   ``` +</code> 
-3. Adgang til admin-konsol: `http://<server-ip>:8080/admin` (brug `admin/strongpassword`).+ 
 +3. Adgang til admin-konsol:  
 +<code>http://<server-ip>:8080/admin (brug admin/strongpassword)</code> 
 + 
 +**C. Kubernetes (for skalerbare miljøer)**
  
- **C. Kubernetes (for skalerbare miljøer)** 
 - Brug **Keycloak Operator** eller Helm-chart til at deploye i et Kubernetes-cluster. - Brug **Keycloak Operator** eller Helm-chart til at deploye i et Kubernetes-cluster.
  
---- +---- 
- **3. Grundlæggende Konfiguration**+ 
 +=== 3. Grundlæggende Konfiguration === 
 + 
 1. **Opret et Realm**: 1. **Opret et Realm**:
    - Et **realm** er en logisk container for brugere, roller og klienter.    - Et **realm** er en logisk container for brugere, roller og klienter.
Line 116: Line 144:
 ---- ----
  
- **4. Integration med Linux-tjenester**+ 
 +=== 4. Integration med Linux-tjenester === 
 | **Tjeneste**               | **Integrationsmetode**                                                                 | | **Tjeneste**               | **Integrationsmetode**                                                                 |
-|----------------------------|---------------------------------------------------------------------------------------|+|----------------------------|---------------------------------------------------------------------------|
 | **Apache/Nginx**           | Brug **OAuth2 Proxy** (f.eks. [oauth2-proxy](https://github.com/oauth2-proxy/oauth2-proxy)) til at beskytte web-applikationer. | | **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.            | | **SSH (Linux-servere)**    | Brug **Pam Keycloak** (PAM-modul) til at integrere Keycloak med SSH-login.            |
Line 125: Line 155:
 | **Jenkins/GitLab**         | Konfigurer **OIDC-plugin** i Jenkins/GitLab for at bruge Keycloak som login-udbyder.   | | **Jenkins/GitLab**         | Konfigurer **OIDC-plugin** i Jenkins/GitLab for at bruge Keycloak som login-udbyder.   |
  
---- + 
- **5. Sikkerhedsforanstaltninger**+---- 
 + 
 +=== 5. Sikkerhedsforanstaltninger === 
 + 
 - **HTTPS**: Altid brug **TLS/SSL** (f.eks. via Nginx eller direkte i Keycloak). - **HTTPS**: Altid brug **TLS/SSL** (f.eks. via Nginx eller direkte i Keycloak).
 +
 - **Firewall**: Åbn kun **port 8080/8443** for interne/brugere. - **Firewall**: Åbn kun **port 8080/8443** for interne/brugere.
 +
 - **Backup**: Sikkerhedskopier **databasen** og Keycloak-konfigurationen regelmæssigt. - **Backup**: Sikkerhedskopier **databasen** og Keycloak-konfigurationen regelmæssigt.
 +
 - **Opdateringer**: Hold Keycloak opdateret til den **nyeste stabile version**. - **Opdateringer**: Hold Keycloak opdateret til den **nyeste stabile version**.
  
---- + 
---- +---- 
- **Fordele ved at bruge Keycloak i et Linux-miljø**+ 
 + 
 +===== Fordele ved at bruge Keycloak i et Linux-miljø ===== 
 + 
 + 
 ✅ **Digital Suverænitet**: Ingen afhængighed af **Microsoft eller andre proprietary løsninger**. ✅ **Digital Suverænitet**: Ingen afhængighed af **Microsoft eller andre proprietary løsninger**.
 +
 +
 ✅ **Omkostningsbesparelser**: **Ingen licensomkostninger** (open source). ✅ **Omkostningsbesparelser**: **Ingen licensomkostninger** (open source).
 +
 +
 ✅ **Fleksibilitet**: Understøtter **alle moderne protokoller** (OIDC, OAuth2, SAML). ✅ **Fleksibilitet**: Understøtter **alle moderne protokoller** (OIDC, OAuth2, SAML).
 +
 +
 ✅ **Skalerbarhed**: Kan køre **on-premises, i cloud eller hybrid**. ✅ **Skalerbarhed**: Kan køre **on-premises, i cloud eller hybrid**.
 +
 +
 ✅ **Integration**: Let at integrere med **Linux-tjenester, databaser og applikationer**. ✅ **Integration**: Let at integrere med **Linux-tjenester, databaser og applikationer**.
 +
 +
 ✅ **Community & Support**: **Aktivt community** og kommerciel support tilgængelig via Red Hat. ✅ **Community & Support**: **Aktivt community** og kommerciel support tilgængelig via Red Hat.
  
---- + 
----+ 
 + 
 +---- 
 + 
  **Eksempel: Erstatte Microsoft AD med Keycloak + Samba**  **Eksempel: Erstatte Microsoft AD med Keycloak + Samba**
 1. **Installér Samba** på en Linux-server: 1. **Installér Samba** på en Linux-server:
-   ```bash +<code>bash 
-   sudo apt install samba +   sudo apt install samba </code> 
-   ```+    
 2. **Konfigurer Samba til at bruge Keycloak**: 2. **Konfigurer Samba til at bruge Keycloak**:
    - Brug **Winbind** til at integrere med Keycloak via LDAP.    - Brug **Winbind** til at integrere med Keycloak via LDAP.
    - Alternativt: Brug **SSSD (System Security Services Daemon)** til centraliseret autentificering.    - Alternativt: Brug **SSSD (System Security Services Daemon)** til centraliseret autentificering.
 +
 3. **Opret brugerkonti i Keycloak** og synkroniser med Samba. 3. **Opret brugerkonti i Keycloak** og synkroniser med Samba.
 +
 4. **Test login** fra en Linux-klient: 4. **Test login** fra en Linux-klient:
-   ```bash +<code>bash 
-   smbclient //server/share -U username +   smbclient //server/share -U username</code> 
-   ```+   
 + 
 + 
 + 
 +---- 
 + 
 +===== Udfordringer og Overvejelser ===== 
  
---- 
---- 
- **Udfordringer og Overvejelser** 
 ⚠ **Migration fra AD**: ⚠ **Migration fra AD**:
    - Kræver **planlægning** for at flytte brugere, grupper og politikker.    - Kræver **planlægning** for at flytte brugere, grupper og politikker.
-   - Værktøjer som **[AD2Keycloak](https://github.com/InnoGames/keycloak-user-migration)** kan hjælpe.+   - Værktøjer som **https://github.com/daniel-frak/keycloak-user-migration** kan hjælpe.
  
 ⚠ **Kompleksitet**: ⚠ **Kompleksitet**:
Line 175: Line 237:
  
 --- ---
---- + 
- **Næste Skridt for Dig, Søren**+ 
 + **Næste Skridt**
 - **Prøv Keycloak i et testmiljø**: Start med en **Docker-container** og eksperimenter med brugeroprettelse og klientintegration. - **Prøv Keycloak i et testmiljø**: Start med en **Docker-container** og eksperimenter med brugeroprettelse og klientintegration.
-- **SUSE Kurser**: Da du foretrækker 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).+ 
 +- **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. - **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.1784374909.txt.gz · Last modified: by smarken

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

Brug af AI : Al tekst kán være uddrag af AI genereret tekst og kan være fejlbehæftet.
AI kan lave fejl og det kan mennesker også, men al tekst er gennemgået af et menneske for fejl, og personlig bias kan være tilføjet.