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. **UbuntuCentOS, SUSE**) med Java (OpenJDK 11+).+ 
 +- **Server**: En Linux-server (f.eks. **DebiaRhel, 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 `postgresmed 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> 
 + 
 +**CKubernetes (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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki