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

Folge dazu der Anleitung von Microsoft: [Registrieren einer Anwendung in Microsoft Entra ID](https://learn.microsoft.com/de-de/entra/identity-platform/quickstart-register-app)
{% endstep %}

{% step %}
Füge dann, wie im folgenden Screenshot abgebildet, eine **Umleitungs-URI** hinzu. Ersetze dabei `<IhreAPIDomain>` entsprechend mit deiner API-Domain.

{% hint style="info" %}
**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.&#x20;

Folge dazu der Anleitung von Microsoft: [Erstellen Sie ein selbstsigniertes öffentliches Zertifikat zum Authentifizieren Ihrer Anwendung](https://learn.microsoft.com/de-de/entra/identity-platform/howto-create-self-signed-certificate)

{% hint style="warning" %}
**Bitte beachte**: Für Inhalte von Drittanbieter-Dokumentationen übernimmt Enginsight keine Gewähr.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Enginsight Konfigurationsdatei anpassen

{% stepper %}
{% step %}

### Enginsight Konfigurationsdatei öffnen

Logge dich auf dem Linux-Server ein, auf dem du die Enginsight Plattform installiert hast.

Öffne mit folgendem Befehl die Enginsight Konfigurationsdatei `config.json`:

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

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

```
"microsoftAuthenticationLibrary": {
    "scope": "\\@.*",
    "clientId": "<MeineClientID>",
    "clientSecret": "<MeinClientSecret>",
    "authority": "https://login.microsoftonline.com/<MeineTenantID>"
  },
```

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

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

```
"microsoftAuthenticationLibrary": {
    "scope": "\\@.*",
    "clientId": "<MeineClientID>",
    "clientCertificate": {
      "thumbprint": "<MeinClientCertificateThumbprint>",
      "privateKey": "<MeinClientCertificatePrivateKey>"
    },
    "authority": "https://login.microsoftonline.com/<MeineTenantID>"
  },
```

{% hint style="info" %}
Vergiss dabei nicht, die `<>` Platzhalter entsprechend zu ersetzen.
{% 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;MeineClientID></code></td><td>Gib die Client-ID (bzw. Anwendungs-ID oder Application ID) deiner Enginsight-Anwendung aus Microsoft Entra-ID an.</td></tr><tr><td><code>&#x3C;MeinClientSecret></code></td><td>Gib das Client-Secret für deine Enginsight-Anwendung aus Microsoft Entra-ID an.</td></tr><tr><td><code>&#x3C;MeinClientCertificateThumbrint></code></td><td>Gib den Thumbprint des Client-Certificates (also den eindeutigen, kryptografischen Hash-Wert, der das Zertifikat identifiziert) für deine Enginsight-Anwendung aus Microsoft Entra-ID an.</td></tr><tr><td><code>&#x3C;MeinClientCertificatePrivateKey></code></td><td>Gib den Private Key des Client-Certificates (also den privaten Schlüssel des Zertifikats) für deine Enginsight-Anwendung aus Microsoft Entra-ID an.</td></tr><tr><td><code>&#x3C;MeineTenantID></code></td><td>Gib die Verzeichnis-ID aus Microsoft Entra-ID 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 `environment.json`:

```
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 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.\
   \
   ![](/files/pI1kptmLh2INs24fGch0)<br>
3. Klicke auf **Anmelden**.

<div align="left"><figure><img src="/files/WFJfnY9vi8fbU3RD5Cr2" alt="" width="299"><figcaption></figcaption></figure></div>

***

## 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 `environment.json`:

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.enginsight.com/docs/knowledge-base/wie-kann-ich-in-enginsight-single-sign-on-sso-uber-microsoft-365-einrichten.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
