Blog

Azure Databricks SCIM-Bereitstellung mit Terraform automatisieren

Alexander Bij

Alexander Bij

Aktualisiert Oktober 14, 2025
5 Minuten

Tolle Neuigkeiten! Die automatische Identitätsverwaltung ist bald für Azure verfügbar. Lesen Sie mehr darüber im Ankündigungsblog von Databricks.

Bis dahin empfiehlt es sich, die Azure Entra ID SCIM Enterprise App für die automatische Einweg-Synchronisierung von Benutzern in einer Gruppe zu verwenden. Die SCIM-Bereitstellung hat jedoch einige Nachteile im Vergleich zur kommenden Lösung für das automatische Identitätsmanagement:

FunktionAutomatische IdentitätsverwaltungSCIM-Bereitstellung
Sync-VerzögerungSofortSynchronisierung alle 40 Minuten
Benutzer synchronisieren
Sync-Gruppen✓ (direkte Mitglieder)
Verschachtelte Gruppen synchronisieren
Synchrondienst-Prinzipien
Verwalten Sie die EntraID Anwendung✓ (negativ)
Erfordert MS EntraId Prämie✓ (neutral)
Erfordert MS EntraID Cloud App admin✓ (neutral)
Erfordert eine Identitätsföderation✓ (neutral)

Während der öffentlichen Vorschauphase gibt es bei der automatischen Identitätsverwaltung einige Einschränkungen der Benutzeroberfläche, die Sie beachten sollten.

Trotz dieser Einschränkungen vereinfacht diese neue Methode die Integration mit Entra ID und sollte der SCIM-Bereitstellung vorgezogen werden.

SCIM-Bereitstellung auf Kontoebene

Es ist wahrscheinlich, dass die SCIM-Bereitstellung veraltet sein wird, sobald Automatic Identity Management allgemein verfügbar wird (GA). Denken Sie daran, dass SCIM-Provisioning nur eine kurzfristige Lösung ist und einige Einschränkungen mit sich bringt.

Warum schreiben wir einen Blog über die SCIM-Bereitstellungsanwendung? Weil die Einrichtung der Terraform-Automatisierung für SCIM nicht gut dokumentiert ist und es ziemlich schwierig sein kann, sie zu verstehen. Einige Stackoverflow-Threads führen in Sackgassen, und selbst ChatGPT hat keine klare Lösung geliefert:

Es mag sich so anfühlen, als käme dieser Blog drei Jahre zu spät, aber ich hoffe, dass einige von Ihnen immer noch Nutzen aus dem Arbeitsbeispiel ziehen können.

In dieser Anleitung verwenden wir Terraform, um die Auswahl der Gruppen zu automatisieren, die mit Unity Catalog auf Kontoebene synchronisiert werden sollen.

tf_scim_uebersicht

SCIM-App zur einmaligen Einrichtung

Folgen Sie dem Verfahren zur Einrichtung der SCIM-App wie in Schritt 2 - Konfigurieren der SCIM-Bereitstellung mit Microsoft Entra ID beschrieben. Verbinden Sie die App-Bereitstellung mit Databricks auf der Ebene des Kontos. Da es sich hierbei um einen einmaligen Vorgang handelt, können Sie ihn auch manuell durchführen.

Sobald die SCIM-App betriebsbereit ist, müssen Sie auswählen, welche Gruppen synchronisiert werden sollen. Anstatt die SCIM-App manuell zu aktualisieren, wie in Schritt 3 - Gruppen der Anwendung zuweisen beschrieben, können wir diesen Prozess mit Terraform automatisieren.

Unity Catalog Gruppen auf Kontoebene können vom Typ extern sein, wenn sie mit einer ObjectId verknüpft sind. Die Gruppen können nicht mehr über die Benutzeroberfläche oder über die Einstellungsseite der Workspace-Administration von Gruppenmanagern oder Account-Administratoren aktualisiert werden. Um dies zu erzwingen, aktivieren Sie die Option Unveränderliche externe Gruppen auf der Vorschauseite der Kontenkonsole.

Automatisierung mit Terraform

Die Liste der Gruppen kann häufig aktualisiert werden. Daher sollte dieser Prozess automatisiert werden, um die folgenden Ziele zu erreichen:

  • Unkomplizierte Eingabe: Eine Liste von Anzeigenamen der EntraId-Gruppe.
  • Fügen Sie der SCIM-App alle 40 Minuten Gruppen zur Synchronisierung hinzu.
  • Stellen Sie sicher, dass die Gruppen im Unity-Katalog als "extern" erstellt werden (nicht über die Benutzeroberfläche änderbar).
  • Erstellen Sie vorab Gruppen auf der Ebene des Unity Catalog-Kontos, damit Sie nicht darauf warten müssen, dass die SCIM-App ausgelöst wird.
    • Erfordert die Berechtigung Account Admin in der Kontokonsole und könnte ignoriert werden.

Neue Gruppen werden zunächst leer erstellt, und sobald SCIM ausgeführt wurde, werden ihre Mitglieder verfügbar. Der entscheidende Vorteil der direkten Erstellung von Gruppen auf Kontoebene besteht darin, dass sie sofort nach Abschluss des Terraform-Anwendungsprozesses verwendet werden können. Diese Gruppen können dann verwendet werden, um Berechtigungen zu vergeben oder Zugriff auf den Arbeitsbereich zu gewähren.

# The github gist has an extended example with providers, variable, lookups etc.

locals {
  # Mapping of the group name => object_id
  included_groups = {
    "group1": "5f47aa77-1efd-4496-badc-e41861795ab5"
    "group2": "34194136-7796-4c15-8b33-cbd9a7930cc8"
  }

  # github gist has a proper lookup example.
  scim_app_user_role_id = "f02bd5f2-5ea8-41a4-901d-c20021767e96"
}

# Create (empty) external groups in the Databrick Account-level.
# permissions: requires Account Admin
resource "databricks_group" "scim" {
  for_each      = local.included_groups
  display_name  = each.key
  external_id   = each.value
  force         = true  # don't fail when the group already exists.
}

# Create groups in SCIM-app for synchronization
# permissions: requires Owner on Enterprise Application
resource "azuread_app_role_assignment" "scim_group" {
  for_each            = local.included_groups
  app_role_id         = local.scim_app_user_role_id
  principal_object_id = each.value
  resource_object_id  = "8bac0fbd-d71f-4d2f-8e7a-b4b0f82f2f60" # SCIM-app Object Id
}

Sehen Sie sich den vollständigen Terraform-Code in diesem github gist an

Service Principal als Eigentümer der SCIM-App hinzufügen

Für die CI/CD-Automatisierung müssen Sie der SCIM-App einen Service Principal zuweisen, damit sie Gruppenzuweisungen verarbeiten kann. Als Eigentümer der App können Sie weitere Eigentümer hinzufügen.

Das Azure-Portal ermöglicht es Ihnen zwar, andere Benutzer als Eigentümer hinzuzufügen, aber es unterstützt nicht das Hinzufügen von Serviceprinzipalen. Glücklicherweise können Sie mithilfe der Microsoft Graph API auch Nicht-Benutzern Eigentümer zuweisen.

Sehen Sie sich den Azure-CLI-Befehl in diesem gitHub gist an.

Fazit

Die Automatisierung der SCIM-Bereitstellung mit Terraform vereinfacht die Synchronisierung von Benutzern und Gruppen für Unity Catalog auf Kontoebene. Auch wenn ein automatisches Identitätsmanagement in Sicht ist, bleibt SCIM trotz seiner Einschränkungen vorerst die beste Lösung.

Durch den Einsatz von Terraform entfällt die Notwendigkeit einer manuellen Gruppenzuweisung, die sofortige Verfügbarkeit von Gruppen im Unity Catalog wird sichergestellt und der Bereitstellungsprozess wird optimiert. Darüber hinaus ermöglicht die Zuweisung eines Service Principal an die SCIM-App über die Microsoft Graph API eine vollständige CI/CD-Automatisierung.

Da Databricks die Identitätsverwaltung weiter verbessert, lohnt es sich, die zukünftigen Entwicklungen im Auge zu behalten. Aber bis dahin sorgt dieser Ansatz für eine effizientere und automatisierte Verwaltung der Identitätssynchronisierung.

Haben Sie eine ähnliche Lösung implementiert, oder haben Sie Fragen? Teilen Sie uns Ihre Gedanken mit!

Verfasst von

Alexander Bij

Contact

Let’s discuss how we can support your journey.