Freigeben über


Authentifizieren von Azure gehosteten Java Apps für Azure Ressourcen mithilfe einer vom Benutzer zugewiesenen verwalteten Identität

Der empfohlene Ansatz zum Authentifizieren einer Azure gehosteten App für andere Azure Ressourcen ist die Verwendung einer managed Identity. Die meisten Azure-Dienste unterstützen diesen Ansatz, einschließlich apps, die auf Azure App Service, Azure Container Apps und Azure Virtual Machines gehostet werden. Weitere Informationen finden Sie unter Azure Services und Ressourcentypen, die verwaltete Identitäten unterstützen. Weitere Informationen zu verschiedenen Authentifizierungstechniken und -ansätzen finden Sie unter Authenticate Java apps to Azure services by using the Azure Identity library.

In den folgenden Abschnitten erfahren Sie mehr über:

  • Grundlegende Konzepte für verwaltete Identitäten.
  • So erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität für Ihre App.
  • So weisen Sie der vom Benutzer zugewiesenen verwalteten Identität Rollen zu.
  • So authentifizieren Sie sich mithilfe der vom Benutzer zugewiesenen verwalteten Identität aus Ihrem App-Code.

Grundlegende Konzepte für verwaltete Identitäten

Mit einer verwalteten Identität kann Ihre App sicher eine Verbindung mit anderen Azure Ressourcen herstellen, ohne geheime Schlüssel oder andere geheime Anwendungsschlüssel zu verwenden. Intern verfolgt Azure die Identität und zu welchen Ressourcen es eine Verbindung herstellen darf. Azure verwendet diese Informationen, um automatisch Microsoft Entra Token für die App abzurufen, damit sie eine Verbindung mit anderen Azure-Ressourcen herstellen kann.

Es gibt zwei Arten von verwalteten Identitäten, die Sie beim Konfigurieren Ihrer gehosteten App berücksichtigen sollten:

  • System-assigned verwaltete Identitäten werden direkt auf einer Azure-Ressource aktiviert und sind an deren Lebenszyklus gebunden. Wenn die Ressource gelöscht wird, löscht Azure automatisch die Identität für Sie. Vom System zugewiesene Identitäten bieten einen minimalistischen Ansatz für die Verwendung verwalteter Identitäten.
  • User-assigned verwaltete Identitäten werden als eigenständige Azure Ressourcen erstellt und bieten größere Flexibilität und erweiterte Funktionalitäten. Sie eignen sich ideal für Lösungen mit mehreren Azure Ressourcen, die dieselbe Identität und Berechtigungen gemeinsam nutzen müssen. Wenn beispielsweise mehrere virtuelle Computer auf denselben Satz von Azure Ressourcen zugreifen müssen, bietet eine vom Benutzer zugewiesene verwaltete Identität wiederverwendbarkeit und optimierte Verwaltung.

Tipp

Erfahren Sie mehr über das Auswählen und Verwalten von vom System zugewiesenen und vom Benutzer zugewiesenen verwalteten Identitäten im Empfehlungsartikel zu bewährten Methoden für verwaltete Identitäten .

In den folgenden Abschnitten werden die Schritte zum Aktivieren und Verwenden einer vom Benutzer zugewiesenen verwalteten Identität für eine Azure gehostete App beschrieben. Wenn Sie eine vom System zugewiesene verwaltete Identität verwenden müssen, lesen Sie Authentifizierung von in Azure gehosteten Java Apps für Azure-Ressourcen mit einer vom System zugewiesenen verwalteten Identität.

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

Vom Benutzer zugewiesene verwaltete Identitäten werden mithilfe des Azure Portals oder der Azure CLI als eigenständige Ressourcen in Ihrem Azure-Abonnement erstellt. Azure CLI Befehle können im Azure Cloud Shell oder auf einer Arbeitsstation ausgeführt werden, auf der Azure CLI installiert ist.

  1. Geben Sie im Azure Portal Managed-Identitäten in der Hauptsuchleiste ein, und wählen Sie das entsprechende Ergebnis unter dem Abschnitt Services aus.

  2. Wählen Sie auf der Seite Verwaltete Identitäten die Option + Erstellen aus.

    Screenshot der Seite zum Verwalten von vom Benutzer zugewiesenen verwalteten Identitäten.

  3. Wählen Sie auf der Seite " Vom Benutzer zugewiesene verwaltete Identität erstellen " ein Abonnement, eine Ressourcengruppe und eine Region für die vom Benutzer zugewiesene verwaltete Identität aus, und geben Sie dann einen Namen an.

  4. Wählen Sie "Überprüfen + Erstellen" aus, um Ihre Eingaben zu überprüfen und zu validieren.

    Screenshot des Formulars zum Erstellen einer vom Benutzer zugewiesenen verwalteten Identität.

  5. Wählen Sie "Erstellen" aus, um die vom Benutzer zugewiesene verwaltete Identität zu erstellen.

  6. Nachdem die Identität erstellt wurde, wählen Sie "Zur Ressource wechseln" aus.

  7. Kopieren Sie auf der Seite "Übersicht" der neuen Identität den Client-ID-Wert , der später verwendet werden soll, wenn Sie den Anwendungscode konfigurieren.

Weisen Sie Ihrer App die verwaltete Identität zu

Eine vom Benutzer zugewiesene verwaltete Identität kann einer oder mehreren Azure Ressourcen zugeordnet werden. Alle Ressourcen, die diese Identität nutzen, erhalten die Berechtigungen, die durch die Rollen der Identität vergeben werden.

  1. Navigieren Sie im Azure-Portal zu der Ressource, die Ihren App-Code hostt, z. B. eine Azure App Service- oder Azure Container Apps Instanz.

  2. Blenden Sie auf der Seite Übersicht der Ressource Einstellungen ein, und wählen Sie im Navigationsbereich Identität.

  3. Wechseln Sie auf der Seite Identität zur Registerkarte Benutzerzugewiesen.

  4. Wählen Sie + Hinzufügen aus, um den Bereich Benutzerzugewiesene verwaltete Identität hinzufügen zu öffnen.

  5. Verwenden Sie im Bereich "Vom Benutzer zugewiesene verwaltete Identität hinzufügen " das Dropdownmenü "Abonnement ", um die Suchergebnisse nach Ihren Identitäten zu filtern. Verwenden Sie das Suchfeld Benutzer zugewiesene verwaltete Identitäten, um die vom Benutzer zugewiesene verwaltete Identität zu finden, die Sie für die Azure Ressource aktiviert haben, die Ihre App hosten soll.

  6. Wählen Sie die Identität aus, und wählen Sie "Hinzufügen" am unteren Rand des Bereichs aus, um den Vorgang fortzusetzen.

    Screenshot, der zeigt, wie eine vom Benutzer zugewiesene verwaltete Identität einer App zugeordnet wird.

Rollen der verwalteten Identität zuweisen

Ermitteln Sie als Nächstes, welche Rollen Ihre App benötigt, und weisen Sie diese Rollen der verwalteten Identität zu. Sie können einer verwalteten Identität rollen in den folgenden Bereichen zuweisen:

  • Ressource: Die zugewiesenen Rollen gelten nur für diese bestimmte Ressource.
  • Ressourcengruppe: Die zugewiesenen Rollen gelten für alle Ressourcen, die in der Ressourcengruppe enthalten sind.
  • Abonnement-: Die zugewiesenen Rollen gelten für alle Im Abonnement enthaltenen Ressourcen.

Das folgende Beispiel zeigt, wie Rollen im Ressourcengruppenbereich zugewiesen werden, da viele Apps alle zugehörigen Azure Ressourcen mithilfe einer einzelnen Ressourcengruppe verwalten.

  1. Navigieren Sie zur Übersichtsseite der Ressourcengruppe, die die App mit der vom Benutzer zugewiesenen verwalteten Identität enthält.

  2. Wählen Sie im Navigationsbereich links Zugriffssteuerung (IAM).

  3. Wählen Sie auf der Seite Zugriffssteuerung (IAM) im oberen Menü + Hinzufügen. Wählen Sie dann Rollenzuweisung hinzufügen, um zur Seite Rollenzuweisung hinzufügen zu navigieren.

    Screenshot, der zeigt, wie Sie auf die Seite

  4. Die Seite Rollenzuweisung hinzufügen stellt einen mehrstufigen Workflow zum Zuweisen von Rollen für Identitäten auf Registerkarten bereit. Verwenden Sie auf der ersten Registerkarte Rolle das Suchfeld oben, um die Rolle zu suchen, die Sie der Identität zuweisen möchten.

  5. Wählen Sie die Rolle in den Ergebnissen. Wählen Sie dann Weiter, um zur Registerkarte Mitglieder zu gelangen.

  6. Wählen Sie für die Option Zuweisen des Zugriffs auf die Option Verwaltete Identitätaus.

  7. Wählen Sie für die Option Mitglieder+ Mitglieder auswählen, um den Bereich Verwaltete Identitäten auswählen zu öffnen.

  8. Verwenden Sie im Bereich "Verwaltete Identitäten auswählen" die Dropdownlisten "Abonnement" und "Verwaltete Identität", um die Suchergebnisse für Ihre Identitäten zu filtern. Verwenden Sie das Suchfeld Select, um die vom Benutzer zugewiesene verwaltete Identität zu suchen, die Sie für die Azure Ressource aktiviert haben, die Ihre App hosten soll.

    Screenshot des Prozesses der verwalteten Identitätszuweisung.

  9. Wählen Sie die Identität und dann unten im Bereich Auswählen, um fortzufahren.

  10. Wählen Sie unten auf der Seite Überprüfen und zuweisen.

  11. Wählen Sie auf der letzten Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen, um den Workflow abzuschließen.

Authentifizieren bei Azure Diensten aus Ihrer App

Die Azure Identitätsbibliothek bietet unterschiedliche Anmeldedaten als Implementierungen von TokenCredential. Jede Implementierung unterstützt unterschiedliche Szenarien und Microsoft Entra Authentifizierungsflüsse. Geben Sie bei vom Benutzer zugewiesenen verwalteten Identitäten die Client-ID, Ressourcen-ID oder Objekt-ID der Identität an, wenn Sie die Anmeldeinformationen konfigurieren.

Implementieren des Codes

Fügen Sie die azure-identity Abhängigkeit zu Ihrer pom.xml Datei hinzu.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Sie greifen auf Azure Dienste zu, indem Sie spezielle Clientklassen aus den Azure SDK Clientbibliotheken verwenden. Die folgenden Codebeispiele zeigen, wie Sie die Anmeldeinformationen für die vom Benutzer zugewiesene verwaltete Identitätsauthentifizierung konfigurieren.

Verwendung von DefaultAzureCredential

Verwenden Sie DefaultAzureCredential als Anmeldeinformationen für Azure gehostete Apps. Konfigurieren Sie für vom Benutzer zugewiesene verwaltete Identitäten die Client-ID mithilfe der managedIdentityClientId Methode:

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .managedIdentityClientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Verwenden von ManagedIdentityCredential

Wenn Sie die verwalteten Identitätsanmeldeinformationen explizit verwenden und die Anmeldeinformationskette in DefaultAzureCredential vermeiden möchten, verwenden Sie ManagedIdentityCredential direkt. Bei vom Benutzer zugewiesenen verwalteten Identitäten können Sie die Identität mithilfe der Client-ID, der Ressourcen-ID oder der Objekt-ID angeben.

Verwenden Sie die Client-ID, um eine verwaltete Identität zu identifizieren, wenn Sie Anwendungen oder Dienste konfigurieren, die mithilfe dieser Identität authentifiziert werden müssen.

Rufen Sie die Client-ID ab, die einer vom Benutzer zugewiesenen verwalteten Identität zugewiesen ist, indem Sie den folgenden Befehl verwenden:

az identity show \
    --resource-group <resource-group-name> \
    --name <identity-name> \
    --query clientId \
    --output tsv

Konfigurieren Sie ManagedIdentityCredential mit der Client-ID:

import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
    .clientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Nächste Schritte

In diesem Artikel wurde die Authentifizierung mithilfe einer vom Benutzer zugewiesenen verwalteten Identität behandelt. Diese Form der Authentifizierung ist eine von mehreren Möglichkeiten, wie Sie sich im Azure SDK für Java authentifizieren können. In den folgenden Artikeln werden weitere Methoden zur Authentifizierung beschrieben:

Wenn Probleme im Zusammenhang mit der Azure-gehosteten Anwendungsauthentifizierung auftreten, lesen Sie Probleme mit der Azure-gehosteten Anwendungsauthentifizierung beheben.

Nachdem Sie die Authentifizierung gemeistert haben, sehen Sie sich Konfigurieren der Protokollierung im Azure SDK für Java an, um Informationen über die vom SDK bereitgestellten Protokollierungsfunktionen zu erhalten.