Nur-App-Authentifizierung für unbeaufsichtigte Skripts in Exchange Online PowerShell und Security & Compliance PowerShell

Überwachungs- und Berichtsszenarien in Microsoft 365 umfassen häufig unbeaufsichtigte Skripts in Exchange Online PowerShell und Security & Compliance PowerShell. Bisher mussten Sie bei der unbeaufsichtigten Anmeldung den Benutzernamen und das Kennwort in einer lokalen Datei oder in einem geheimen Tresor speichern, auf den zur Laufzeit zugegriffen wird. Aber wie wir alle wissen, ist das lokale Speichern von Benutzeranmeldeinformationen keine gute Sicherheitsmethode.

Die zertifikatbasierte Authentifizierung (CBA) oder Nur-App-Authentifizierung, wie in diesem Artikel beschrieben, unterstützt unbeaufsichtigte Skript- und Automatisierungsszenarien mithilfe von Microsoft Entra-Apps und -Zertifikaten.

Hinweis

  • Wussten Sie, dass Sie mithilfe verwalteter Identitäten in Azure eine Verbindung mit Exchange Online PowerShell herstellen können? Auschecken Verwenden von verwalteten Azure-Identitäten zum Herstellen einer Verbindung mit Exchange Online PowerShell.

  • Die in diesem Artikel beschriebenen Features und Verfahren erfordern die folgenden Versionen des Exchange Online PowerShell-Moduls:

    • Exchange Online PowerShell (Connect-ExchangeOnline): Version 2.0.4 oder höher.
    • Security & Compliance PowerShell (Connect-IPPSSession): Version 3.0.0 oder höher.

    Anweisungen zum Installieren oder Aktualisieren des Moduls finden Sie unter Installieren und Aktualisieren des Exchange Online PowerShell-Moduls. Anweisungen zur Verwendung des Moduls in Azure Automation finden Sie unter Verwalten von Modulen in Azure Automation.

  • CBA- oder Nur-App-Authentifizierung ist in Office 365, betrieben von 21Vianet in China, verfügbar.

  • REST-API-Verbindungen im Exchange Online PowerShell V3-Modul erfordern die Module PowerShellGet und PackageManagement. Weitere Informationen finden Sie unter PowerShellGet für REST-basierte Verbindungen in Windows.

  • Wenn die Verfahren in diesem Artikel nicht funktionieren, stellen Sie sicher, dass Sie keine Vorschauversionen der PackageManagement- oder PowerShellGet-Module installiert haben, indem Sie den folgenden Befehl ausführen: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions.

  • In Exchange Online PowerShell können Sie die Verfahren in diesem Artikel nicht mit den folgenden Microsoft 365-Gruppen-Cmdlets verwenden:

    Sie können Microsoft Graph verwenden, um die meisten Funktionen aus diesen Cmdlets zu ersetzen. Weitere Informationen finden Sie unter Arbeiten mit Gruppen in Microsoft Graph.

  • Verwenden Sie zum Ausführen von eDiscovery-Cmdlets mit reiner App-Authentifizierung in Security & Compliance PowerShell ExchangeOnlineManagement 3.10.1 oder höher, schließen Sie den EnableSearchOnlySession-Schalter ein, wenn Sie Connect-IPPSSession ausführen, und konfigurieren Sie den Dienstprinzipal und die rollenbasierte eDiscovery-Zugriffssteuerung (RBAC). Weitere Informationen finden Sie unter Konfigurieren der Nur-App-Authentifizierung für eDiscovery PowerShell.

  • Delegierte Szenarien werden in Exchange Online unterstützt. Die empfohlene Methode zum Herstellen einer Verbindung mit der Delegierung ist die Verwendung von GDAP und App-Zustimmung. Weitere Informationen finden Sie unter Verwenden des Exchange Online PowerShell v3-Moduls mit GDAP- und App-Zustimmung. Sie können auch mehrinstanzenfähige Anwendungen verwenden, wenn keine CSP-Beziehungen mit dem Kunden erstellt werden. Die erforderlichen Schritte für die Verwendung mehrinstanzenfähiger Anwendungen werden in den regulären Anweisungen in diesem Artikel beschrieben.

  • Verwenden Sie den Schalter SkipLoadingFormatData im Cmdlet Connect-ExchangeOnline, wenn beim Verwenden des Windows PowerShell SDK zum Herstellen einer Verbindung der folgende Fehler angezeigt wird:The term 'Update-ModuleManifest' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Wie funktioniert das?

Das PowerShell-Modul von Exchange Online verwendet die Active Directory-Authentifizierungsbibliothek, um ein reines App-Token mithilfe der Anwendungs-ID, der Mandanten-ID (organization) und des Zertifikatfingerabdrucks abzurufen. Dem in Microsoft Entra ID bereitgestellten Anwendungsobjekt ist eine Verzeichnisrolle zugewiesen, die im Zugriffstoken zurückgegeben wird. Die rollenbasierte Zugriffssteuerung (Role Based Access Control, RBAC) der Sitzung wird mithilfe der im Token verfügbaren Verzeichnisrollendaten konfiguriert.

Verbindungsbeispiele

Die folgenden Beispiele zeigen, wie Sie das PowerShell-Modul von Exchange Online mit Nur-App-Authentifizierung verwenden:

Wichtig

Verwenden Sie in den folgenden Verbindungsbefehlen die primäre .onmicrosoft.com Domäne für Ihre organization als Wert des Organization-Parameters.

Für die folgenden Verbindungsbefehle stehen viele der gleichen Optionen zur Verfügung, wie unter Herstellen einer Verbindung mit Exchange Online PowerShell und Herstellen einer Verbindung mit Security & Compliance PowerShell beschrieben. Zum Beispiel:

  • Für Microsoft 365 GCC High-, Microsoft 365 DoD- oder Microsoft 365 China-Umgebungen (betrieben von 21Vianet) sind die folgenden zusätzlichen Parameter und Werte erforderlich:

  • Microsoft 365 GCC High

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365USGovGCCHigh
    • Connect-IPPSSession -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations*
  • Microsoft 365 DoD

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365USGovDoD
    • Connect-IPPSSession -ConnectionUri https://compliance.dod.microsoft.com/powershell-liveid -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations*
  • Microsoft 365, betrieben von 21Vianet (China)

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365China
    • Connect-IPPSSession -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/organizations*

    * Der AzureADAuthorizationEndpointUri-Wert , der auf /organizations "Nur Geschäfts-, Schul- oder Unikonten" endet. Der ältere URI-Wert, der auf /common Folgendes endet, funktioniert weiterhin, fordert Sie jedoch möglicherweise auf, zwischen einem persönlichen Konto und einem Geschäfts-, Schul- oder Unikonto auszuwählen. Wir empfehlen den /organizations URI-Wert in Unternehmensszenarien, in denen Heimanwenderkonten ausgeschlossen werden sollen.

  • Wenn ein Connect-IPPSSession-Befehl eine Anmeldeaufforderung anzeigt, führen Sie den folgenden Befehl aus: $Global:IsWindows = $true vor dem Befehl Connect-IPPSSession .

  • Verwenden Sie zum Ausführen von eDiscovery-Cmdlets ExchangeOnlineManagement 3.10.1 oder höher, und fügen Sie dem Befehl Connect-IPPSSession den Schalter EnableSearchOnlySession hinzu.

  • Verbindung mithilfe eines Zertifikatfingerabdrucks herstellen:

    Hinweis

    Der Parameter "CertificateThumbprint" wird nur unter Microsoft Windows unterstützt.

    Das Zertifikat muss auf dem Computer installiert werden, auf dem Sie den Befehl ausführen. Das Zertifikat sollte im Benutzerzertifikatspeicher installiert werden.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance Center PowerShell:

      Connect-IPPSSession -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Verbindung mithilfe eines Zertifikatobjekts herstellen:

    Das Zertifikat muss nicht auf dem Computer installiert sein, auf dem Sie den Befehl ausführen. Sie können das Zertifikatobjekt remote speichern. Das Zertifikat wird abgerufen, wenn das Skript ausgeführt wird.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance Center PowerShell:

      Connect-IPPSSession -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Verbindung mithilfe eines lokalen Zertifikats herstellen:

    Hinweis

    Die Verwendung eines ConvertTo-SecureString-Befehls zum lokalen Speichern des Kennworts für das Zertifikat verfehlt den Zweck einer sicheren Verbindungsmethode für Automatisierungsszenarien. Die Verwendung eines Get-Credential-Befehls , um das Kennwort des Zertifikats sicher einzugeben, ist für Automatisierungsszenarien nicht ideal. Mit anderen Worten: Es gibt wirklich keine automatisierte und sichere Möglichkeit, eine Verbindung mithilfe eines lokalen Zertifikats herzustellen.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance Center PowerShell:

      Connect-IPPSSession -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      

Einrichten einer Nur-App-Authentifizierung

Für die Authentifizierung mit Anwendungsobjekten ist ein initiales Onboarding erforderlich. Anwendungs- und Dienstprinzipal werden abwechselnd verwendet. Eine Anwendung ähnelt jedoch einem Klassenobjekt und ein Dienstprinzipal einer Instanz der Klasse. Weitere Informationen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID.

Einen ausführlichen visuellen Ablauf zum Erstellen von Anwendungen in Microsoft Entra ID finden Sie unter https://aka.ms/azuread-app.

  1. Registrieren Sie die Anwendung in Microsoft Entra ID.

  2. Zuweisen von Exchange Online API-Berechtigungen zur Anwendung.

    Ein Anwendungsobjekt verfügt standardmäßig über die delegierte API-Berechtigung Microsoft Graph>User.Read . Fügen Sie die Anwendungsberechtigung für die PowerShell-Verbindung hinzu:

    • Exchange Online PowerShell (Connect-ExchangeOnline): Office 365 Exchange Online>Exchange.ManageAsApp.
    • Security & Compliance PowerShell (Connect-IPPSSession):Microsoft Exchange Online Protection>Exchange.ManageAsApp.

    Wenn die Anwendung eine Verbindung mit beiden Umgebungen herstellt, fügen Sie beide Berechtigungen hinzu. Erteilen Sie die mandantenweite Administratorzustimmung für jede Berechtigung.

  3. Generieren eines Zertifikats

    • Für die Nur-App-Authentifizierung in Microsoft Entra ID verwenden Sie in der Regel ein Zertifikat, um den Zugriff anzufordern. Jeder, der über das Zertifikat und den zugehörigen privaten Schlüssel verfügt, kann die App mit den Berechtigungen verwenden, die der App erteilt wurden.

    • Erstellen und konfigurieren Sie ein X.509-Zertifikat, das zum Authentifizieren Ihrer Anwendung bei Microsoft Entra ID verwendet wird, während das Nur-App-Zugriffstoken angefordert wird. Das Zertifikat kann selbstsigniert sein.

    • Dieses Verfahren ähnelt dem Generieren eines Kennworts für Benutzerkonten. Anweisungen zum Generieren von Zertifikaten in PowerShell finden Sie in diesem Abschnitt weiter unten in diesem Artikel.

      Hinweis

      Kryptografie: CNG-Zertifikate (Next Generation) werden für die reine App-Authentifizierung mit Exchange nicht unterstützt. CNG-Zertifikate werden standardmäßig in modernen Windows-Versionen erstellt. Sie müssen ein Zertifikat eines CSP-Schlüsselanbieters verwenden. In diesem Abschnitt werden zwei Methoden zum Erstellen eines CSP-Zertifikats beschrieben.

  4. Anfügen des Zertifikats an die Microsoft Entra-Anwendung

  5. Zuweisen von Rollenberechtigungen für die Anwendung

Schritt 1: Registrieren der Anwendung in Microsoft Entra ID

Hinweis

Hinweis: Wenn Probleme auftreten, überprüfen Sie die erforderlichen Berechtigungen, um sicherzustellen, dass Ihr Konto die Identität erstellen kann.

  1. Öffnen Sie das Microsoft Entra Admin Center unter https://portal.azure.com/.

  2. Beginnen Sie im Suchfeld oben auf der Seite mit der Eingabe von App-Registrierungen, und wählen Sie dann aus den Ergebnissen im Abschnitt "Dienste" die Option "App-Registrierungen" aus.

    Screenshot, der App-Registrierungen in den Suchergebnissen auf der Startseite des Azure-Portals zeigt.

    Oder verwenden https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBladeSie ", um direkt zur Seite "App-Registrierungen" zu wechseln.

  3. Wählen Sie auf der Seite App-Registrierungen die Option Neue Registrierung aus.

    Wählen Sie auf der Seite „App-Registrierungen“ die Option „Neue Registrierung“ aus.

  4. Konfigurieren Sie auf der daraufhin geöffneten Seite Anwendung registrieren die folgenden Einstellungen:

    • Name: Geben Sie einen aussagekräftigen Namen ein. Zum Beispiel ExO PowerShell CBA.

    • Unterstützte Kontotypen: Stellen Sie sicher, dass nur Konten in diesem Organisationsverzeichnis (nur IhrOrganisationsname> –< einzelner Mandant) ausgewählt ist.

      Hinweis

      Um die Anwendung für delegierte Szenarien in Exchange Online mehrinstanzenfähig zu machen, wählen Sie den Wert Konten in einem beliebigen Organisationsverzeichnis (beliebiges Microsoft Entra-Verzeichnis – mehrinstanzfähig)).

    • Umleitungs-URI (optional): Diese Einstellung ist optional. Konfigurieren Sie bei Bedarf die folgenden Einstellungen:

      • Plattform: Wählen Sie Web aus.
      • URI: Geben Sie den URI ein, an den das Zugriffstoken gesendet wird.

      Hinweis

      Sie können keine Anmeldeinformationen für native Anwendungen erstellen, da Sie native Anwendungen nicht für automatisierte Anwendungen verwenden können.

      Registrieren Sie eine Anwendung.

    Wenn Sie auf der Seite "App-Registrierungen" fertig sind, wählen Sie "Registrieren" aus.

  5. Sie gelangen zur Übersichtsseite der App, die Sie registriert haben. Lassen Sie diese Seite geöffnet. Sie verwenden ihn im nächsten Schritt.

Schritt 2: Weisen Sie der Anwendung API-Berechtigungen zu

Wählen Sie in diesem Abschnitt eine der folgenden Methoden aus, um der App API-Berechtigungen zuzuweisen:

  • Wählen Sie die API-Berechtigungen aus dem Portal aus, und weisen Sie diese zu.
  • Ändern Sie das App-Manifest, um API-Berechtigungen zuzuweisen. (Microsoft 365 GCC High- und DoD-Organisationen sollten diese Methode verwenden).

Wählen Sie die API-Berechtigungen aus dem Portal aus, und weisen Sie diese zu.

  1. Wählen Sie auf der Seite "App-Übersicht" im Abschnitt "Verwalten" die Option API-Berechtigungen aus.

    Wählen Sie API-Berechtigungen auf der Seite

  2. Wählen Sie auf der Seite "App-API-Berechtigungen " die Option "Berechtigung hinzufügen" aus.

    Wählen Sie auf der Seite API-Berechtigungen der Anwendung die Option Berechtigung hinzufügen aus.

  3. Wählen Sie im daraufhin geöffneten Flyout API-Berechtigungen anfordern die Registerkarte APIs aus, die meine organization verwendet, und wählen Sie dann die API aus, die der PowerShell-Verbindung entspricht:

    • Exchange Online PowerShell (Connect-ExchangeOnline): Suchen Sie nach Office 365 Exchange Online, und wählen Sie diese aus.
    • Sicherheits- & Compliance PowerShell (Connect-IPPSSession): Suchen Sie nach Microsoft Exchange Online Schutz, und wählen Sie ihn aus.

    Wenn die Anwendung eine Verbindung mit beiden Umgebungen herstellt, wiederholen Sie die Schritte 2 bis 5 für die andere API, bevor Sie mit Schritt 6 fortfahren.

    Der folgende Screenshot zeigt die PowerShell-Auswahl für Exchange Online:

    Suchen Sie Office 365 Exchange Online auf der Registerkarte APIs, die mein organization verwendet, und wählen Sie sie aus.

  4. Wählen Sie im Flyout Welche Art von Berechtigungen benötigt Ihre Anwendung? die Option Anwendungsberechtigungen aus.

  5. Erweitern Sie in der angezeigten Berechtigungsliste Exchange, wählen Sie Exchange.ManageAsApp und dann Berechtigungen hinzufügen aus.

    Suchen Sie auf der Registerkarte

  6. Überprüfen Sie auf der Seite App-API-Berechtigungen , ob jede erforderliche Exchange.ManageAsApp-Berechtigung aufgeführt ist und die folgenden Werte enthält:

    • Typ: Anwendung.

    • Zustimmung des Admins erforderlich: Ja.

    • Status: Der aktuelle falsche Wert wird für <die Organisation> nicht gewährt.

      Ändern Sie diesen Wert, indem Sie Administratoreinwilligung für <Organisation> erteilen auswählen, das Bestätigungsdialogfeld lesen, das geöffnet wird, und dann Ja auswählen.

      Admin-Zustimmung erforderlich, aber nicht gewährt für Exchange.ManageAsApp-Berechtigungen.

      Der Statuswert lautet jetzt "<Für Organisation> gewährt".

      Admin-Zustimmung für Exchange.ManageAsApp-Berechtigungen erteilt.

  7. Wählen Sie für den Standardeintrag"User.Read" in Microsoft Graph>die Option ...>Widerrufen Sie die Administratoreinwilligung, und wählen Sie dann im Bestätigungsdialogfeld, das geöffnet wird, Ja aus, um den Status wieder auf den standardmäßigen leeren Wert zurückzusetzen.

    Die Zustimmung des Admins wurde aus den standardmäßigen Microsoft Graph-Berechtigungen

  8. Schließen Sie die aktuelle Seite API-Berechtigungen (nicht die Browser-Registerkarte), um zur Seite App-Registrierungen zurückzukehren. Sie verwenden die Seite "App-Registrierungen" in einem bevorstehenden Schritt.

Ändern des App-Manifests zum Zuweisen von API-Berechtigungen

Hinweis

Mit den Verfahren in diesem Abschnitt werden die vorhandenen Standardberechtigungen für die App (delegierte User.Read-Berechtigungen in Microsoft Graph) mit der erforderlichen Exchange.ManageAsApp-Berechtigungder Anwendung angefügt. Verwenden Sie die Ressourcenwerte, die der PowerShell-Verbindung entsprechen. Wenn die Anwendung sowohl mit Exchange Online PowerShell als auch mit Security & Compliance PowerShell verbunden ist, schließen Sie sowohl Exchange-Ressourcenobjekte als auch ein Microsoft Graph-Ressourcenobjekt ein.

  1. Wählen Sie auf der App-Übersichtsseite im Abschnitt "Verwalten" die Option "Manifest" aus.

    Wählen Sie auf der Seite

  2. Suchen Sie auf der App-Manifestseite den requiredResourceAccess Eintrag (in oder um Zeile 42). Für Exchange Online PowerShell lassen Sie den Eintrag wie den folgenden Codeausschnitt aussehen:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Hinweis

    Verwenden Sie für Security & Compliance PowerShell in einer beliebigen Umgebung, einschließlich Microsoft 365 GCC High und DoD, die folgenden Werte für den requiredResourceAccess Eintrag:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000007-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "455e5cd2-84e8-4751-8344-5672145dfa17",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Wenn Sie auf der Seite "Manifest" fertig sind, wählen Sie "Speichern" aus.

  3. Wählen Sie auf der Seite "Manifest" im Abschnitt "Verwalten" die API-Berechtigungen aus.

    Wählen Sie API-Berechtigungen auf der Seite

  4. Überprüfen Sie auf der Seite API-Berechtigungen , ob jede erforderliche Exchange.ManageAsApp-Berechtigung aufgelistet ist und die folgenden Werte enthält:

    • Typ: Anwendung.

    • Zustimmung des Admins erforderlich: Ja.

    • Status: Der aktuelle falsche Wert wird für <die Organisation> nicht gewährt.

      Ändern Sie den Statuswert, indem Sie Administratoreinwilligung für <Organisation> erteilen auswählen, das Bestätigungsdialogfeld lesen, das geöffnet wird, und dann Ja auswählen.

      Admin-Zustimmung erforderlich, aber nicht gewährt für Exchange.ManageAsApp-Berechtigungen.

      Der Statuswert lautet jetzt "<Für Organisation> gewährt".

      Admin-Zustimmung für Exchange.ManageAsApp-Berechtigungen erteilt.

  5. Wählen Sie für den Standardeintrag"User.Read" in Microsoft Graph>die Option ...>Widerrufen Sie die Administratoreinwilligung, und wählen Sie dann im Bestätigungsdialogfeld, das geöffnet wird, Ja aus, um den Status wieder auf den standardmäßigen leeren Wert zurückzusetzen.

    Die Zustimmung des Admins wurde aus den standardmäßigen Microsoft Graph-Berechtigungen

  6. Schließen Sie die aktuelle Seite API-Berechtigungen (nicht die Browser-Registerkarte), um zur Seite App-Registrierungen zurückzukehren. Sie verwenden die Seite "App-Registrierungen" in einem bevorstehenden Schritt.

Schritt 3: Generieren eines Zertifikats

Hinweis

Kryptografie: CNG-Zertifikate (Next Generation) werden für die reine App-Authentifizierung, wie in diesem Artikel beschrieben, nicht unterstützt. CNG-Zertifikate werden in modernen Windows-Versionen standardmäßig erstellt. Sie müssen ein Zertifikat von einem CSP-Schlüsselanbieter verwenden.

Sie können ein selbstsigniertes Zertifikat, ein Zertifikat, das von einer internen Public Key-Infrastruktur oder PKI (z. B. Active Directory-Zertifikatdienste oder AD CS) ausgestellt wurde, oder ein Zertifikat verwenden, das von einer vertrauenswürdigen kommerziellen Zertifizierungsstelle ausgestellt wurde.

Die einzigen Voraussetzungen für das X.509-Zertifikat sind ein exportierbarer und verfügbarer privater Schlüssel (PFX) und ein öffentliches Zertifikat (.cer).

Verwenden Sie für ein selbstsigniertes Zertifikat eine der folgenden Methoden:

  • (Empfohlen): Verwenden Sie die Cmdlets New-SelfSignedCertificate, Export-Certificate und Export-PfxCertificate in einer PowerShell-Sitzung mit erhöhten Rechten (ein PowerShell-Fenster, das Sie nach der Auswahl von "Als Administrator ausführen" geöffnet haben), um ein selbstsigniertes Zertifikat anzufordern und die privaten und öffentlichen Schlüssel des Zertifikats in Dateien zu exportieren (standardmäßig SHA1). Beispiel:

    # Create a self-signed certificate
    $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
    
    # Export the X.509 certificate and the associated private key to a password-protected .pfx file
    $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password (Get-Credential).password
    
    # Export the X.509 public certificate to a .cer file
    $mycert | Export-Certificate -FilePath mycert.cer
    
  • Verwenden Sie das Create-SelfSignedCertificate, um SHA1-Zertifikate zu generieren.

    .\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2026-01-06 -EndDate 2027-01-06
    

Schritt 4: Anfügen des Zertifikats an die Microsoft Entra-Anwendung

Nachdem Sie das Zertifikat für Ihre Anwendung registriert haben, können Sie den privaten Schlüssel (.pfx-Datei) oder den Fingerabdruck für die Authentifizierung verwenden.

  1. Wählen Sie am Ende von Schritt 2 auf der Seite "Apps Registrierung" auf der Registerkarte "Meine eigenen Anwendungen" Ihre Anwendung aus.

    Wenn Sie zur Seite "App-Registrierung" zurückkehren müssen, verwenden Sie https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps, stellen Sie sicher, dass die Registerkarte "Eigene Anwendungen " ausgewählt ist, und wählen Sie dann Ihre Anwendung aus.

    Seite „App-Registrierungen“, auf der Sie Ihre App auswählen.

  2. Wählen Sie auf der daraufhin geöffneten Anwendungsseite im Abschnitt Verwalten die Option Zertifikate & Geheimnisse aus.

    Wählen Sie auf der Seite mit den Anwendungseigenschaften die Option

  3. Wählen Sie auf der Seite "Zertifikate & Geheimnisse"die Option "Zertifikat hochladen" aus.

    Wählen Sie auf der Seite

    Navigieren Sie im daraufhin geöffneten Flyout " Zertifikat hochladen " zu dem öffentlichen Zertifikat (.cer Datei), das Sie in Schritt 3 exportiert haben, und wählen Sie dann "Hinzufügen" aus.

    Navigieren Sie zu dem Zertifikat, und wählen Sie dann

    Das Zertifikat wird nun im Abschnitt Zertifikate angezeigt.

    Anwendungsseite, die anzeigt, dass das Zertifikat hinzugefügt wurde.

  4. Schließen Sie die aktuelle Seite Zertifikate und Geheimnisse und dann die Seite App-Registrierungen, um zur Hauptseite https://portal.azure.com/ zurückzukehren. Sie verwenden ihn im nächsten Schritt.

Wenn Sie die Anwendung für delegierte Szenarien in Exchange Online in Schritt 1 zu mehreren Mandanten gemacht haben, müssen Sie der Exchange.ManageAsApp-Berechtigung die Administratorzustimmung erteilen, damit die Anwendung Cmdlets in Exchange Online in jeder Mandanten-organization ausführen kann. Sie müssen für jeden Kundenmandanten eine Administratorzustimmungs-URL generieren. Bevor jemand die mehrinstanzenfähige Anwendung verwendet, um eine Verbindung mit Exchange Online in der Mandanten-organization herzustellen, sollte ein Administrator im Kundenmandanten die folgende URL öffnen:

https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default

  • <tenant-id> ist die Mandanten-ID des Kunden.
  • <client-id> ist die ID der mehrinstanzenfähigen Anwendung.
  • Der Standardbereich wird verwendet, um Anwendungsberechtigungen zu erteilen.

Weitere Informationen zur URL-Syntax finden Sie unter Anfordern der Berechtigungen von einem Verzeichnisadministrator.

Schritt 5: Zuweisen von Rollenberechtigungen zur Anwendung

Sie haben folgende Optionen:

  • Option 1: Weisen Sie der Anwendung Microsoft Entra-Rollen zu: Verwenden Sie integrierte Microsoft Entra-Rollen, um alle Berechtigungen der Rolle zu erteilen. Sie können diese Rollen nicht anpassen oder festlegen.

  • Option 2: Zuweisen benutzerdefinierter Rollengruppen zur Anwendung mithilfe von Dienstprinzipalen: Wir empfehlen diese Option in den folgenden Szenarien:

    • Sie müssen die verfügbaren Befehle in Ihrer Anwendung einschränken.
    • Sie müssen einen Schreibbereich verwenden, um einzuschränken, welche Empfänger geändert werden können.
  • Option 3: Kombinieren von Microsoft Entra-Rollen mit benutzerdefinierten Rollengruppen: RBAC kombiniert Berechtigungen aus allen Quellen. Wir empfehlen diese Methode, um die Funktionen einer integrierten Microsoft Entra-Rolle zu erweitern. Sie können beispielsweise die Funktionen der Rolle "Exchange-Empfängeradministrator " erweitern, indem Sie zusätzliche Berechtigungen aus einer benutzerdefinierten Rolle gewähren.

Diese Optionen werden in den folgenden Unterabschnitten beschrieben.

Hinweis

Für mehrinstanzenfähige Anwendungen in delegierten Exchange Online-Szenarien müssen Sie jedem Kundenmandanten Berechtigungen zuweisen.

Option 1: Zuweisen von Microsoft Entra-Rollen zur Anwendung

In der folgenden Tabelle werden die unterstützten Microsoft Enttra-Rollen beschrieben:

Rolle Exchange Online:
PowerShell
Sicherheit & Compliance
PowerShell
Complianceadministrator
Exchange-Administrator¹
Exchange-Empfängeradministrator
Globaler Administrator¹ ²
Globaler Leser
Helpdeskadministrator
Sicherheitsadministrator¹
Sicherheitsleseberechtigter

¹ Die Rollen "Globaler Administrator" und "Exchange-Administrator" bieten die erforderlichen Berechtigungen für jede Aufgabe in Exchange Online PowerShell. Beispiel:

  • Empfängerverwaltung.
  • Sicherheits- und Schutzfeatures. Beispielsweise Antispam, Antischadsoftware, Antiphishing und die zugehörigen Berichte.

Die Rolle des Sicherheitsadministrators verfügt nicht über die erforderlichen Berechtigungen für dieselben Aufgaben.

² Microsoft setzt sich nachdrücklich für das Prinzip der geringsten Privilegien ein. Wenn Sie Konten nur die minimalen Berechtigungen zuweisen, die für die Ausführung ihrer Aufgaben erforderlich sind, tragen Sie zur Verringerung der Sicherheitsrisiken bei und stärken den allgemeinen Schutz Ihrer Organization. Globale Administratorrolle ist eine hoch privilegierte Rolle, die Sie auf Notfallszenarien beschränken sollten oder wenn Sie keine andere Rolle verwenden können.

Allgemeine Anweisungen zum Zuweisen von Rollen in Microsoft Entra ID finden Sie unter Zuweisen von Microsoft Entra-Rollen zu Benutzern.

Hinweis

Die folgenden Schritte unterscheiden sich geringfügig zwischen Exchange Online PowerShell und Security & Compliance PowerShell. Es werden die Schritte für beide Umgebungen angezeigt. Um Rollen für beide Umgebungen zu konfigurieren, wiederholen Sie die Schritte in diesem Abschnitt.

  1. Beginnen Sie im Microsoft Entra Admin Center unter https://portal.azure.com/mit der Eingabe von Rollen und Administratoren in das Suchfeld oben auf der Seite, und wählen Sie dann Microsoft Entra Rollen und Administratoren aus den Ergebnissen im Abschnitt Dienste aus.

    Screenshot, der Microsoft Entra-Rollen und -Administratoren in den Suchergebnissen auf der Startseite des Azure-Portals zeigt.

    Oder um direkt zur Seite für Microsoft Entra-Rollen und -Administratoren zu wechseln, verwenden Sie https://portal.azure.com/#view/Microsoft_AAD_IAM/AllRolesBlade.

  2. Suchen Sie auf der daraufhin geöffneten Seite Rollen und Administratoren eine der unterstützten Rollen in den Ergebnissen, und wählen Sie sie aus, indem Sie auf den Namen der Rolle klicken (nicht das Kontrollkästchen).

    • Exchange Online PowerShell: Suchen Sie beispielsweise die Exchange-Administratorrolle, und wählen Sie diese aus.

      Suchen Sie eine unterstützte Exchange Online PowerShell-Rolle, und wählen Sie diese durch Klicken auf den Rollennamen aus.

    • Security & Compliance PowerShell: Suchen Sie z. B. nach der Rolle " Complianceadministrator ", und wählen Sie diese aus.

      Suchen Sie eine unterstützte Sicherheits- & Compliance-PowerShell-Rolle, und wählen Sie sie aus, indem Sie auf den Rollennamen klicken.

  3. Wählen Sie auf der sich öffnenden Seite "Aufgaben" die Option "Aufgaben hinzufügen" aus.

    • Exchange Online PowerShell:

      Wählen Sie auf der Seite „Rollenzuweisungen“ für Exchange Online PowerShell die Option „Zuweisungen hinzufügen“ aus.

    • Security & Compliance Center PowerShell:

      Wählen Sie auf der Seite

  4. Suchen Sie im daraufhin geöffneten Flyout Zuweisungen hinzufügen die App, die Sie in Schritt 1 erstellt haben, und wählen Sie diese aus.

    Suchen Sie Ihre App im Flyout „Zuweisungen hinzufügen“, und wählen Sie diese aus.

    Wenn Sie fertig sind, wählen Sie im Flyout " Zuweisungen hinzufügen" die Option "Hinzufügen" aus.

  5. Überprüfen Sie auf der Seite "Zuweisungen ", ob die Rolle der App zugewiesen ist.

    • Exchange Online PowerShell:

      Die Seite „Rollenzuweisungen“ nach dem Hinzufügen der App zur Rolle für Exchange Online PowerShell.

    • Security & Compliance Center PowerShell:

      Die Seite mit den Rollenzuweisungen nachher, um die App der Rolle für Security & Compliance PowerShell hinzuzufügen.

Option 2: Zuweisen benutzerdefinierter Rollengruppen zur Anwendung mithilfe von Dienstprinzipalen

Hinweis

Sie müssen eine Verbindung mit Exchange Online PowerShell oder Security & Compliance PowerShell herstellen, bevor Sie Schritte zum Erstellen eines neuen Dienstprinzipals ausführen. Das Erstellen eines neuen Dienstprinzipals ohne Verbindung mit PowerShell funktioniert nicht (Ihre Azure-App-ID und Objekt-ID werden benötigt, um den neuen Dienstprinzipal zu erstellen).

Informationen zum Erstellen benutzerdefinierter Rollengruppen finden Sie unter Erstellen von Rollengruppen in Exchange Online und Erstellen Email & Rollengruppen für die Zusammenarbeit im Microsoft Defender-Portal. Die benutzerdefinierte Rollengruppe, die Sie der Anwendung zuweisen, kann eine beliebige Kombination aus integrierten und benutzerdefinierten Rollen enthalten.

Führen Sie die folgenden Schritte aus, um der Anwendung mithilfe von Dienstprinzipalen benutzerdefinierte Rollengruppen zuzuweisen:

  1. Führen Sie in Microsoft Graph PowerShell die folgenden Befehle aus, um die Details der Microsoft Entra-Anwendung, die Sie in Schritt 1 registriert haben, in einer Variablen zu speichern:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $<VariableName1> = Get-MgServicePrincipal -Filter "DisplayName eq '<AppName>'"
    

    Zum Beispiel:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'ExO PowerShell CBA'"
    

    Ausführliche Informationen zu Syntax und Parametern finden Sie unter Get-MgServicePrincipal.

  2. Stellen Sie im selben PowerShell-Fenster eine Verbindung mit Exchange Online PowerShell oder Security & Compliance PowerShell her, und führen Sie die folgenden Befehle aus, um

    • Erstellen Sie ein Dienstprinzipalobjekt für die Anwendung Microsoft Entra.
    • Speichern Sie die Details des Dienstprinzipals in einer Variablen, die im nächsten Schritt verwendet werden sollen.
    New-ServicePrincipal -AppId $<VariableName1>.AppId -ObjectId $<VariableName1>.Id -DisplayName "<Descriptive Name>"
    
    $<VariableName2> = Get-ServicePrincipal -Identity "<Descriptive Name>"
    

    Zum Beispiel:

    New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App ExO PowerShell CBA"
    
    $SP = Get-ServicePrincipal -Identity "SP for Azure AD App ExO PowerShell CBA"
    

    Ausführliche Informationen zu Syntax und Parametern finden Sie unter New-ServicePrincipal.

  3. Führen Sie in Exchange Online PowerShell oder Security & Compliance PowerShell den folgenden Befehl aus, um den Dienstprinzipal als Mitglied der benutzerdefinierten Rollengruppe hinzuzufügen:

    Add-RoleGroupMember -Identity "<CustomRoleGroupName>" -Member <$<VariableName2>.Identity | $<VariableName2>.ObjectId | $<VariableName2>.Id>
    

    Zum Beispiel:

    Add-RoleGroupMember -Identity "Contoso View-Only Recipients" -Member $SP.Identity
    

    Ausführliche Informationen zu Syntax und Parametern finden Sie unter Add-RoleGroupMember.