Zurück zum Blog Back to Blog

Keycloak User Federation mit Active Directory Keycloak User Federation with Active Directory

Implementierung einer nahtlosen LDAP-Integration für einheitliches Identity Management Implementation of seamless LDAP integration for unified Identity Management

Keycloak Active Directory LDAP SSO IAM Identity Management

Überblick Overview

Die Integration von Keycloak mit Active Directory durch User Federation ermöglicht es Unternehmen, ihre bestehende AD-Infrastruktur zu nutzen und gleichzeitig moderne Identity Management-Funktionen bereitzustellen. In diesem Artikel erkläre ich die praktische Implementierung einer solchen Lösung.

Integrating Keycloak with Active Directory through User Federation enables organizations to leverage their existing AD infrastructure while providing modern Identity Management capabilities. This article explains the practical implementation of such a solution.

Ziel - Single Sign-On (SSO):Goal - Single Sign-On (SSO): Bestehende AD-Benutzer sollen sich nahtlos mit ihren gewohnten Zugangsdaten bei Keycloak-geschützten Anwendungen anmelden können, ohne dass neue Accounts erstellt werden müssen. Eine zentrale IAM-Lösung für alle Anwendungen. Existing AD users should be able to seamlessly authenticate with their familiar credentials in Keycloak-protected applications without requiring new account creation. A centralized IAM solution for all applications.

Architektur-Übersicht Architecture Overview

Keycloak Active Directory Integration Architecture Diagram showing LDAP User Federation Authentication Flow

Architektur der Keycloak-Active Directory Integration Keycloak-Active Directory Integration Architecture

Die Architektur zeigt den Datenfluss zwischen den verschiedenen Komponenten:

The architecture shows the data flow between the various components:

  • AnwendungenApplications authentifizieren sich über OIDC/SAML bei Keycloak authenticate via OIDC/SAML with Keycloak
  • Keycloak fungiert als Identity Provider und vermittelt zwischen Apps und AD acts as Identity Provider and mediates between Apps and AD
  • Active Directory bleibt die zentrale Benutzerverwaltung remains the central user management system
  • LDAP-ProtokollLDAP Protocol ermöglicht die Kommunikation zwischen Keycloak und AD enables communication between Keycloak and AD

Konfiguration der User Federation User Federation Configuration

1. LDAP Provider erstellen 1. Create LDAP Provider

Navigieren Sie in der Keycloak Admin Console zu "User Federation" und erstellen Sie einen neuen LDAP Provider:

Navigate in the Keycloak Admin Console to "User Federation" and create a new LDAP Provider:

Console Path: Realm → User Federation → Add Provider → LDAP

Connection URL: ldaps://dc1.example.com:636
Bind DN: CN=keycloak-svc,OU=Service Accounts,DC=example,DC=com
Bind Credential: [Service Account Password]

2. Basis-Konfiguration 2. Basic Configuration

# LDAP Settings
Users DN: OU=Users,DC=example,DC=com
Username LDAP attribute: sAMAccountName
RDN LDAP attribute: cn
UUID LDAP attribute: objectGUID
User Object Classes: person, organizationalPerson, user

# Connection Settings
Connection Timeout: 5000
Read Timeout: 10000
Connection Pooling: true
Pagination: true

3. Mapper-Konfiguration 3. Mapper Configuration

Erstellen Sie Attribut-Mapper für die gewünschten AD-Felder:

Create attribute mappers for the desired AD fields:

# Standard Mapper
- username → sAMAccountName
- email → mail  
- firstName → givenName
- lastName → sn

# Gruppen Mapper
Name: group-ldap-mapper
Mapper Type: group-ldap-mapper
LDAP Groups DN: OU=Groups,DC=example,DC=com
Group Object Classes: group
Group Name LDAP Attribute: cn

Erweiterte Funktionen Advanced Features

Rollenbasierte Zugriffskontrolle Role-based Access Control

Option 1: Automatische Rollenzuweisung basierend auf AD-Gruppen Option 1: Automatic Role Assignment Based on AD Groups

Voraussetzungen für Option 1: Stellen Sie sicher, dass die Benutzerrollen auf dem LDAP-Server wie folgt repräsentiert sind:

Prerequisites for Option 1: Ensure that user roles are represented on the LDAP server as follows:

  • Eine Organisationseinheit (OU), z.B. "Roles" oder "Groups"
  • An organizational unit (OU), e.g., "Roles" or "Groups"
  • Gruppen unter dieser Einheit, die die individuellen Benutzerrollen repräsentieren
  • Groups under this unit representing individual user roles
  • Das cn-Attribut der Gruppen entspricht den Namen der Keycloak-Rollen
  • The cn attribute of groups matches Keycloak role names
  • Benutzer werden über das member-Attribut zu diesen Gruppen hinzugefügt
  • Users are added to groups via the member attribute
# Option 1: Automatische Rollenzuweisung
TBD

Option 2: Standard-Rolle für alle LDAP-Benutzer Option 2: Default Role for All LDAP Users

Falls die AD-Gruppen nicht den Keycloak-Rollennamen entsprechen, verwenden Sie einen Standard-Mapper, der allen LDAP-Benutzern eine Platzhalterrolle zuweist:

If AD groups don't match Keycloak role names, use a default mapper that assigns a placeholder role to all LDAP users:

# Option 2: Standard-Rollenzuweisung
TBD

Password Sync

Hinweis:Note: Bei AD-Integration wird empfohlen, Passwort-Updates weiterhin über AD durchzuführen und Keycloak im READ_ONLY Modus zu betreiben. For AD integration, it is recommended to continue password updates through AD and operate Keycloak in READ_ONLY mode.

Troubleshooting

Häufige Probleme Common Issues

  • LDAP Connection Failed: Überprüfen Sie Firewall-Regeln und Zertifikate Check firewall rules and certificates
  • User Import Issues: Validieren Sie die Users DN und Object Classes Validate Users DN and Object Classes
  • Group Mapping Fehler: Stellen Sie sicher, dass der Service Account Lesezugriff auf Gruppen hat Ensure the Service Account has read access to groups
  • Performance Probleme: Aktivieren Sie Connection Pooling und Pagination Enable Connection Pooling and Pagination

Best Practices

  • Service Account:Service Account: Verwenden Sie einen dedizierten Service Account mit minimalen Berechtigungen Use a dedicated Service Account with minimal permissions
  • SSL/TLS: Nutzen Sie immer verschlüsselte LDAPS-Verbindungen Always use encrypted LDAPS connections
  • Caching: Konfigurieren Sie angemessene Cache-Einstellungen für bessere Performance Configure appropriate cache settings for better performance
  • Monitoring: Implementieren Sie Überwachung für LDAP-Verbindungen und Sync-Prozesse Implement monitoring for LDAP connections and sync processes
  • Testing: Testen Sie die Integration mit verschiedenen AD-Gruppenmitgliedschaften Test the integration with various AD group memberships

Fazit Conclusion

Die Integration von Keycloak mit Active Directory über User Federation bietet eine elegante Lösung für hybride Identity Management-Szenarien. Durch die zentrale Verwaltung in AD bleiben bestehende Prozesse erhalten, während moderne SSO-Funktionen für neue Anwendungen verfügbar werden.

Integrating Keycloak with Active Directory via User Federation provides an elegant solution for hybrid Identity Management scenarios. Central management in AD preserves existing processes while making modern SSO features available for new applications.

Diese Architektur bildet eine solide Grundlage für die schrittweise Migration zu cloud-nativen Identity-Lösungen, ohne bestehende Workflows zu unterbrechen.

This architecture forms a solid foundation for gradual migration to cloud-native identity solutions without disrupting existing workflows.