Schützen von Dienstprinzipalen in Microsoft Entra ID
Ein Microsoft Entra-Dienstprinzipal ist die lokale Darstellung eines Anwendungsobjekts in einem Mandanten oder Verzeichnis. Er stellt Identität der Anwendungsinstanz dar. Dienstprinzipale definieren den Anwendungszugriff und die Ressourcen, auf die die Anwendung zugreift. Ein Dienstprinzipal wird in jedem Mandanten erstellt, in dem die Anwendung verwendet wird, und es verweist auf das global eindeutige Anwendungsobjekt. Mit dem Mandanten werden die Anmeldung des Dienstprinzipals und dessen Zugriff auf Ressourcen geschützt.
Weitere Informationen: Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID
Beziehungen zwischen Mandanten und Dienstprinzipalen
Eine Anwendung mit nur einem Mandanten verfügt auf diesem Basismandanten über einen Dienstprinzipal. Für eine mehrinstanzenfähige Webanwendung oder API wird ein Dienstprinzipal auf jedem Mandanten benötigt. Ein Dienstprinzipal wird erstellt, wenn ein Benutzer aus diesem Mandanten der Verwendung der Anwendung oder API einwilligt. Aufgrund dieser Einwilligung wird eine 1:n-Beziehung zwischen der mehrinstanzenfähigen Anwendung und den zugehörigen Dienstprinzipalen erstellt.
Eine mehrinstanzenfähige Anwendung befindet sich in einem Mandanten und verfügt über Instanzen in anderen Mandanten. Die meisten SaaS-Anwendungen (Software-as-a-Service) sind mehrinstanzenfähig. Verwenden Sie Dienstprinzipale, um den erforderlichen Sicherheitsstatus für die Anwendung und ihre Benutzer*innen in Szenarien mit nur einem oder mit mehreren Mandanten sicherzustellen.
ApplicationID und ObjectID
Eine Anwendungsinstanz verfügt über zwei Eigenschaften: die ApplicationID (auch als ClientID bezeichnet) und die ObjectID.
Hinweis
Die Begriffe Anwendung und Dienstprinzipal werden synonym verwendet, wenn sie sich im Zusammenhang mit Authentifizierungsaufgaben auf eine Anwendung beziehen. Es gibt jedoch zwei Repräsentationen von Anwendungen in Microsoft Entra ID.
Die ApplicationID steht für die globale Anwendung und ist für Anwendungsinstanzen mandantenübergreifend identisch. Die ObjectID ist ein eindeutiger Wert für ein Anwendungsobjekt. Wie bei Benutzer*innen, Gruppen und anderen Ressourcen vereinfacht die ObjectID auch bei Anwendungen das Identifizieren einer Instanz in Microsoft Entra ID.
Weitere Informationen finden Sie unter Beziehung zwischen Anwendung und Dienstprinzipal in Microsoft Entra ID
Erstellen einer Anwendung und ihres Dienstprinzipalobjekts
Gehen Sie wie folgt vor, um eine Anwendung und ihr Dienstprinzipalobjekt (ObjectID) in einem Mandanten zu erstellen:
- Azure PowerShell
- Microsoft Graph PowerShell
- Azure-Befehlszeilenschnittstelle (Azure CLI)
- Microsoft Graph-API
- Das Azure-Portal
- Weitere Tools
Dienstprinzipalauthentifizierung
Bei Verwendung von Dienstprinzipalen gibt es zwei Mechanismen zur Authentifizierung: Clientzertifikate und geheime Clientschlüssel.
Da Zertifikate sicherer sind, wird empfohlen, diese nach Möglichkeit zu verwenden. Im Gegensatz zu geheimen Clientschlüsseln können Clientzertifikate nicht versehentlich in Code eingebettet werden. Nutzen Sie nach Möglichkeit Azure Key Vault für die Verwaltung von Zertifikaten und Geheimnissen, um Ressourcen mit durch Hardwaresicherheitsmodule geschützte Schlüssel zu verschlüsseln:
- Authentifizierungsschlüssel
- Speicherkontoschlüssel
- Datenverschlüsselungsschlüssel
- PFX-Dateien
- Kennwörter
Weitere Informationen zu Azure Key Vault und zur Verwendung für die Verwaltung von Zertifikaten und Schlüsseln finden Sie unter:
Herausforderungen und Gegenmaßnahmen
In der folgenden Tabelle finden Sie Risikominderungen für bestimmte Herausforderungen bei der Verwendung von Dienstprinzipalen.
Herausforderung | Minderung |
---|---|
Zugriffsüberprüfungen für Dienstprinzipale, die privilegierten Rollen zugewiesen sind | Diese Funktion befindet sich in der Vorschauphase. |
Überprüfungen des Dienstprinzipalzugriffs | Ermöglicht die manuelle Überprüfung der Zugriffssteuerungsliste einer Ressource über das Azure-Portal. |
Dienstprinzipale mit zu vielen Berechtigungen | Weisen Sie beim Erstellen von Automatisierungsdienstkonten oder Dienstprinzipalen die Berechtigungen zu, die für die jeweilige Aufgabe benötigt werden. Auswerten von Dienstprinzipalen zum Reduzieren von Berechtigungen |
Ermittlung von Änderungen an den Anmeldeinformationen oder Authentifizierungsmethoden von Dienstprinzipalen | - Siehe Arbeitsmappe „Berichte zu sicherheitsrelevanten Vorgängen“ - Informationen zum Bewerten des Solorigate-Risikos mit der Microsoft Entra-Arbeitsmappe finden Sie im Tech Community-Blogbeitrag |
Suchen nach Konten mit Dienstprinzipalen
Führen Sie die folgenden Befehle aus, um Konten unter Verwendung von Dienstprinzipalen mit der Azure-Befehlszeilenschnittstelle oder mit PowerShell zu finden.
- Azure-CLI –
az ad sp list
- PowerShell:
Get-MgServicePrincipal -All:$true
Weitere Informationen finden Sie unter Get-MgServicePrincipal
Bewerten der Sicherheit von Dienstprinzipalen
Evaluieren Sie die Speicherung von Berechtigungen und Anmeldeinformationen, um die Sicherheit zu bewerten. In der folgenden Tabelle finden Sie Risikominderungen für einige Herausforderungen:
Herausforderung | Minderung |
---|---|
Ermitteln des Benutzers, der seine Einwilligung für eine mehrinstanzenfähige App erteilt hat, und Ermitteln von unrechtmäßigen Einwilligungserteilungen für eine mehrinstanzenfähige App | - Führen Sie das folgende PowerShell-Cmdlet aus, um nach mehrinstanzenfähigen Apps zu suchen. Get-MgServicePrincipal -All:$true | ? {$_.Tags -eq "WindowsAzureActiveDirectoryIntegratedApp"} - Deaktivieren der Benutzerzustimmung - Zulassen der Benutzereinwilligung von verifizierten Herausgebern für ausgewählte Berechtigungen (empfohlen) – Konfigurieren sie im Benutzerkontext - Verwenden Sie deren Token, um den Dienstprinzipal auszulösen. |
Verwenden eines hartcodierten gemeinsamen geheimen Schlüssels in einem Skript mithilfe eines Dienstprinzipals | Verwenden eines Zertifikats |
Nachverfolgen der Verwendung von Zertifikaten oder Geheimnissen | Überwachen Sie die Anmeldungen für den Dienstprinzipal, indem Sie die Microsoft Entra-Anmeldeprotokolle verwenden |
Die Anmeldung von Dienstprinzipalen kann nicht per bedingtem Zugriff verwaltet werden. | Überwachen Sie die Anmeldungen, indem Sie die Microsoft Entra-Anmeldeprotokolle verwenden |
„Mitwirkender“ ist die Standardrolle für die rollenbasierte Zugriffssteuerung (RBAC) in Azure. | Bewerten des Bedarfs und Anwenden der geringstmöglichen Berechtigungen |
Weitere Informationen: Was ist bedingter Zugriff?
Wechseln von einem Benutzerkonto zu einem Dienstprinzipal
Wenn Sie ein Azure-Benutzerkonto als Dienstprinzipal verwenden, sollten Sie überprüfen, ob die Umstellung auf eine verwaltete Identität oder einen Dienstprinzipal möglich ist. Falls Sie keine verwaltete Identität verwenden können, sollten Sie einen Dienstprinzipal bereitstellen, der über ausreichende Berechtigungen und den entsprechenden Bereich für die Ausführung der erforderlichen Aufgaben verfügt. Sie können einen Dienstprinzipal erstellen, indem Sie eine Anwendung registrieren oder PowerShell verwenden.
Wenn Sie Microsoft Graph verwenden, überprüfen Sie die API-Dokumentation. Stellen Sie sicher, dass der Berechtigungstyp für die Anwendung unterstützt wird.
Weitere Informationen finden Sie unter Erstellen eines Dienstprinzipals.
Weitere Informationen:
- Verwenden verwalteter Identitäten für App Service und Azure Functions
- Erstellen einer Microsoft Entra ID-Anwendung und eines Dienstprinzipals mit Zugriff auf Ressourcen
- Verwenden von Azure PowerShell zum Erstellen eines Dienstprinzipals mit einem Zertifikat
Nächste Schritte
Erfahren Sie mehr über Dienstprinzipale:
- Erstellen einer Microsoft Entra ID-Anwendung und eines Dienstprinzipals mit Zugriff auf Ressourcen
- Anmeldeprotokolle in Microsoft Entra ID
Schützen von Dienstkonten:
- Schützen cloudbasierter Dienstkonten
- Schützen verwalteter Identitäten in Microsoft Entra ID
- Steuern von Microsoft Entra-Dienstkonten
- Schützen lokaler Dienstkonten
Bedingter Zugriff:
Verwenden Sie den bedingten Zugriff, um Dienstprinzipale von nicht vertrauenswürdigen Orten zu blockieren.
Weitere Informationen finden Sie unter Festlegen einer standortbasierten Richtlinie für bedingten Zugriff.