# Single Sign-On mit Microsoft Entra ID

Diese Seite beschreibt die Erstellung einer Microsoft App Registration welche in weiterer Folge für das Single Sign-On benötigt wird.

## 1. Neue App registrieren

Im Azure Portal (<https://portal.azure.com>) öffnen Sie den Bereich *App registrations*. Anschliessend erstellen Sie eine neue App mit einem Klick auf *+ New registration*.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2F0SZ73QnDXVMpMDYUKKmq%2Fazure-app-registraion-01.png?alt=media&#x26;token=7503db11-f439-4c46-a5d9-4fa03c2ed579" alt="" width="242"><figcaption><p>Neue App Registration</p></figcaption></figure>

Geben Sie einen Namen ein. Unter *Supported account types* wählen Sie *Single tenant* aus.

Unter *Redirect URI (optional)* wählen Sie *Web* aus und geben folgende URI ein: `https://login.aiaibot.com/oauth2/callback`

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FoNOGSwPgLODyG8dpNv9t%2FScreenshot%202026-02-09%20at%2012.57.15.png?alt=media&#x26;token=357d70db-05ca-4eee-87b8-b1fc05d7102f" alt="" width="520"><figcaption><p>Name und Redirect URI der App Registraion</p></figcaption></figure>

{% hint style="warning" %}
Achten Sie genau auf die korrekte schreibweise der Redirect URI!
{% endhint %}

Erstellen Sie die App Registration mit einem Klick auf *Register*.

Kopieren Sie auf der nachfolgenden Seite folgende Werte:

* *Application (client) ID*
* *Directory (tenant) ID*

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2Fw4BE4sTrQKbn0YVZSjz5%2Fazure-app-registraion-03.png?alt=media&#x26;token=a037bff6-8350-4da7-a3bd-c6329ebcc840" alt="" width="328"><figcaption><p>Client und Tenant ID</p></figcaption></figure>

## 2. Client Secret erstellen

Klicken Sie auf *Clients & secrets* und anschliessend auf *New client secret* um ein neues Secret für die App zu erstellen.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FQQcpEODDvb04KktrNtWb%2Fazure-app-registraion-04.png?alt=media&#x26;token=fb35151d-9672-4e07-9155-9004f5f24b6e" alt="" width="563"><figcaption><p>Certificates &#x26; secrets</p></figcaption></figure>

Vergeben Sie eine Beschreibung und wählen Sie aus, wie lange das Secret gültig sein soll.

{% hint style="warning" %}
Um sicherzustellen, dass eine Anmeldung an unserer Plattform unterbrechungsfrei möglich ist, muss ein neues Client Secret **rechtzeitig vor Ablauf** an aiaibot übermittelt werden!
{% endhint %}

Kopieren Sie das Secret in der Spalte *Value*.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FWNC3TxttY6QVbYOTxecO%2Fazure-app-registraion-05.png?alt=media&#x26;token=4fefc6ee-f532-4fc5-b211-0faf2a801359" alt="" width="563"><figcaption><p>Kopieren des Secrets</p></figcaption></figure>

## 3. API Permissions vergeben

Klicken Sie auf *API permissions* um die notwendigen Berechtigungen zu vergeben.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FJmWVyKoKlRuT1SLbgmTd%2Fazure-app-registraion-06.png?alt=media&#x26;token=6b1e2dd2-896e-44fe-a58e-98cb45d9bd4f" alt="" width="563"><figcaption><p>API permission</p></figcaption></figure>

Anschliessend klicken Sie auf *+ Add a permission* und wählen dann *Microsoft Graph* aus.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FI9UJFSErCGZyALx2pTOC%2Fazure-app-registraion-07.png?alt=media&#x26;token=4fcd4cb8-1fd7-4a58-ad8b-c27db6f51e2a" alt="" width="375"><figcaption><p>Permissions für Microsoft Graph</p></figcaption></figure>

### Benötigte Permissions

Es wird die Permission `openid` benötigt. Wählen Sie diese aus und klicken Sie auf *Add permission*.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2FGfgR1RVHwF4DGYuKUEl8%2Fimage.png?alt=media&#x26;token=b664ed6a-12f7-402e-9342-de22a782047c" alt="" width="563"><figcaption></figcaption></figure>

## 4. Token konfigurieren

Klicken Sie auf *Token configuration* um den ID-Token entsprechend zu konfigurieren. Wählen Sie anschliessend *Add group claims*:

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2F5sKDnL35z0Xu2Dm8gNiP%2Fimage.png?alt=media&#x26;token=46bad0b9-d182-4e69-b603-00b3b2510e70" alt="" width="563"><figcaption></figcaption></figure>

Damit die Gruppennamen im ID-Token inkludiert werden, markieren Sie *All groups*. In den Abschnitten *ID* und *Access* wählen Sie `sAMAccountName` aus, damit die Gruppennamen korrekt übermittelt werden.

<figure><img src="https://2388870224-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8dtLKppxVG0mxVBzNFs6%2Fuploads%2Fu7oYooQ78SCDiEWX1g2m%2Fimage.png?alt=media&#x26;token=db40c203-ad71-4eca-91e8-3fe27ab16c9c" alt=""><figcaption></figcaption></figure>

Klicken Sie dann auf *Add* um die Tokenkonfiguration abzuschliessen.

## 5. Gruppe für Backend-Benutzer (optional)

Wir empfehlen, alle Benutzer mit Zugriff auf das aiaibot-Backend in eine eigene Gruppe zu geben. So können Sie über die Gruppenzugehörigkeit steuern, wer Zugriff auf das Backend hat. Die Gruppe kann zum Beispiel `aiaibot_Admins` heissen.

## 6. Datenübermittlung an aiaibot

Damit die Einrichtung erfolgreich abgeschlossen werden kann, benötigen wir folgenden Daten:

* *Application (client) ID* aus [Schritt 1](#id-1.-neue-app-registrieren)
* *Directory (tenant) ID* aus [Schritt 1](#id-1.-neue-app-registrieren)
* *Client Secret* aus [Schritt 2](#id-2.-client-secret-erstellen)
* Domain für die das Single Sign-On aktiviert werden soll.
* Name der Gruppe für Backend-Benutzer (optional)

Diese sind an aiaibot zu übermitteln.
