Verwenden verwalteter Identitäten für Azure mit Service Fabric
Eine gängige Herausforderung beim Entwickeln von Cloudanwendungen ist die sichere Verwaltung der Anmeldeinformationen in Ihrem Code für die Authentifizierung bei verschiedenen Diensten, ohne diese lokal auf einer Entwicklerarbeitsstation oder in der Quellcodeverwaltung zu speichern. Verwaltete Identitäten für Azure lösen dieses Problem für alle Ihre Ressourcen in Microsoft Entra ID, indem sie automatisch verwaltete Identitäten in Microsoft Entra ID bereitstellen. Sie können die Identität eines Diensts für die Authentifizierung bei jedem Dienst verwenden, der die Microsoft Entra-Authentifizierung unterstützt, einschließlich Key Vault. Hierfür müssen keine Anmeldeinformationen im Code gespeichert werden.
Verwaltete Identitäten für Azure-Ressourcen sind in Microsoft Entra ID für Azure-Abonnements kostenlos. Es entstehen keine zusätzlichen Kosten.
Hinweis
Verwaltete Identitäten für Azure ist der neue Name für den Dienst, der früher als „Verwaltete Dienstidentität“ (Managed Service Identity, MSI) bezeichnet wurde.
Konzepte
Verwaltete Identitäten für Azure basieren auf verschiedenen wichtigen Konzepten:
Client-ID: ein eindeutiger, in Microsoft Entra ID generierter Bezeichner, der während der ersten Bereitstellung an eine Anwendung und einen Dienstprinzipal gebunden wird (siehe auch Anwendungs-ID (Client-ID)).
Prinzipal-ID: Die Objekt-ID des Dienstprinzipalobjekts für Ihre verwaltete Identität, die zum Gewähren des rollenbasierten Zugriffs auf eine Azure-Ressource verwendet wird
Dienstprinzipal – ein Microsoft Entra-Objekt, das die Projektion einer Microsoft Entra-Anwendung in einem bestimmten Mandanten darstellt (siehe auch Dienstprinzipal).
Es gibt zwei Arten von verwalteten Identitäten:
- Eine vom System zugewiesene verwaltete Identität wird direkt für eine Azure-Dienstinstanz aktiviert. Der Lebenszyklus einer vom System zugewiesenen Identität ist für die Azure-Dienstinstanz eindeutig, für die sie aktiviert wurde.
- Eine vom Benutzer zugewiesene verwaltete Identität wird als eigenständige Azure-Ressource erstellt. Die Identität kann mindestens einer Azure-Dienstinstanz zugewiesen werden und wird separat von den Lebenszyklen dieser Instanzen verwaltet.
Weitere Informationen zu den Unterschieden zwischen den Typen verwalteter Identitäten finden Sie unter Wie funktionieren verwaltete Identitäten für Azure-Ressourcen?.
Unterstützte Szenarien für Service Fabric-Anwendungen
Verwaltete Identitäten für Service Fabric werden nur in von Azure bereitgestellten Service Fabric-Clustern und nur für Anwendungen unterstützt, die als Azure-Ressourcen bereitgestellt werden. Einer Anwendung, die nicht als Azure-Ressource bereitgestellt wird, kann keine Identität zugewiesen werden. Konzeptionell besteht die Unterstützung für verwaltete Identitäten in einem Azure Service Fabric-Cluster aus zwei Phasen:
Zuweisen mindestens einer verwalteten Identität zu der Anwendungsressource. Einer Anwendung können jeweils eine einzelne vom System zugewiesene Identität und/oder bis zu 32 vom Benutzer zugewiesene Identitäten zugewiesen werden.
Zuordnen einer der Identitäten, die der Anwendung zugewiesen sind, zu einem einzelnen Dienst, der die Anwendung enthält, in der Anwendungsdefinition
Die vom System zugewiesene Identität einer Anwendung ist eindeutig für diese Anwendung. Eine vom Benutzer zugewiesene Identität ist eine eigenständige Ressource, die mehreren Anwendungen zugewiesen werden kann. Innerhalb einer Anwendung kann eine einzelne (vom System oder vom Benutzer zugewiesene) Identität mehreren Diensten der Anwendung zugewiesen werden, jedem einzelnen Dienst kann jedoch nur eine einzige Identität zugewiesen werden. Schließlich muss einem Dienst explizit eine Identität zugewiesen werden, um auf diese Funktion zugreifen zu können. Tatsächlich ermöglicht die Zuordnung der Identitäten einer Anwendung zu den zugehörigen einzelnen Diensten eine Isolation in der Anwendung. In einem Dienst kann nur die ihm zugewiesene Identität verwendet werden.
Die folgenden Szenarien für dieses Feature werden unterstützt:
Bereitstellen einer neuen Anwendung mit einem oder mehreren Diensten und einer oder mehreren zugewiesenen Identitäten
Zuweisen mindestens einer verwalteten Identität zu einer vorhandenen (in Azure bereitgestellten) Anwendung, um auf Azure-Ressourcen zuzugreifen
Die folgenden Szenarien werden nicht unterstützt bzw. empfohlen. Diese Aktionen werden zwar nicht blockiert, können aber zu Ausfällen bei Ihren Anwendungen führen:
Entfernen oder Ändern der Identitäten, die einer Anwendung zugewiesen sind. Wenn Sie Änderungen vornehmen müssen, übermitteln Sie separate Bereitstellungen, um zunächst die Zuweisung einer neuen Identität hinzuzufügen und dann eine zuvor zugewiesene Identität zu entfernen. Das Entfernen einer Identität aus einer vorhandenen Anwendung kann unerwünschte Auswirkungen haben und z. B. die Anwendung in einen nicht aktualisierbaren Zustand bringen. Es ist sicher, die Anwendung vollständig zu löschen, wenn die Entfernung einer Identität erforderlich ist. Durch das Löschen der Anwendung werden alle vom System zugewiesenen Identitäten gelöscht, die mit der Anwendung verbunden sind, und alle Verknüpfungen mit den benutzerseitig zugewiesenen Identitäten, die der Anwendung zugewiesen sind, werden entfernt.
Service Fabric unterstützt keine verwalteten Identitäten im veralteten AzureServiceTokenProvider. Verwenden Sie stattdessen verwaltete Identitäten in Service Fabric mithilfe des Azure Identity SDK.
Nächste Schritte
- Bereitstellen eines neuen Azure Service Fabric-Clusters mit Unterstützung für verwaltete Identitäten
- Aktivieren Sie die Unterstützung der verwalteten Identität in einem bereits vorhandenen Azure Service Fabric-Cluster.
- Bereitstellen einer Azure Service Fabric-Anwendung mit einer systemseitig zugewiesenen verwalteten Identität
- Bereitstellen einer Azure Service Fabric-Anwendung mit einer benutzerseitig zugewiesenen verwalteten Identität
- Verwenden der verwalteten Identität einer Service Fabric-Anwendung aus dem Dienstcode
- Gewähren des Zugriffs auf andere Azure-Ressourcen für eine Azure Service Fabric-Anwendung
- Deklarieren und Verwenden von Anwendungsgeheimnissen als KeyVaultReferences