# Azure App Registration — Einrichtungsanleitung Diese Anleitung beschreibt die einmalige Einrichtung einer Azure App Registration, die als Authentifizierungsbasis fuer den Mail-Organizer dient. ## 1. App Registration anlegen 1. Oeffne das Azure Portal: https://portal.azure.com 2. Navigiere zu **Microsoft Entra ID** (ehemals Azure AD) > **App registrations** 3. Klicke **New registration** 4. Konfiguriere: - **Name**: `KRAH-Mail-Organizer` - **Supported account types**: "Accounts in this organizational directory only" - **Redirect URI**: `http://localhost` (Type: Web) 5. Klicke **Register** ## 2. Wichtige IDs notieren Nach der Registrierung findest du auf der Uebersichtsseite: - **Application (client) ID** — wird in `config/settings.json` eingetragen - **Directory (tenant) ID** — wird in `config/settings.json` eingetragen ## 3. Client Secret erstellen 1. Gehe zu **Certificates & secrets** > **Client secrets** 2. Klicke **New client secret** 3. Beschreibung: `Mail-Organizer` 4. Ablauf: 24 Monate (oder nach Firmenpolicy) 5. **WICHTIG**: Kopiere den **Value** sofort — er wird nur einmal angezeigt! 6. Trage den Wert in `config/settings.json` unter `ClientSecret` ein ## 4. API-Berechtigungen konfigurieren 1. Gehe zu **API permissions** > **Add a permission** 2. Waehle **Microsoft Graph** 3. Waehle **Application permissions** (nicht Delegated!) 4. Fuege folgende Berechtigungen hinzu: - `Mail.Read` — E-Mails lesen - `Mail.ReadWrite` — E-Mails als gelesen markieren / verschieben - `Mail.Send` — Benachrichtigungen per E-Mail senden (optional) 5. Klicke **Grant admin consent for [Dein Tenant]** - Erfordert Global Admin oder Application Admin Rechte - Status muss auf "Granted" wechseln (gruenes Haekchen) ## 5. Mailbox-Zugriff einschraenken (empfohlen) Standardmaessig hat eine App mit `Mail.Read` Zugriff auf ALLE Mailboxen. Um den Zugriff auf deine Mailbox einzuschraenken: 1. Erstelle eine Mail-Enabled Security Group in Exchange Admin Center 2. Fuege deine Mailbox als Mitglied hinzu 3. Fuehre in PowerShell aus: ```powershell # Exchange Online PowerShell verbinden Connect-ExchangeOnline # App-Zugriff auf die Gruppe beschraenken New-ApplicationAccessPolicy ` -AppId "93f9f15c-b566-4ca1-9145-c23f87c7f5c7" ` -PolicyScopeGroupId "chrka@krahgruppe.onmicrosoft.com" ` -AccessRight RestrictAccess ` -Description "Mail-Organizer nur fuer definierte Postfaecher" ``` ## 6. settings.json konfigurieren Oeffne `config/settings.json` und trage deine Werte ein: ```json { "TenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "ClientSecret": "dein-secret-hier", "MailboxUser": "christian@example.com" } ``` **Sicherheitshinweis**: In Produktionsumgebungen sollte das ClientSecret nicht im Klartext gespeichert werden. Alternativen: - Windows Credential Manager - Azure Key Vault - Umgebungsvariablen ## 7. Testen Fuehre das Test-Script aus: ```powershell .\scripts\Test-Connection.ps1 ``` Bei Erfolg siehst du eine Liste der letzten E-Mails. Fertig!