User Tools

Site Tools


teknik:infrastruktur:ldap

Differences

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

Link to this comparison view

Next revision
Previous revision
teknik:infrastruktur:ldap [2026/07/21 10:01] – created smarkenteknik:infrastruktur:ldap [2026/07/21 10:18] (current) – smarken
Line 1: Line 1:
-## **1. LDAP: Grundlaget for centraliseret brugerstyring** +====== LDAP i et Linux Enterprise-Miljø med Keycloak og Nextcloud ======
-### **Hvad er LDAP?** +
-LDAP (**Lightweight Directory Access Protocol**) er en **åben standard** (RFC 4510) til at hente, opdatere og søge i **hierarkiske directory-tjenester** over et netværk. Den bruges primært til: +
-- **Centraliseret lagring** af brugere, grupper, enheder og rettigheder. +
-- **Autentificering** (login) og **autorisation** (adgangskontrol). +
-- **Multi-platform understøttelse** (Linux, Windows, applikationer, tjenester).+
  
-**Typisk struktur i LDAP**: +Denne side beskriver, hvordan **LDAP** (Lightweight Directory Access Protocol) integreres i et **Linux enterprise-miljø** til brugerstyring og login, og hvordan det kan arbejde **parallelt med et eksisterende Windows-miljø** — herunder integration med **[[keycloak|Keycloak]]** og løsninger som **Nextcloud**. Beskrivelsen tager udgangspunkt i behovet for at understøtte både åben kildekode og eksisterende proprietary systemer. 
-```+ 
 +---- 
 + 
 +==== LDAP: Grundlaget for centraliseret brugerstyring ==== 
 + 
 +===== Hvad er LDAP? ===== 
 +LDAP (**Lightweight Directory Access Protocol**) er en **åben standardprotokol** (RFC 4510) til at hente, opdatere og søge i **hierarkiske directory-tjenester** over et netværk. Den bruges primært til: 
 + 
 +* **Centraliseret lagring** af brugere, grupper, enheder og rettigheder. 
 +* **Autentificering** (login) og **autorisation** (adgangskontrol). 
 +* **Multi-platform understøttelse** (Linux, Windows, applikationer, tjenester). 
 + 
 +===== Typisk struktur i LDAP ===== 
 +<code>
 dc=example,dc=com dc=example,dc=com
 ├── ou=users ├── ou=users
Line 15: Line 23:
     ├── cn=admins     ├── cn=admins
     └── cn=developers     └── cn=developers
-```+</code> 
 + 
 +===== Implementeringer ===== 
 +* **OpenLDAP**: Åben kildekode, fleksibel. 
 +* **389 Directory Server**: Red Hat, enterprise-venlig. 
 +* **Apache Directory Server**: Java-baseret, skalerbar. 
 + 
 +----
  
-**Implementeringer**: +==== LDAP i Linux-miljøer ====
-- **OpenLDAP** (open source, fleksibel). +
-- **389 Directory Server** (Red Hat, enterprise-venlig). +
-- **Apache Directory Server** (Java-baseret, skalerbar).+
  
---- 
-### **LDAP i Linux-miljøer** 
 I Linux integreres LDAP med: I Linux integreres LDAP med:
-- **`nsswitch.conf`**: Konfigurerer systemet til at hente brugere/grupper fra LDAP. 
-- **`pam_ldap` eller `sssd` (System Security Services Daemon)**: Håndterer autentificering via LDAP. 
-- **Kerberos**: Til **Single Sign-On (SSO)** med LDAP som backend. 
  
-**Eksempel på opsætning**: +* //nsswitch.conf//: Konfigurerer systemet til at hente brugere/grupper fra LDAP. 
-```bash+* //pam_ldap// eller //sssd// (System Security Services Daemon): Håndterer autentificering via LDAP. 
 +* **Kerberos**: Til **Single Sign-On (SSO)** med LDAP som backend. 
 + 
 +===== Eksempel på opsætning ===== 
 +<code bash>
 # /etc/nsswitch.conf (Ubuntu/Debian) # /etc/nsswitch.conf (Ubuntu/Debian)
 passwd:    compat ldap passwd:    compat ldap
 group:     compat ldap group:     compat ldap
 shadow:    compat ldap shadow:    compat ldap
-```+</code> 
 + 
 +---- 
 + 
 +==== Keycloak: Identity and Access Management (IAM) ====
  
---- +===== Hvad er Keycloak? =====
---- +
-## **2. Keycloak: Identity and Access Management (IAM) lag** +
-### **Hvad er Keycloak?**+
 Keycloak er en **open-source IAM-løsning** (udviklet af Red Hat) til: Keycloak er en **open-source IAM-løsning** (udviklet af Red Hat) til:
-- **Federeret identitet** (understøtter **LDAP, Active Directory, SAML 2.0, OIDC, OAuth2**). 
-- **Single Sign-On (SSO)** på tværs af applikationer. 
-- **Centraliseret autentificering** med multi-factor authentication (MFA). 
-- **Brugerselvbetjening** (self-service password reset, profiladministration). 
  
---- +* **Federeret identitet** (understøtter **LDAP, Active Directory, SAML 2.0, OIDC, OAuth2**). 
-### **Integration mellem LDAP og Keycloak** +* **Single Sign-On (SSO)** på tværs af applikationer. 
-Keycloak kan **synkronisere brugere fra LDAP** og fungere som en **identity provider (IdP)** for både Linux- og Windows-tjenester.+* **Centraliseret autentificering** med multi-factor authentication (MFA). 
 +* **Brugerselvbetjening** (self-service password reset, profiladministration).
  
-#### **Opsætning af LDAP i Keycloak**:+---- 
 + 
 +==== Integration mellem LDAP og Keycloak ==== 
 + 
 +Keycloak kan **synkronisere brugere fra LDAP** og fungere som en **Identity Provider (IdP)** for både Linux- og Windows-tjenester. 
 + 
 +===== Opsætning af LDAP i Keycloak =====
 1. **Opret en LDAP User Federation** i Keycloak: 1. **Opret en LDAP User Federation** i Keycloak:
-   - Angiv LDAP-serverens URL (f.eks. `ldap://ldap.example.com:389`). +   * Angiv LDAP-serverens URL (f.eks. <code>ldap://ldap.example.com:389</code>). 
-   - Konfigurer **bind DN** (admin-bruger til LDAP-adgang) og adgangskode. +   * Konfigurer **bind DN** (admin-bruger til LDAP-adgang) og adgangskode. 
-   - Definer **bruger- og gruppe-mapping** (f.eks. `uid` → username, `memberOf` → grupper). +   * Definer **bruger- og gruppe-mapping** (f.eks. <code>uid</code> → username, <code>memberOf</code> → grupper).
-   - Indstil **søgefiltre** for at hente specifikke brugere/grupper.+
  
 2. **Synkronisering**: 2. **Synkronisering**:
-   - Keycloak kan **importere brugere** fra LDAP ved opstart eller på planlagte tidspunkter. +   * Keycloak kan **importere brugere** fra LDAP ved opstart eller på planlagte tidspunkter.
-   - Ændringer i LDAP (f.eks. ny bruger) **reflekteres automatisk** i Keycloak.+
  
 3. **Autentificeringsflow**: 3. **Autentificeringsflow**:
-   - Brugere logger ind via **Keycloak login-portal** (web, API, eller integrerede applikationer). +   * Brugere logger ind via **Keycloak login-portal** (web, API, eller integrerede applikationer). 
-   - Keycloak **validerer credentials mod LDAP**. +   * Keycloak **validerer credentials mod LDAP**. 
-   - Udsteder **JWT-tokens** (OIDC) eller **SAML-assertions** til klienter.+   * Udsteder **JWT-tokens** (OIDC) eller **SAML-assertions** til klienter. 
 + 
 +===== Fordele ved Keycloak + LDAP ===== 
 +* **Enkelt login** (SSO) på tværs af Linux/Windows/applikationer. 
 +* **Understøttelse af MFA** (SMS, TOTP, hardware tokens). 
 +* **Fleksibel integration** med både åbne og proprietary systemer. 
 +* **Audit logs** og **compliance** (GDPR, ISO 27001). 
 + 
 +---- 
 + 
 +==== Parallel Integration med Windows (Active Directory) ==== 
 + 
 +===== Hvorfor beholde Windows-miljøet? ===== 
 +* **Eksisterende infrastruktur**: AD bruges til Windows-klienter, GPO, og legacy-applikationer. 
 +* **Kerberos/NTLM**: Nødvendigt for ældre Windows-tjenester. 
 +* **Group Policy**: Centraliseret konfiguration af Windows-maskiner.
  
---- +===== Løsninger for interoperabilitet =====
-### **Fordele ved Keycloak + LDAP**: +
-✅ **Enkelt login** (SSO) på tværs af Linux/Windows/applikationer. +
-✅ **Understøttelse af MFA** (SMS, TOTP, hardware tokens). +
-✅ **Fleksibel integration** med både åbne og proprietary systemer. +
-✅ **Audit logs** og **compliance** (GDPR, ISO 27001).+
  
---- +^ Metode               ^ Beskrivelse                                                                 ^ Fordele                          ^ Ulemper                          ^ 
---- +| Samba som AD DC      | Samba kan fungere som en **fuldgyldig AD Domain Controller**.       | Fuldt kompatibelt med Windows.   | Kræver avanceret opsætning.    | 
-## **3. Parallel integration med Windows (Active Directory)** +| LDAP + AD Sync       | Synkroniser brugere fra AD til LDAP (f.eks. med //ldap-sync//).       | Beholder AD som kilden.          | Risiko for synkroniseringskonflikter. | 
-### **Hvorfor beholde Windows-miljøet?** +| Keycloak + AD        | Keycloak forbinder direkte til AD via **LDAP eller Kerberos**.       | Ingen manuel synkronisering.     | Kræver AD-adgang for Keycloak.  | 
-- **Eksisterende infrastruktur**: AD bruges til Windows-klienter, GPO, og legacy-applikationer. +| Cross-Forest Trust   | Opret en **trust-relation** mellem Linux LDAP og AD.                   | Transparent adgang på tværs.    | Kompleks opsætning.            |
-- **Kerberos/NTLM**: Nødvendigt for ældre Windows-tjenester. +
-- **Group Policy**: Centraliseret konfiguration af Windows-maskiner.+
  
---- +----
-### **Løsninger for interoperabilitet** +
-| **Metode**               | **Beskrivelse**                                                                 | **Fordele**                                  | **Ulemper**                                  | +
-|--------------------------|-------------------------------------------------------------------------------|--------------------------------------------|--------------------------------------------| +
-| **Samba som AD DC**      | Samba kan fungere som en **fuldgyldig AD Domain Controller**.              | Fuldt kompatibelt med Windows-klienter.    | Kræver avanceret opsætning.               | +
-| **LDAP + AD Sync**       | Synkroniser brugere fra AD til LDAP (f.eks. med **`ldap-sync`** eller **FreeIPA**). | Beholder AD som kilden.                   | Risiko for synkroniseringskonflikter.      | +
-| **Keycloak + AD**        | Keycloak forbinder direkte til AD via **LDAP eller Kerberos**.               | Ingen manuel synkronisering.               | Kræver AD-adgang for Keycloak.             | +
-| **Cross-Forest Trust**  | Opret en **trust-relation** mellem Linux LDAP (f.eks. FreeIPA) og AD.      | Transparent adgang på tværs af miljøer.   | Kompleks opsætning.                        |+
  
---- +===== Anbefalet opsætning: Keycloak + LDAP + AD =====
-### **Anbefalet opsætning: Keycloak + LDAP + AD**+
 1. **LDAP som primær brugerdatabase**: 1. **LDAP som primær brugerdatabase**:
-   - Alle brugere (Linux/Windows) lagres i **LDAP** (eller AD, hvis AD er primært). +   * Alle brugere (Linux/Windows) lagres i **LDAP** (eller AD, hvis AD er primært). 
-   - **Keycloak forbinder til LDAP/AD** for autentificering.+   * **Keycloak forbinder til LDAP/AD** for autentificering.
  
 2. **Samba som AD-medlem**: 2. **Samba som AD-medlem**:
-   - Linux-servere **slutter sig til AD-domænet** via Samba. +   * Linux-servere **slutter sig til AD-domænet** via Samba. 
-   - Brugere kan logge ind på Linux-maskiner med **AD-credentials** (via `sssd` + `ad` backend).+   * Brugere kan logge ind på Linux-maskiner med **AD-credentials** (via <code>sssd</code> + <code>ad</code> backend).
  
 3. **Keycloak som SSO-portal**: 3. **Keycloak som SSO-portal**:
-   - Applikationer (f.eks. Nextcloud) **autentificerer via Keycloak**. +   * Applikationer (f.eks. Nextcloud) **autentificerer via Keycloak**. 
-   - Keycloak **validerer mod LDAP/AD** og udsteder tokens.+   * Keycloak **validerer mod LDAP/AD** og udsteder tokens.
  
---- +---- 
---- + 
-## **4. Nextcloud og andre applikationer** +==== Nextcloud og andre applikationer ==== 
-### **Integration med Nextcloud**+ 
 +===== Integration med Nextcloud =====
 Nextcloud kan integreres med **LDAP + Keycloak** på to måder: Nextcloud kan integreres med **LDAP + Keycloak** på to måder:
  
-#### **Option 1: Direkte LDAP-integration** +====== Option 1: Direkte LDAP-integration ====== 
-- Nextcloud forbinder direkte til **LDAP-serveren**. +* Nextcloud forbinder direkte til **LDAP-serveren**. 
-- **Fordele**: Simpel opsætning, ingen ekstra lag. +* **Fordele**: Simpel opsætning, ingen ekstra lag. 
-- **Ulemper**: Ingen SSO (brugere skal logge ind separat).+* **Ulemper**: Ingen SSO (brugere skal logge ind separat).
  
-**Opsætning**:+<code>
 1. Installer **LDAP/Active Directory app** i Nextcloud. 1. Installer **LDAP/Active Directory app** i Nextcloud.
 2. Konfigurer LDAP-server, bind DN, og søgefiltre. 2. Konfigurer LDAP-server, bind DN, og søgefiltre.
-3. Map LDAP-felter til Nextcloud-brugere (f.eks. `uid` → username).+3. Map LDAP-felter til Nextcloud-brugere (f.eks. <code>uid</code> → username). 
 +</code>
  
-#### **Option 2: Keycloak SSO (anbefalet)** +====== Option 2: Keycloak SSO (anbefalet) ====== 
-- Nextcloud **autentificerer via Keycloak** (OIDC eller SAML). +* Nextcloud **autentificerer via Keycloak** (OIDC eller SAML). 
-- **Fordele**: +* **Fordele**: Single Sign-On, MFA, centraliseret styring.
-  - **Single Sign-On** (brugere logger ind én gang). +
-  - Understøttelse af **MFA**. +
-  - Centraliseret styring via Keycloak.+
  
-**Opsætning**:+<code>
 1. **Konfigurer Keycloak**: 1. **Konfigurer Keycloak**:
-   - Opret en **OIDC-klient** for Nextcloud. +   * Opret en **OIDC-klient** for Nextcloud. 
-   - Angiv **redirect URIs** (f.eks. `https://nextcloud.example.com/apps/sociallogin/custom_oidc`). +   * Angiv **redirect URIs** (f.eks. <code>https://nextcloud.example.com/apps/sociallogin/custom_oidc</code>).
-   - Tildel **roller/grupper** (f.eks. `nextcloud-users`).+
  
 2. **Konfigurer Nextcloud**: 2. **Konfigurer Nextcloud**:
-   - Installer **Social Login & OIDC app**. +   * Installer **Social Login & OIDC app**. 
-   - Angiv Keycloak **client ID**, **client secret**, og **discovery endpoint** (f.eks. `https://keycloak.example.com/auth/realms/master/.well-known/openid-configuration`).+   * Angiv Keycloak **client ID**, **client secret**, og **discovery endpoint**.
  
 3. **Test login**: 3. **Test login**:
-   - Brugere klikker på **"Log ind med Keycloak"** → omdirigeres til Keycloak → logger ind med LDAP/AD-credentials → får adgang til Nextcloud.+   * Brugere klikker på **"Log ind med Keycloak"** → omdirigeres til Keycloak → logger ind med LDAP/AD-credentials. 
 +</code>
  
---- +===== Eksempel på andre applikationer ===== 
-### **Eksempel på andre applikationer** +^ Applikation       ^ Integrationsmetode               ^ Protokol          ^ 
-| **Applikation**       | **Integrationsmetode**               | **Protokol**       | +| Jira/Confluence    | Keycloak (SAML/OIDC)                 | SAML 2.0 / OIDC   | 
-|------------------------|--------------------------------------|--------------------| +| GitLab             | LDAP eller Keycloak (OIDC)           | LDAP / OIDC       | 
-| **Jira/Confluence**    | Keycloak (SAML/OIDC)                 | SAML 2.0 / OIDC    | +| Mattermost         | Keycloak (OIDC)                       | OIDC              | 
-| **GitLab**             | LDAP eller Keycloak (OIDC)           | LDAP / OIDC        | +| Grafana            | LDAP eller Keycloak (OAuth2)         | LDAP / OAuth2     |
-| **Mattermost**         | Keycloak (OIDC)                       | OIDC               | +
-| **Grafana**            | LDAP eller Keycloak (OAuth2)         | LDAP / OAuth2      |+
  
---- +----
---- +
-## **5. Arkitekturoverblik** +
-Her er et **visuelt overblik** over integrationen:+
  
-```mermaid +==== Arkitekturoverblik ====
-graph TD +
-    A[Windows AD] -->|Synkronisering| B[LDAP] +
-    A -->|Kerberos/NTLM| C[Samba] +
-    B -->|User Federation| D[Keycloak] +
-    C -->|AD Domain Join| E[Linux Servere] +
-    D -->|OIDC/SAML| F[Nextcloud] +
-    D -->|OIDC/SAML| G[Andre Applikationer] +
-    E -->|PAM/SSSD| B +
-    F -->|LDAP| B +
-```+
  
---- +<code> 
-### **Workflow for brugerlogin**:+LDAP Server 
 +│ 
 +├── Users (uid=bruger1, uid=bruger2) 
 +└── Groups (cn=admins, cn=developers) 
 +    │ 
 +    ├───┬───────────────┬─────────────────┐ 
 +    │   │               │                 │ 
 +    ▼   ▼               ▼                 ▼ 
 +Linux Servers    Windows AD       Keycloak          Nextcloud 
 +   │               │                 │                 │ 
 +   │               │                 ├─────────────────┘ 
 +   │               │                 │ 
 +   ▼               ▼                 ▼ 
 +SSSD (PAM)     Samba (AD)        OIDC/SAML 
 +   │               │                 │ 
 +   └───────────┬───────────────────┘ 
 +               │ 
 +               ▼ 
 +       Central Brugerdatabase 
 +</code> 
 + 
 +---- 
 + 
 +==== Workflow for brugerlogin ====
 1. Bruger åbner **Nextcloud** (eller anden applikation). 1. Bruger åbner **Nextcloud** (eller anden applikation).
 2. Viderestilles til **Keycloak login-portal**. 2. Viderestilles til **Keycloak login-portal**.
Line 175: Line 195:
 5. Nextcloud **modtager tokenet** og giver adgang. 5. Nextcloud **modtager tokenet** og giver adgang.
  
---- +----
---- +
-## **6. Praktiske overvejelser** +
-### **Fordele ved denne opsætning** +
-✔ **Digital suverænitet**: LDAP og Keycloak er **open source** (ingen vendor lock-in). +
-✔ **Fleksibilitet**: Understøtter både **Linux og Windows** uden at erstatte AD. +
-✔ **Skalerbarhed**: LDAP og Keycloak kan håndtere **tusindvis af brugere**. +
-✔ **Sikkerhed**: +
-   - **MFA** via Keycloak. +
-   - **Centraliseret audit** (hvem loggede ind, hvornår, fra hvor). +
-   - **Krypteret kommunikation** (LDAPS, HTTPS).+
  
-### **Udfordringer og løsninger** +==== Praktiske overvejelser ====
-| **Udfordring**                          | **Løsning**                                                                 | +
-|----------------------------------------|-----------------------------------------------------------------------------| +
-| **Synkronisering mellem AD og LDAP**   | Brug **FreeIPA** (Red Hat) eller **Univention Corporate Server (UCS)**.   | +
-| **Performance med mange brugere**      | Implementér **LDAP-replikering** og **caching i Keycloak**.               | +
-| **Kompleksitet i opsætning**          | Brug **Ansible/Terraform** til automatiseret deployment.                 | +
-| **Legacy Windows-applikationer**      | Behold AD og brug **Keycloak som broker** til moderne applikationer.      |+
  
---- +===== Fordele ved denne opsætning ===== 
-### **Anbefalede værktøjer til drift** +* **Digital suverænitet**: LDAP og Keycloak er **open source** (ingen vendor lock-in). 
-- **Monitorering**: +* **Fleksibilitet**: Understøtter både **Linux og Windows** uden at erstatte AD. 
-  - **Prometheus + Grafana** til overvågning af LDAP/Keycloak. +* **Skalerbarhed**: LDAP og Keycloak kan håndtere **tusindvis af brugere**. 
-  - **ELK Stack** (Elasticsearch, Logstash, Kibana) til logs. +* **Sikkerhed**: MFA, centraliseret audit, krypteret kommunikation.
-- **Backup**: +
-  - **LDAP: `slapcat`** (OpenLDAP) eller **`db2ldif`** (389 DS). +
-  - **Keycloak: Database dump** (PostgreSQL/MySQL). +
-- **High Availability**: +
-  - **LDAP-replikering** (multi-master eller master-slave). +
-  - **Keycloak clustering** (flere instanser bag en load balancer).+
  
---- +===== Udfordringer og løsninger ===== 
---- +^ Udfordring                          ^ Løsning                                                                 ^ 
-## **7. Trin-for-trin implementeringsguide** +| Synkronisering mellem AD og LDAP   | Brug **FreeIPA** eller **Univention Corporate Server (UCS)**.          | 
-### **Fase 1: Opsæt LDAP**+| Performance med mange brugere      | Implementér **LDAP-replikering** og **caching i Keycloak**.            | 
 +| Kompleksitet i opsætning           | Brug **Ansible/Terraform** til automatiseret deployment.               | 
 +| Legacy Windows-applikationer      | Behold AD og brug **Keycloak som broker** til moderne applikationer.  | 
 + 
 +---- 
 + 
 +==== Anbefalede værktøjer til drift ==== 
 + 
 +===== Monitorering ===== 
 +* **Prometheus + Grafana**: Overvågning af LDAP/Keycloak. 
 +* **ELK Stack**: Logs (Elasticsearch, Logstash, Kibana). 
 + 
 +===== Backup ===== 
 +* **LDAP**: <code>slapcat</code> (OpenLDAP) eller <code>db2ldif</code> (389 DS). 
 +* **Keycloak**: Database dump (PostgreSQL/MySQL). 
 + 
 +===== High Availability ===== 
 +* **LDAP-replikering**: Multi-master eller master-slave. 
 +* **Keycloak clustering**: Flere instanser bag en load balancer. 
 + 
 +---- 
 + 
 +==== Trin-for-trin implementeringsguide ==== 
 + 
 +===== Fase 1: Opsæt LDAP =====
 1. Installer **OpenLDAP** eller **389 Directory Server**: 1. Installer **OpenLDAP** eller **389 Directory Server**:
-   ```bash +<code bash> 
-   # Ubuntu/Debian +# Ubuntu/Debian 
-   sudo apt install slapd ldap-utils +sudo apt install slapd ldap-utils 
-   ``` +</code> 
-2. Konfigurer **base DN** (f.eks. `dc=example,dc=com`).+ 
 +2. Konfigurer **base DN** (f.eks. <code>dc=example,dc=com</code>).
 3. Opret **admin-bruger** og **ou=users/ou=groups**. 3. Opret **admin-bruger** og **ou=users/ou=groups**.
-4. Test med `ldapsearch`: +4. Test med <code>ldapsearch</code>: 
-   ```bash +<code bash> 
-   ldapsearch -x -H ldap://localhost -b "dc=example,dc=com" +ldapsearch -x -H ldap://localhost -b "dc=example,dc=com" 
-   ```+</code> 
 + 
 +---- 
 + 
 +===== Fase 2: Integrer LDAP med Linux ===== 
 +1. Installer <code>sssd</code> og <code>ldap-utils</code>: 
 +<code bash> 
 +sudo apt install sssd ldap-utils 
 +</code> 
 + 
 +2. Konfigurer <code>/etc/sssd/sssd.conf</code>: 
 +<code> 
 +[sssd] 
 +services = nss, pam 
 +domains = example.com 
 + 
 +[domain/example.com] 
 +id_provider = ldap 
 +auth_provider = ldap 
 +ldap_uri = ldap://ldap.example.com 
 +ldap_search_base = dc=example,dc=com 
 +ldap_id_use_start_tls = true 
 +cache_credentials = true 
 +</code> 
 + 
 +3. Opdater <code>nsswitch.conf</code> og test login: 
 +<code bash> 
 +sudo systemctl restart sssd 
 +id bruger1  # Skal vise LDAP-brugerinfo 
 +</code>
  
---- +----
-### **Fase 2: Integrer LDAP med Linux** +
-1. Installer `sssd` og `ldap-utils`: +
-   ```bash +
-   sudo apt install sssd ldap-utils +
-   ``` +
-2. Konfigurer `/etc/sssd/sssd.conf`: +
-   ```ini +
-   [sssd] +
-   services = nss, pam +
-   domains = example.com+
  
-   [domain/example.com] +===== Fase 3: Opsæt Keycloak ===== 
-   id_provider = ldap +1. Start Keycloak med Docker: 
-   auth_provider = ldap +<code bash> 
-   ldap_uri = ldap://ldap.example.com +docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=password quay.io/keycloak/keycloak:24.0 start-dev 
-   ldap_search_base = dc=example,dc=com +</code>
-   ldap_id_use_start_tls = true +
-   cache_credentials = true +
-   ``` +
-3. Opdater `nsswitch.conf` og test login: +
-   ```bash +
-   sudo systemctl restart sssd +
-   id bruger1  # Skal vise LDAP-brugerinfo +
-   ```+
  
---- 
-### **Fase 3: Opsæt Keycloak** 
-1. Download og start Keycloak: 
-   ```bash 
-   docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=password quay.io/keycloak/keycloak:24.0 start-dev 
-   ``` 
 2. Log ind på **http://localhost:8080** (admin/password). 2. Log ind på **http://localhost:8080** (admin/password).
-3. Opret et **realm** (f.eks. `example`).+3. Opret et **realm** (f.eks. <code>example</code>).
 4. Tilføj **LDAP User Federation**: 4. Tilføj **LDAP User Federation**:
-   - Gå til **User Federation** → **Add provider** → **LDAP**. +   * Gå til **User Federation** → **Add provider** → **LDAP**. 
-   - Udfyld LDAP-serverdetaljer (URL, bind DN, password). +   * Udfyld LDAP-serverdetaljer (URL, bind DN, password). 
-   - Test forbindelse med **"Test connection"** og **"Test authentication"**.+   * Test forbindelse med **"Test connection"** og **"Test authentication"**. 
 5. Opret en **OIDC-klient** for Nextcloud: 5. Opret en **OIDC-klient** for Nextcloud:
-   - Gå til **Clients** → **Create**. +   * Gå til **Clients** → **Create**. 
-   - Client ID: `nextcloud`. +   * Client ID: <code>nextcloud</code>. 
-   - Root URL: `https://nextcloud.example.com`. +   * Root URL: <code>https://nextcloud.example.com</code>. 
-   - Tilføj **Redirect URI**: `https://nextcloud.example.com/apps/sociallogin/custom_oidc`.+   * Tilføj **Redirect URI**: <code>https://nextcloud.example.com/apps/sociallogin/custom_oidc</code>.
  
---- +---- 
-### **Fase 4: Integrer Nextcloud med Keycloak**+ 
 +===== Fase 4: Integrer Nextcloud med Keycloak =====
 1. Installer **Social Login & OIDC** app i Nextcloud: 1. Installer **Social Login & OIDC** app i Nextcloud:
-   - Gå til **Apps** → **Social Login & OIDC** → **Enable**.+   * Gå til **Apps** → **Social Login & OIDC** → **Enable**. 
 2. Konfigurer OIDC: 2. Konfigurer OIDC:
-   - **Provider URL**: `https://keycloak.example.com/auth/realms/example/.well-known/openid-configuration`. +   * **Provider URL**: <code>https://keycloak.example.com/auth/realms/example/.well-known/openid-configuration</code>. 
-   - **Client ID**: `nextcloud`. +   * **Client ID**: <code>nextcloud</code>. 
-   - **Client Secret**: (Hentes fra Keycloak under klienten). +   * **Client Secret**: (Hentes fra Keycloak under klienten). 
-   - **Button Text**: `Log ind med Keycloak`.+   * **Button Text**: <code>Log ind med Keycloak</code>. 
 3. Test login via Keycloak. 3. Test login via Keycloak.
  
---- +---- 
-### **Fase 5: Integrer med Windows AD (valgfrit)**+ 
 +===== Fase 5: Integrer med Windows AD (valgfrit) =====
 1. **Option A: Samba som AD-medlem**: 1. **Option A: Samba som AD-medlem**:
-   - Installer Samba og slut til AD: +   * Installer Samba og slut til AD: 
-     ```bash +<code bash> 
-     sudo apt install samba krb5-config winbind +sudo apt install samba krb5-config winbind 
-     sudo net ads join -U admin +sudo net ads join -U admin 
-     ``` +</code> 
-   - Konfigurer `/etc/sssd/sssd.conf` til at bruge `ad` provider.+   * Konfigurer <code>/etc/sssd/sssd.conf</code> til at bruge <code>ad</code> provider.
  
 2. **Option B: Keycloak + AD (direkte)**: 2. **Option B: Keycloak + AD (direkte)**:
-   - Opret en **ny LDAP User Federation** i Keycloak for AD: +   * Opret en **ny LDAP User Federation** i Keycloak for AD: 
-     - LDAP URL: `ldap://ad.example.com:389`. +     * LDAP URL: <code>ldap://ad.example.com:389</code>. 
-     - Bind DN: `CN=admin,CN=Users,DC=example,DC=com`. +     * Bind DN: <code>CN=admin,CN=Users,DC=example,DC=com</code>. 
-     - Base DN: `DC=example,DC=com`.+     * Base DN: <code>DC=example,DC=com</code>. 
 + 
 +---- 
 + 
 +==== Brugeroplevelse ==== 
 + 
 +===== Bruger på Linux-maskine ===== 
 +* Logger ind med **AD/LDAP-credentials** (via <code>sssd</code>). 
 +* Åbner Nextcloud → **automatisk logget ind via Keycloak SSO**. 
 + 
 +===== Bruger på Windows-maskine ===== 
 +* Logger ind på Windows med **AD-credentials**. 
 +* Åbner Nextcloud i browser → **viderestilles til Keycloak** → logger ind med **samme AD-credentials**. 
 + 
 +===== Admin ===== 
 +* Styrer **alle brugere/grupper centralt** i LDAP/AD. 
 +* Konfigurerer **rettigheder i Keycloak** (f.eks. hvilke grupper har adgang til Nextcloud). 
 + 
 +---- 
 + 
 +==== Sikkerhedsanbefalinger ==== 
 + 
 +===== LDAP ===== 
 +* Brug **LDAPS** (port 636) eller **StartTLS** for krypteret kommunikation. 
 +* Begræns **bind DN-rettigheder** (kun læs/adgang til nødvendige felter). 
 + 
 +===== Keycloak ===== 
 +* Aktiver **HTTPS** (aldrig HTTP i production). 
 +* Brug **stærke adgangskoder** til admin-brugere. 
 +* Aktiver **brute-force beskyttelse** (f.eks. max 5 forsøg). 
 + 
 +===== Nextcloud ===== 
 +* Konfigurer **CORS** korrekt for at tillade Keycloak-domænet. 
 +* Brug **AppArmor/SELinux** til at begrænse Nextclouds adgang. 
 + 
 +---- 
 + 
 +==== Alternativer og udvidelser ====
  
---- +^ Komponent       ^ Alternativ                          ^ Bemærkninger                                  ^ 
---- +| LDAP            | FreeIPA, Univention Corporate Server | Inkluderer Kerberos, DNS, og CA.               | 
-## **8. Eksempel på brugeroplevelse** +| Keycloak         | Authelia, LemonLDAP::NG               | Lettervægtsalternativer til IAM.              | 
-- **Bruger på Linux-maskine**: +| Nextcloud        | ownCloud, Seafile                     | Andre open-source fil-delingsløsninger.      | 
-  - Logger ind med **AD/LDAP-credentials** (via `sssd`). +| Samba           | Winbind (del af Samba)                | Til integration med AD.                      |
-  - Åbner Nextcloud → **automatisk logget ind via Keycloak SSO**.+
  
-- **Bruger på Windows-maskine**: +----
-  - Logger ind på Windows med **AD-credentials**. +
-  - Åbner Nextcloud i browser → **viderestilles til Keycloak** → logger ind med **samme AD-credentials**.+
  
-- **Admin**: +==== Opsummering ====
-  - Styrer **alle brugere/grupper centralt** i LDAP/AD. +
-  - Konfigurerer **rettigheder i Keycloak** (f.eks. hvilke grupper har adgang til Nextcloud).+
  
---- +^ Krav                          ^ Løsning                                                                 ^ 
---- +| Central brugerstyring         | LDAP + Keycloak (alle brugere ét sted).                                  | 
-## **9. Sikkerhedsanbefalinger** +| Single Sign-On (SSO)          | Keycloak (OIDC/SAML) til Nextcloud og andre applikationer.               | 
-- **LDAP**: +| Windows-kompatibilitet       | Samba (AD-integration) + Keycloak (federeret identitet).                | 
-  - Brug **LDAPS** (port 636) eller **StartTLS** for krypteret kommunikation. +| Digital suverænitet          | OpenLDAP, Keycloak, Nextcloud (alle open source).                        | 
-  - Begræns **bind DN-rettigheder** (kun læs/adgang til nødvendige felter). +| Skalerbarhed                  | LDAP-replikering, Keycloak clustering.                                   | 
-- **Keycloak**: +| Sikkerhed                     | MFA, LDAPS, HTTPS, audit logs.                                             |
-  - Aktiver **HTTPS** (aldrig HTTP i production). +
-  - Brug **stærke adgangskoder** til admin-brugere. +
-  - Aktiver **brute-force beskyttelse** (f.eks. max 5 forsøg). +
-- **Nextcloud**: +
-  - Konfigurer **CORS** korrekt for at tillade Keycloak-domænet. +
-  - Brug **AppArmor/SELinux** til at begrænse Nextclouds adgang.+
  
---- +----
---- +
-## **10. Alternativer og udvidelser** +
-| **Komponent**       | **Alternativ**                          | **Bemærkninger**                                  | +
-|---------------------|-----------------------------------------|--------------------------------------------------| +
-| **LDAP**            | FreeIPA, Univention Corporate Server   | Inkluderer Kerberos, DNS, og certificate authority. | +
-| **Keycloak**         | Authelia, LemonLDAP::NG                 | Lettervægtsalternativer til IAM.                | +
-| **Nextcloud**        | ownCloud, Seafile                       | Andre open-source fil-delingsløsninger.          | +
-| **Samba**           | Winbind (del af Samba)                  | Til integration med AD.                          |+
  
---- +==== Næste skridt ====
---- +
-## **11. Opsummering: Hvorfor denne opsætning?** +
-| **Krav**                          | **Løsning**                                                                 | +
-|-----------------------------------|-----------------------------------------------------------------------------| +
-| **Central brugerstyring**         | LDAP + Keycloak (alle brugere ét sted).                                  | +
-| **Single Sign-On (SSO)**          | Keycloak (OIDC/SAML) til Nextcloud og andre applikationer.               | +
-| **Windows-kompatibilitet**       | Samba (AD-integration) + Keycloak (federeret identitet).                | +
-| **Digital suverænitet**          | OpenLDAP, Keycloak, Nextcloud (alle open source).                        | +
-| **Skalerbarhed**                  | LDAP-replikering, Keycloak clustering.                                   | +
-| **Sikkerhed**                     | MFA, LDAPS, HTTPS, audit logs.                                             |+
  
---- 
---- 
-## **12. Næste skridt for dig, Søren** 
-Da du har erfaring med **Microsoft-systemer** og **digital suverænitet**, kunne følgende være relevante: 
 1. **Prøv opsætningen i et testmiljø**: 1. **Prøv opsætningen i et testmiljø**:
-   - Brug **Docker** til at køre LDAP (f.eks. `osixia/openldap`) og Keycloak. +   * Brug **Docker** til at køre LDAP (f.eks. <code>osixia/openldap</code>) og Keycloak. 
-   - Test integration med Nextcloud (Docker-container).+   * Test integration med Nextcloud (Docker-container).
  
 2. **Vurder SUSE-certificeringer**: 2. **Vurder SUSE-certificeringer**:
-   - **SUSE Certified Administrator (SCA)** i **Enterprise Linux** (dækker LDAP, Samba, og IAM). +   * **SUSE Certified Administrator (SCA)** i **Enterprise Linux**. 
-   - **SUSE Certified Engineer (SCE)** i **Identity Management** (fokus på FreeIPA og integration).+   * **SUSE Certified Engineer (SCE)** i **Identity Management**.
  
 3. **Overvej FreeIPA**: 3. **Overvej FreeIPA**:
-   - Red Hat’s løsning til **integreret LDAP + Kerberos + DNS + Certificate Authority**. +   * Red Hat’s løsning til **integreret LDAP + Kerberos + DNS + Certificate Authority**.
-   - God til **fuld erstatning af AD** i Linux-miljøer.+
  
 4. **Automatiser med Ansible**: 4. **Automatiser med Ansible**:
-   - Skriv playbooks til at deploye LDAP, Keycloak, og Nextcloud.+   * Skriv playbooks til at deploye LDAP, Keycloak, og Nextcloud.
  
----+----
  
 +==== Spørgsmål til refleksion ====
 +* Har du allerede en **LDAP-server** eller **Active Directory** i drift, som du ønsker at integrere med?
 +* Skal **Nextcloud** være den eneste applikation, eller er der andre (f.eks. GitLab, Jira)?
 +* Ønsker du at **erstatte AD** på sigt, eller skal det kun være parallelt?
teknik/infrastruktur/ldap.1784628102.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.