mail-organizer/docs/Azure-App-Registration-Anle...

3.0 KiB

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:
# 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:

{
    "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:

.\scripts\Test-Connection.ps1

Bei Erfolg siehst du eine Liste der letzten E-Mails. Fertig!