> For the complete documentation index, see [llms.txt](https://docs.enginsight.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enginsight.com/docs/knowledge-base/siem/wie-erstelle-ich-einen-identity-provider-fur-microsoft-entra-id-im-enginsight-siem.md).

# Wie erstelle ich einen Identity Provider für Microsoft Entra ID im Enginsight SIEM?

Identity Provider bieten dir die Möglichkeit, Enginsight unter anderem direkt mit Microsoft Entra ID (vormals Azure AD) zu verbinden. Auf diese Weise kannst du dem SIEM Benutzer- und Gruppeninformationen zur Verfügung stellen, um diese zur Analyse und Weiterverarbeitung zu nutzen. Zudem ist es möglich, Microsoft Entra ID-Benutzer direkt aus der Enginsight Plattform heraus zu blockieren.

Um einen Identity Provider in Enginsight hinzufügen und Benutzer- und Gruppeninformationen replizieren zu können, musst du zunächst im Microsoft Entra ID-Portal eine neue Anwendung erstellen und dieser die entsprechenden Berechtigungen für die Microsoft Graph API erteilen.

Im folgenden Artikel zeigen wir dir, welche Schritte du dafür vornehmen musst.

***

## Voraussetzungen

* Ein Benutzerkonto im **Microsoft 365-Tenant**. Dabei sind zwei unterschiedliche Rollenebenen relevant:
  * Für die **Registrierung einer Anwendung** ist mindestens die Rolle **Application Developer** erforderlich.
  * Für das **Erteilen der Administratorzustimmung für Anwendungsberechtigungen** sind die Rollen **Privileged Role Administrator** oder **Global Administrator** erforderlich. Die Rollen **Application Administrator** oder **Cloud Application Administrator** reichen für Microsoft Graph-Anwendungsberechtigungen nicht aus.
* Die Enginsight Plattform muss `login.microsoftonline.com` und `graph.microsoft.com` per HTTPS erreichen können. Bei On-Premises-Installationen muss dieser ausgehende Datenverkehr in der Firewall bzw. im Proxy freigegeben sein.

***

## Konfigurationen im Microsoft Entra ID-Portal

{% stepper %}
{% step %}

### Microsoft Entra Admin Center öffnen&#x20;

1. Öffne `https://entra.microsoft.com` in einem Browser. Alternativ kannst du `https://portal.azure.com` öffnen und nach **Microsoft Entra ID** suchen. Die Seiten sind identisch.
2. Melde dich mit dem Administrator-Konto an.
3. Wenn du Zugriff auf mehrere Tenants (Mandanten) hast, nutze das **Einstellungen**-Symbol (Zahnrad) im oberen Menü, um zum Tenant zu wechseln, den du anbinden möchtest. Der Tenant-Name wird rechts oben angezeigt.
   {% endstep %}

{% step %}

### Neue Anwendung registrieren

Registriere Enginsight als neue Anwendung in Microsoft Entra-ID. Mehr Informationen hierzu findest du in der [offiziellen Hersteller-Dokumentation](https://learn.microsoft.com/de-de/entra/identity-platform/quickstart-register-app).

{% hint style="warning" %}
**Bitte beachte**: Enginsight übernimmt für Inhalte und Aktualität der Dokumentation von Drittanbietern keine Gewähr.
{% endhint %}

Gib dabei folgende Werte ein:

* **Name**: Der Name ist frei wählbar und wird nur im Microsoft Entra ID-Portal angezeigt. Wir schlagen einen aussagekräftigen Namen wie *Enginsight SIEM Identity Provider* vor.
* **Unterstützte Kontotypen**: Wähle als unterstützten Kontotyp die Option **Nur einzelner Mandant – \<Ihr Mandant>** aus. In älteren Ansichten lautet diese Option **Nur Konten in diesem Organisationsverzeichnis**.
* **Umleitungs-URIs**: Lasse dieses Feld leer.
  {% endstep %}

{% step %}

### Client-ID und Tenant-ID erhalten

Nach der Registrierung gelangst du auf die Übersichtsseite der neuen Anwendung.

Hier findest du sowohl die **Client-ID** (auch **Application ID** oder **Anwendungs-ID**) als auch die  **Tenant-ID** (auch **Directory ID** oder **Mandanten-ID**). Diese Informationen benötigst du später beim [Anlegen eines Identity Providers](#hinzufugen-eines-identity-providers-fur-microsoft-entra-id-in-enginsight) in der Enginsight Plattform.
{% endstep %}

{% step %}

### Client-Secret erstellen

1. Erstelle für die neue Anwendung ein **Client-Secret** (auch **App-Geheimnis**). Mehr Informationen hierzu findest du in der [offiziellen Hersteller-Dokumentation](https://learn.microsoft.com/de-de/entra/identity-platform/how-to-add-credentials?tabs=client-secret).

{% hint style="warning" %}
**Bitte beachte**: Enginsight übernimmt für Inhalte und Aktualität der Dokumentation von Drittanbietern keine Gewähr.
{% endhint %}

Gib dabei folgende Werte ein:

* **Beschreibung**: Die Beschreibung ist frei wählbar.
* **Läuft ab**: Gib eine Laufzeit für das Client-Secret an, wobei Microsoft Entra ID maximal 24 Monate erlaubt. Wähle die längste Laufzeit, die deine Sicherheitsrichtlinie zulässt, und notiere dir das Ablaufdatum.

{% hint style="warning" %}
**Bitte beachte**: Wenn das Client-Secret abläuft, stoppt die Synchronisierung des Enginsight SIEM mit Entra ID mit dem Fehler `AADSTS7000222` / `invalid_client`. In diesem Fall musst du das [Client-Secret austauschen](#austausch-eines-abgelaufenen-client-secrets).
{% endhint %}

2. Kopiere das Client-Secret und speichere es dir an einem sicheren Ort ab.

{% hint style="danger" %}
**Bitte beachte**: Wenn du in Microsoft Entra-ID ein Client-Secret hinzufügst, wird dieses direkt nach der Erstellung **nur einmal angezeigt und dann nie wieder**. Achte also darauf, dass du dir dein Client-Secret sofort nach der Erstellung notierst.
{% endhint %}
{% endstep %}

{% step %}

### API-Berechtigungen erteilen

Nun musst du der neuen Anwendung Berechtigungen für den Zugriff auf die Microsoft Graph API erteilen. Mehr Informationen hierzu findest du auch in der [offiziellen Hersteller-Dokumentation](https://learn.microsoft.com/de-de/entra/identity-platform/quickstart-configure-app-access-web-apis).

{% hint style="warning" %}
**Bitte beachte**: Enginsight übernimmt für Inhalte und Aktualität der Dokumentation von Drittanbietern keine Gewähr.
{% endhint %}

{% hint style="danger" %}
**Bitte beachte**: Für das Erteilen der Administratorzustimmung für Microsoft Graph-Anwendungsberechtigungen sind die Microsoft Entra ID-Rollen **Privileged Role Administrator** oder **Global Administrator** erforderlich. Die Rollen **Application Administrator** oder **Cloud Application Administrator** reichen für Microsoft Graph-Anwendungsberechtigungen nicht aus.
{% endhint %}

Nimm folgende Schritte vor:

1. Navigiere zum Menüpunkt **API-Berechtigungen**.
2. Klicke auf **Berechtigung hinzufügen**.
3. Wähle **Microsoft Graph** aus.
4. Wähle die Option **Anwendungsberechtigungen** aus. Mit Anwendungsberechtigungen kann Enginsight als Dienst ohne angemeldeten Benutzer agieren.
5. Nutze das Suchfeld und wähle die folgenden Berechtigungen aus:

| Berechtigung                                                                                                                                                                           | Erforderlich für                                                                                                                                           | Hinweise                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `User.Read.All`                                                                                                                                                                        | Benutzerreplikation und Verbindungstest in der Enginsight Plattform                                                                                        | **Erforderlich**: Ohne diese Berechtigung meldet der Test `baseReadable: false` und die Microsoft Graph API antwortet mit `403`.                                                                                                                                                                                                                                                                                                                                                                  |
| <p><code>Directory.Read.All</code><br><br>Least-Privilege-Alternative: siehe <a href="#optional-least-privilege-alternative-zur-api-berechtigung-directory.read.all">Schritt 6</a></p> | Anzeige von Gruppenmitgliedschaften und Verzeichnisrollen (zum Beispiel *Global* *Administrator*) jedes replizierten Benutzers in der Enginsight Plattform | <p><strong>Empfohlen</strong>: Microsoft dokumentiert diese Berechtigung als die Anwendungsberechtigung mit den geringsten Rechten für den <code>memberOf</code>-Aufruf, den die Synchronisierung für Rollen verwendet. Außerdem werden vollständige Gruppendetails zurückgegeben.</p><p></p><p>Ohne diese Berechtigung werden Benutzer weiterhin repliziert, Gruppen und <code>directoryRoles</code> bleiben jedoch leer und der Eintrag erhält einen <code>groupRoleEnrichmentError</code>.</p> |
| `User.EnableDisableAccount.All`                                                                                                                                                        | Blockieren eines Azure-Benutzers aus der Enginsight Plattform heraus                                                                                       | <p><strong>Optional</strong>: Zusammen mit <code>User.Read.All</code> ist dies laut Microsoft die Kombination mit den geringsten Rechten, um <code>accountEnabled</code> zu ändern. </p><p></p><p><code>User.ReadWrite.All</code> funktioniert ebenfalls, ist aber weiter gefasst.</p>                                                                                                                                                                                                            |

6. Klicke auf **Berechtigungen hinzufügen**.
7. Klicke auf **Administratorzustimmung für \<Mandantennamen> erteilen** und bestätige mit **Ja**.
8. Klicke auf **Aktualisieren** und prüfe die Spalte **Status**. Hier muss jede Zeile ein grünes Häkchen und **für \<Mandantennamen> erteilt** anzeigen. Ist der Button ausgegraut ist, hat dein Microsoft Entra ID-Konto nicht die Rolle **Privileged Role Administrator** bzw. **Global Administrator**.
   {% endstep %}

{% step %}

### Optional: Least-Privilege-Alternative zur API-Berechtigung `Directory.Read.All`&#x20;

Eine Least-Privilege-Alternative zur API-Berechtigung `Directory.Read.All` sind die Berechtigungen `GroupMember.Read.All` (vollständige Gruppeneigenschaften) plus `RoleManagement.Read.Directory` (Verzeichnisrollen).&#x20;

Microsoft führt dieses Berechtigungspaar für die Gruppen- und Rollen-Endpunkte auf, jedoch nicht ausdrücklich für den `memberOf`-Aufruf.

Prüfe daher nach der ersten Synchronisierung mit der Enginsight Plattform, ob dort die Informationen zu `directoryRoles` angezeigt werden. Ist dies nicht der Fall, ändere die API-Berechtigung zu `Directory.Read.All`.
{% endstep %}

{% step %}

### Optional: Weitere Berechtigungen bei Nutzung der Enginsight Blockierungsfunktion von Microsoft Entra ID-Benutzern

Wenn du aus der Enginsight Plattform heraus mit der Option **Azure-Benutzer sperren** einen Microsoft Entra ID-Benutzer blockieren möchtest, der eine Administratorrolle hat, verlangt Microsoft Graph zusätzlich, dass der aufrufenden Anwendung selbst eine privilegierte Verzeichnisrolle zugewiesen wird.

Nimm dazu folgende Schritte vor:&#x20;

1. Navigiere im Microsoft Entra ID-Portal zu **Entra ID** → **Rollen & Administratoren**.
2. Wähle die Rolle **Privileged Authentication Administrator** aus. Diese Rolle deckt alle Administratorkonten ab.
3. Klicke auf **Zuweisungen hinzufügen**.
4. Wähle die [zuvor erstellte Anwendung](#neue-anwendung-registrieren) aus, um ihr die privilegierte Rolle zuzuweisen.
   {% endstep %}
   {% endstepper %}

***

## Hinzufügen eines Identity Providers in Enginsight

Nachdem du alle Einstellungen im Microsoft Entra ID-Portal vorgenommen hast, kannst du in der Enginsight Plattform einen neuen Identity Provider hinzufügen.

Nimm dazu folgende Schritte vor:&#x20;

{% stepper %}
{% step %}
Navigiere in der Enginsight Plattform zu **SIEM** → [Identity Provider](https://docs.enginsight.com/docs/manual/bedienung-der-plattform/siem/erweiterte-einstellungen/identity-provider) und klicke in der rechten oberen Ecke auf auf [Identity Provider hinzufügen](https://docs.enginsight.com/docs/manual/bedienung-der-plattform/siem/erweiterte-einstellungen/identity-provider/identity-provider-hinzufugen).
{% endstep %}

{% step %}
Gib dem neuen Identity Provider einen aussagekräftigen **Anzeigenamen**, z.B. *Microsoft Entra ID \<Organisation>*.
{% endstep %}

{% step %}
Setze einen Haken in die Checkbox neben **Aktiviert**, um den Identity Provider zu aktivieren.
{% endstep %}

{% step %}
Wähle im Feld **Quelle** die Option **Microsoft Entra-ID** aus.
{% endstep %}

{% step %}
Wähle im Feld **Authentifizierungsmethode** die Option **Geheimnisbasierte Authentifizierung** aus.
{% endstep %}

{% step %}
Gib die **Mandanten-ID** (Tenant-ID), die **Client-ID** sowie das zur Client-ID gehörende **Client-Secret** an, die du [zuvor in Microsoft Entra ID erstellt hast](#konfigurationen-im-microsoft-entra-id-portal).
{% endstep %}

{% step %}
Klicke auf **Verbindung testen** in der rechten oberen Ecke der Ansicht.

Ein erfolgreicher Test gibt Folgendes zurück:

```
{ "ok": true, "error": null, "details": { "bind": true, "baseReadable": true, "userCount": <NumberOfUsers> } }
```

Dabei bedeutet `bind: true`, dass das Token ausgestellt wurde und Mandanten-ID, Client-ID und Client-Secret korrekt sind. `baseReadable: true` bedeutet, dass die API-Berechtigung `User.Read.All` erteilt und die Administratorzustimmung erteilt wurde.
{% endstep %}

{% step %}
Wenn der Test erfolgreich ist, setze einen Haken in die Checkbox neben **Replikation** und speichere die Einstellungen mit Klick auf **Identity Provider hinzufügen**.

{% hint style="danger" %}
**Bitte beachte**: Verlässt du diese Ansicht ohne zu speichern, sind alle vorgenommenen Einstellungen verloren und können nicht wiederhergestellt werden!&#x20;
{% endhint %}
{% endstep %}

{% step %}
In der Identity-Provider-Übersicht kannst du nun den Status der Replikation, den Zeitpunkt der letzten Synchronisation und die Anzahl der replizierten Benutzer einsehen.

* Klicke auf **Replikation** in der rechten oberen Ecke der Ansicht, um eine Liste aller replizierten Benutzer anzuzeigen und ob diese aktiv oder gesperrt sind.
* Klicke auf einen replizierten Benutzer, um weitere Detailinformationen zu dem jeweiligen Benutzer zu erhalten, wie sie in Microsoft Entra ID hinterlegt sind.
  {% endstep %}
  {% endstepper %}

***

## Austausch eines abgelaufenen Client-Secrets

{% hint style="info" %}
Wir empfehlen, eine Kalendererinnerung einige Wochen vor dem Ablaufdatum des Client-Secrets einzurichten. Das Microsoft Entra ID-Portal zeigt das Ablaufdatum in der Client-Secrets-Liste an und markiert abgelaufene Secrets rot.
{% endhint %}

Wenn das Client-Secret für Microsoft Entra ID abgelaufen ist, musst du folgende Schritte vornehmen:

{% stepper %}
{% step %}
Erstelle im Microsoft Entra ID-Portal ein neues Client-Secret für die betroffene Anwendung.
{% endstep %}

{% step %}
Navigiere in der Enginsight Plattform zu **SIEM** → **Identity Provider** und klicke auf den betroffenen Identity Provider.
{% endstep %}

{% step %}
Füge das neue **Client-Secret** ein.
{% endstep %}

{% step %}
Klicke auf **Verbindung testen** in der rechten oberen Ecke der Ansicht.
{% endstep %}

{% step %}
Klicke auf **Änderungen speichern**, wenn der Test erfolgreich war. Warte, bis die Synchronisation zwischen Microsoft Entra ID und Enginsight erfolgreich abgeschlossen ist.
{% endstep %}

{% step %}
Navigiere zurück zum Microsoft Entra ID-Portal und lösche das alte Client-Secret.
{% endstep %}
{% endstepper %}

***

## Troubleshooting

| Symptom / Fehlertext                                                                                             | Ursache                                                                                                                                                                                  | Behebung                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AADSTS7000215: Invalid client secret provided`                                                                  | Das Client-Secret ist falsch. Dies kann z.B. der Fall sein, wenn statt des **Werts** (**Value**) die **Secret-ID** kopiert wurde.                                                        | Erstelle ein neues Client-Secret und kopiere den korrekten Wert.                                                                                                                                                                               |
| `AADSTS7000222: ... client secret keys are expired`                                                              | Das Client-Secret ist abgelaufen.                                                                                                                                                        | Tausche das Client-Secret [wie zuvor beschrieben](#austausch-eines-abgelaufenen-client-secrets) aus.                                                                                                                                           |
| `AADSTS700016: Application ... was not found in the directory/tenant`                                            | Die Client-ID gehört nicht zu diesem Tenant oder die Tenant-ID ist falsch.                                                                                                               | Überprüfe die Tenant-ID und die Client-ID im Microsoft Entra ID-Portal erneut.                                                                                                                                                                 |
| `AADSTS90002: Tenant ... not found`                                                                              | Die Tenant-ID ist falsch oder es wurde der Tenant-Domain-Name verwendet.                                                                                                                 | Überprüfe die Tenant-ID im Microsoft Entra ID-Portal erneut.                                                                                                                                                                                   |
| Test zeigt `bind: true`, `baseReadable: false` oder Graph `403 Authorization_RequestDenied`                      | Die API-Berechtigung `User.Read.All` fehlt, wurde als **Delegierte Berechtigung** statt als **Anwendungsberechtigung** hinzugefügt oder die Administratorzustimmung wurde nicht erteilt. | Führe den Schritt [API-Berechtigungen erteilen](#api-berechtigungen-erteilen) aus und prüfe den grünen Status **für \<Mandantennamen> erteilt**.                                                                                               |
| Benutzer werden repliziert, aber Gruppen / `directoryRoles` bleiben leer, `groupRoleEnrichmentError` ist gesetzt | Die API-Berechtigung  `Directory.Read.All` oder das Least-Privilege-Berechtigungspaar fehlen.                                                                                            | Führe den Schritt [API-Berechtigungen erteilen](#api-berechtigungen-erteilen) aus. Die Felder werden bei der nächsten Synchronisierung gefüllt.                                                                                                |
| Benutzer-Blockierungsfunktion in Enginsight schlägt mit `403` fehl                                               | Die API-Berechtigung `User.EnableDisableAccount.All` fehlt oder der Zielbenutzer hat eine Administratorrolle.                                                                            | Führe die Schritte [API-Berechtigungen erteilen](#api-berechtigungen-erteilen) und [Optional: Bei Nutzung der Blockierungsfunktion](#optional-weitere-berechtigungen-bei-nutzung-der-enginsight-blockierungsfunktion-von-azure-benutzern) aus. |
| Test läuft in einen Timeout / `ENOTFOUND login.microsoftonline.com`                                              | Ausgehende HTTPS-Verbindungen sind blockiert (On-Premises).                                                                                                                              | <p>Gib </p><p><code>login.microsoftonline.com</code> und <code>graph.microsoft.com</code> in Firewall bzw. Proxy frei.</p>                                                                                                                     |

***
