> 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.

***

## Enginsight in Microsoft Entra-ID registrieren

{% stepper %}
{% step %}
Registriere Enginsight zunächst als neue Anwendung in Microsoft Entra-ID (vormals Azure AD). 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 %}
{% endstep %}

{% step %}
Füge dann, 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="/files/NJoiP35DZVJxuk4rB8Df" alt=""><figcaption><p>Enginsight als App in Microsoft Entra-ID registrieren</p></figcaption></figure>
{% endstep %}

{% step %}
Notiere dir nach der Registrierung von Enginsight deine **Client-ID** (auch **Application ID** oder **Anwendungs-ID**) und dein **Client-Secret** (auch **App-Geheimnis**). Diese Informationen musst du später in der Enginsight Konfigurationsdatei hinterlegen.

{% 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 %}

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).&#x20;

{% 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="/files/2KQf0sjNvTRiBjoWIR50" 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 %}

***
