> 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/verschiedenes/wie-kann-ich-in-enginsight-single-sign-on-sso-uber-microsoft-365-einrichten.md).

# Wie kann ich in Enginsight Single Sign-on (SSO) über Microsoft 365 einrichten?

Die Enginsight Plattform bietet dir neben Benutzername und Passwort auch die Möglichkeit, dich per Single Sign-on (SSO) über Microsoft 365 anzumelden.&#x20;

Im Folgenden zeigen wir dir, welche Schritte du vornehmen musst, um SSO einzurichten.

***

## Voraussetzungen

* Ein Benutzerkonto im **Microsoft 365-Tenant**.
* Mindestens die Rolle **Application Developer** für die **Registrierung einer Anwendung**.
* Die Enginsight Plattform muss `login.microsoftonline.com` per HTTPS erreichen können. Bei On-Premises-Installationen muss dieser ausgehende Datenverkehr in der Firewall bzw. im Proxy freigegeben sein.

***

## Enginsight in Microsoft Entra-ID registrieren

{% 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 SSO* 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**.
  {% endstep %}

{% step %}

### Umleitungs-URI hinzufügen

Füge im Feld **Umleitungs-URIs**, wie im folgenden Screenshot abgebildet, eine Umleitungs-URI hinzu. Ersetze dabei `<IhreAPIDomain>` entsprechend mit deiner API-Domain.

{% hint style="warning" %}
**Bitte beachte**: Der folgende Screenshot stellt eine Momentaufnahme der Microsoft Benutzeroberfläche dar. Für Änderungen an Benutzeroberfläche und Bedienbarkeit übernimmt Enginsight keine Gewähr.
{% endhint %}

<figure><img src="https://3365013050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm7kFsCWkwO5xnjJ7eSF0%2Fuploads%2F5PoFNPGbZ0C1SUHY058o%2FEnginsight-KB-SSO-Microsoft365-AzureAD.jpg?alt=media&amp;token=a7f8aad3-c345-4511-9edf-daeb2ef08a65" alt=""><figcaption></figcaption></figure>
{% 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 [Anpassen der Enginsight Konfigurationsdatei](#enginsight-konfigurationsdatei-anpassen).
{% 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**: Wir empfehlen, eine Kalendererinnerung einige Wochen vor dem Ablaufdatum des Client-Secrets einzurichten, um das Client-Secret rechtzeitig austauschen zu können. Das Microsoft Entra ID-Portal zeigt das Ablaufdatum in der Client-Secrets-Liste an und markiert abgelaufene Secrets rot.
{% 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 %}

### Alternativ: Client-Certificate erstellen

Anstatt des Client-Secrets kannst du dir auch ein **Client-Certificate** (auch **App-Zertifikat**) erstellen. Mehr Informationen hierzu findest du in der [offiziellen Hersteller-Dokumentation](https://learn.microsoft.com/de-de/entra/identity-platform/howto-create-self-signed-certificate).

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

***

## Enginsight Konfigurationsdatei anpassen

{% stepper %}
{% step %}

### Enginsight Konfigurationsdatei öffnen

1. Logge dich auf dem **Enginsight Applikationsserver** ein.
2. Öffne mit folgendem Befehl die Enginsight Konfigurationsdatei:

```
sudo nano /opt/enginsight/enterprise/conf/services/config.json
```

{% endstep %}

{% step %}

### Microsoft Authentication-Abschnitt hinzufügen

Du kannst für die Authentifizierung via Microsoft zusätzlich zu deiner Client-ID ***entweder*** dein Client-Secret ***oder*** dein Client-Certificate angeben.

#### Option 1: Client-Secret

Wenn du dein **Client-Secret** angeben möchtest, ergänze die Konfigurationsdatei um folgenden Abschnitt:

<pre><code>"microsoftAuthenticationLibrary": [{
    "scope": "\\@.*",
<strong>    "clientId": "&#x3C;ClientID>",
</strong><strong>    "clientSecret": "&#x3C;ClientSecret>",
</strong><strong>    "authority": "https://login.microsoftonline.com/&#x3C;TenantID>"
</strong>   }],
</code></pre>

{% hint style="info" %}
Vergiss dabei nicht, die Platzhalter in `<>` entsprechend zu ersetzen:

* `<ClientID>`
* `<ClientSecret>`
* `<TenantID>`
  {% endhint %}

#### Option 2: Client-Certificate

Wenn du dein **Client-Certificate** angeben möchtest, ergänze die Konfigurationsdatei um folgenden Abschnitt:

<pre><code>"microsoftAuthenticationLibrary": [{
    "scope": "\\@.*",
<strong>    "clientId": "&#x3C;ClientID>",
</strong>    "clientCertificate": {
<strong>      "thumbprint": "&#x3C;ClientCertificateThumbprint>",
</strong><strong>      "privateKey": "&#x3C;ClientCertificatePrivateKey>"
</strong>    },
<strong>    "authority": "https://login.microsoftonline.com/&#x3C;TenantID>"
</strong>  }],
</code></pre>

{% hint style="info" %}
Vergiss dabei nicht, die Platzhalter in `<>` entsprechend zu ersetzen:

* `<ClientID>`
* `<ClientCertificateThumbprint>`
* `<ClientCertificatePrivateKey>`
* `<TenantID>`
  {% endhint %}

Passe folgende Werte entsprechend an:

<table><thead><tr><th width="315.203125">Parameter</th><th>Beschreibung</th></tr></thead><tbody><tr><td>Scope</td><td>Mit dem Attribut <code>scope</code> kannst du die Konfiguration von SSO auf eine bestimmte Active-Directory-Domain einschränken. <br><br>In den meisten Fällen wird hier allerdings keine Einschränkung nötig sein und der standardmäßig gesetzte Wert <code>\\@.*</code> kann so belassen werden, wie er ist.</td></tr><tr><td><code>&#x3C;ClientID></code></td><td>Gib die Client-ID (bzw. Anwendungs-ID oder Application ID) deiner in Microsoft Entra-ID registrierten Enginsight-Anwendung an.</td></tr><tr><td><code>&#x3C;ClientSecret></code></td><td>Gib das Client-Secret (bzw. App-Geheimnis) für deine in Microsoft Entra-ID registrierte Enginsight-Anwendung an.</td></tr><tr><td><code>&#x3C;ClientCertificateThumbrint></code></td><td>Gib den Thumbprint des Client-Certificates (bzw. App-Zertifikats), also den eindeutigen, kryptografischen Hash-Wert, der das Zertifikat identifiziert, für deine in Microsoft Entra-ID registrierte Enginsight-Anwendung an.</td></tr><tr><td><code>&#x3C;ClientCertificatePrivateKey></code></td><td>Gib den Private Key des Client-Certificates, also den privaten Schlüssel des Zertifikats, für deine in Microsoft Entra-ID registrierte Enginsight-Anwendung an.</td></tr><tr><td><code>&#x3C;TenantID></code></td><td>Gib die Mandanten-ID deines Microsoft 365-Mandanten an.</td></tr></tbody></table>
{% endstep %}

{% step %}

### Konfigurationsänderungen speichern

Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
{% endstep %}

{% step %}

### Konfigurationsdatei des Applikationsservers öffnen

Öffne nun mit folgendem Befehl die Konfigurationsdatei des Applikationsservers:

```
sudo nano /opt/enginsight/enterprise/conf/ui-m1/environment.js
```

{% endstep %}

{% step %}

### Login-Parameter ergänzen

Navigiere zum Abschnitt `var ENV = {` und ergänze die folgende Zeile:

```
loginVia: ['ssoOffice365', 'usernamePassword'],
```

Das gesamte Skript sollte nun wie folgt aussehen:

```
module.exports = function (environment) {
  var ENV = {
    loginVia: ['ssoOffice365', 'usernamePassword'],
    hinting: true,
    modulePrefix: 'ngs-ui-m1',
    environment: environment,
    rootURL: '/',
    locationType: 'auto',
    recaptchaKey: '',
    EmberENV: {
      FEATURES: {}
    },

    APP: {}
  };

  ENV.apiDomain = '%%API_URL%%';
  ENV.onpremise = {
    version: 1
  };

  return ENV;
```

{% endstep %}

{% step %}

### Konfigurationsänderungen speichern

Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
{% endstep %}

{% step %}

### Anpassungen auf dem Applikationsserver übernehmen

1. Navigiere nun mit folgendem Befehl in das Enginsight Installationsverzeichnis:

```
cd /opt/enginsight/enterprise
```

2. Führe mit folgendem Befehl das Setup-Skript für den Applikationsserver neu aus, um die Konfigurationsänderungen zu übernehmen, und bestätige alle Abfragen mit der **Enter**-Taste:

```
sudo ./setup.sh
```

{% endstep %}
{% endstepper %}

***

## Anmeldung per SSO testen

Teste nun, ob die Anmeldung per SSO über Microsoft 365 wie gewünscht funktioniert.

{% hint style="warning" %}
**Bitte beachte**: Damit sich ein Benutzer über SSO anmelden kann, muss er in der Enginsight Plattform zuerst als Teammitglied angelegt sein.
{% endhint %}

1. Navigiere dazu zur Anmeldeseite deiner Enginsight Instanz.
2. Wähle im Feld **Authentifizierungsmethode** die Option **Single-Sign-On via Microsoft Office 365** aus.

<div align="left"><figure><img src="https://3365013050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm7kFsCWkwO5xnjJ7eSF0%2Fuploads%2FAvzktpHPTi4T5tOXTpDx%2FEnginsight-KB-Login%20SSO.jpg?alt=media&amp;token=1d34b026-0a2f-405b-a13c-b696f6499448" alt="" width="311"><figcaption></figcaption></figure></div>

3. Klicke auf **Anmelden**.

***

## Optional: Deaktivierung der Standard-Anmeldemethode

Nachdem du die Authentifizierung per SSO erfolgreich getestet hast, kannst du optional die Standard-Anmeldemethode (Benutzername und Passwort) deaktivieren. Nimm hierfür die folgenden Schritte vor:

{% stepper %}
{% step %}

### Konfigurationsdatei des Applikationsservers öffnen

Öffne mit folgendem Befehl die Konfigurationsdatei des Applikationsservers:

```
sudo nano /opt/enginsight/enterprise/conf/ui-m1/environment.js
```

{% endstep %}

{% step %}

### Login-Parameter anpassen

Navigiere zum Abschnitt `var ENV = {` und passe die Zeile `loginVia` wie folgt an:

```
loginVia: ['ssoOffice365'],
```

{% endstep %}

{% step %}

### Konfigurationsänderungen speichern

Speichere die Änderungen in der Konfigurationsdatei (**Strg** + **o**) und bestätige den Speicherprozess. Schließe die Datei (**Strg** + **x**).
{% endstep %}

{% step %}

### Anpassungen auf dem Applikationsserver übernehmen

1. Navigiere nun mit folgendem Befehl in das Enginsight Installationsverzeichnis:

```
cd /opt/enginsight/enterprise
```

2. Führe mit folgendem Befehl das Setup-Skript für den Applikationsserver neu aus, um die Konfigurationsänderungen zu übernehmen, und bestätige alle Abfragen mit der **Enter**-Taste:

```
sudo ./setup.sh
```

{% endstep %}
{% endstepper %}

***
