Migrieren einer Anwendung zur Verwendung kennwortloser Verbindungen mit Azure-Datenbank für MySQL

In diesem Artikel wird erläutert, wie Sie von herkömmlichen Authentifizierungsmethoden zu sichereren, kennwortlosen Verbindungen mit Azure Database for MySQL migrieren.

Anwendungsanforderungen an Azure-Datenbank für MySQL müssen authentifiziert werden. Azure Database for MySQL bietet verschiedene Möglichkeiten, wie Apps eine sichere Verbindung herstellen können. Eine der Möglichkeiten besteht darin, Kennwörter zu verwenden. Sie sollten jedoch nach Möglichkeit kennwortlose Verbindungen in Ihren Anwendungen priorisieren.

Vergleichen von Authentifizierungsoptionen

Wenn sich die Anwendung bei Azure Database for MySQL authentifiziert, stellt sie ein Benutzernamen- und Kennwortpaar bereit, um eine Verbindung mit der Datenbank herzustellen. Je nachdem, wo die Identitäten gespeichert werden, gibt es zwei Arten von Authentifizierung: Microsoft Entra-Authentifizierung und MySQL-Authentifizierung.

Microsoft Entra-Authentifizierung

Die Microsoft Entra-Authentifizierung ist ein Mechanismus zum Herstellen einer Verbindung mit der Azure-Datenbank für MySQL mithilfe von In Microsoft Entra ID definierten Identitäten. Mithilfe Microsoft Entra Authentifizierung können Sie Datenbankbenutzeridentitäten und andere Microsoft-Dienste an einem zentralen Ort verwalten, wodurch die Berechtigungsverwaltung vereinfacht wird.

Die Verwendung der Microsoft Entra-ID für die Authentifizierung bietet die folgenden Vorteile:

  • Authentifizierung von Benutzern über Azure Services hinweg auf einheitliche Weise.
  • Verwaltung von Kennwortrichtlinien und Kennwortrotation an einem zentralen Ort.
  • Mehrere Von Microsoft Entra ID unterstützte Authentifizierungsformen, die die Notwendigkeit zum Speichern von Kennwörtern vermeiden können.
  • Kunden können Datenbankberechtigungen mithilfe externer Gruppen (Microsoft Entra ID) verwalten.
  • Die Microsoft Entra-Authentifizierung verwendet MySQL-Datenbankbenutzer, um Identitäten auf Datenbankebene zu authentifizieren.
  • Unterstützung der tokenbasierten Authentifizierung für Anwendungen, die eine Verbindung mit Azure-Datenbank für MySQL herstellen.

MySQL-Authentifizierung

Sie können Konten in MySQL erstellen. Wenn Sie Kennwörter als Anmeldeinformationen für die Konten verwenden, speichert die user Tabelle diese Anmeldeinformationen. Da MySQL diese Passwörter speichert, müssen Sie den regelmäßigen Passwortwechsel selbst verwalten.

Obwohl Sie mithilfe von Kennwörtern eine Verbindung mit Azure Database for MySQL herstellen können, verwenden Sie sie mit Vorsicht. Achten Sie darauf, die Kennwörter an einem unsicheren Ort niemals verfügbar zu machen. Jeder, der Zugriff auf die Kennwörter erhält, kann sich authentifizieren. Ein böswilliger Benutzer kann z. B. auf die Anwendung zugreifen, wenn Sie versehentlich eine Verbindungszeichenfolge zur Quellcodeverwaltung einchecken, sie über eine unsichere E-Mail senden, in den falschen Chat einfügen oder wenn jemand ohne Berechtigung die Anwendung anzeigt. Erwägen Sie stattdessen, Ihre Anwendung so zu aktualisieren, dass kennwortlose Verbindungen verwendet werden.

Einführung kennwortloser Verbindungen

Mit einer kennwortlosen Verbindung können Sie eine Verbindung mit Azure-Diensten herstellen, ohne Anmeldeinformationen im Anwendungscode, den zugehörigen Konfigurationsdateien oder in Umgebungsvariablen zu speichern.

Viele Azure-Dienste unterstützen kennwortlose Verbindungen, z. B. über Azure Managed Identity. Diese Techniken bieten robuste Sicherheitsfeatures, die Sie mithilfe von DefaultAzureCredential aus den Azure Identity-Clientbibliotheken implementieren können. In diesem Tutorial lernen Sie, wie Sie eine vorhandene Anwendung so aktualisieren, dass sie DefaultAzureCredential anstelle von Alternativen wie Verbindungszeichenfolgen verwendet.

DefaultAzureCredential unterstützt mehrere Authentifizierungsmethoden und bestimmt automatisch, welche zur Laufzeit verwendet werden sollen. Mit diesem Ansatz kann Ihre App unterschiedliche Authentifizierungsmethoden in verschiedenen Umgebungen (lokaler Entwicklungs- und Produktionsumgebung) verwenden, ohne umgebungsspezifischen Code zu implementieren.

Die Reihenfolge und die Orte, an denen DefaultAzureCredential nach Anmeldeinformationen sucht, sind in der Übersicht über die Azure Identity-Bibliothek zu finden. Wenn Sie beispielsweise lokal arbeiten, wird sich DefaultAzureCredential in der Regel mit dem Konto authentifizieren, mit dem der Entwickler sich bei Visual Studio angemeldet hat. Wenn die App in Azure bereitgestellt wird, DefaultAzureCredential wechselt automatisch zur Verwendung einer verwalteten Identität. Für diesen Übergang sind keine Codeänderungen erforderlich.

Um sicherzustellen, dass Verbindungen kennwortlos sind, müssen Sie sowohl die lokale Entwicklung als auch die Produktionsumgebung berücksichtigen. Wenn an beiden Stellen eine Verbindungszeichenfolge erforderlich ist, ist die Anwendung nicht kennwortlos.

In Ihrer lokalen Entwicklungsumgebung können Sie sich mit Azure CLI, Azure PowerShell, Visual Studio oder Azure-Plug-Ins für Visual Studio Code oder IntelliJ authentifizieren. In diesem Fall können Sie diese Anmeldeinformationen in Ihrer Anwendung verwenden, anstatt Eigenschaften zu konfigurieren.

Wenn Sie Anwendungen in einer Azure-Hostingumgebung bereitstellen, z. B. einem virtuellen Computer, können Sie verwaltete Identitäten in dieser Umgebung zuweisen. Anschließend müssen Sie keine Anmeldeinformationen angeben, um eine Verbindung mit Azure-Diensten herzustellen.

Hinweis

Eine verwaltete Identität stellt eine Sicherheitsidentität bereit, die eine App oder einen Dienst darstellt. Die Identität wird von der Azure-Plattform verwaltet, und Sie müssen keine Geheimnisse bereitstellen oder erneuern. Weitere Informationen zu verwalteten Identitäten finden Sie in der Übersichtsdokumentation .

Migrieren einer vorhandenen Anwendung zur Verwendung kennwortloser Verbindungen

In den folgenden Schritten wird erläutert, wie Sie eine vorhandene Anwendung migrieren, um kennwortlose Verbindungen anstelle einer kennwortbasierten Lösung zu verwenden.

0) Vorbereiten der Arbeitsumgebung

Verwenden Sie zunächst den folgenden Befehl, um einige Umgebungsvariablen einzurichten.

export AZ_RESOURCE_GROUP=<YOUR_RESOURCE_GROUP>
export AZ_DATABASE_SERVER_NAME=<YOUR_DATABASE_SERVER_NAME>
export AZ_DATABASE_NAME=demo
export AZ_MYSQL_AD_NON_ADMIN_USERNAME=<YOUR_AZURE_AD_NON_ADMIN_USER_DISPLAY_NAME>
export AZ_MYSQL_AD_MI_USERNAME=<YOUR_AZURE_AD_MI_DISPLAY_NAME>
export AZ_USER_IDENTITY_NAME=<YOUR_USER_ASSIGNED_MANAGEMED_IDENTITY_NAME>
export CURRENT_USERNAME=$(az ad signed-in-user show --query userPrincipalName --output tsv)
export CURRENT_USER_OBJECTID=$(az ad signed-in-user show --query id --output tsv)

Ersetzen Sie die Platzhalter durch die folgenden Werte, die in diesem Artikel verwendet werden:

  • <YOUR_RESOURCE_GROUP>: Der Name der Ressourcengruppe für Ihre Ressourcen.
  • <YOUR_DATABASE_SERVER_NAME>: Der Name Ihres MySQL-Servers, der in Azure eindeutig sein sollte.
  • <YOUR_AZURE_AD_NON_ADMIN_USER_DISPLAY_NAME>: Der Anzeigename Ihres Nicht-Administratorbenutzers von Microsoft Entra. Stellen Sie sicher, dass es sich bei dem Namen um einen gültigen Benutzer in Ihrem Microsoft Entra-Mandanten handelt.
  • <YOUR_AZURE_AD_MI_DISPLAY_NAME>: Der Anzeigename des Microsoft Entra-Benutzers für Ihre verwaltete Identität. Stellen Sie sicher, dass der angegebene Name in Ihrem Microsoft Entra-Mandanten als gültiger Benutzer vorhanden ist.
  • <YOUR_USER_ASSIGNED_MANAGEMED_IDENTITY_NAME>: Der Name Ihres vom Benutzer zugewiesenen verwalteten Identitätsservers, der in Azure eindeutig sein sollte.

1) Konfigurieren der Azure-Datenbank für MySQL

1.1) Aktivieren der microsoft Entra ID-basierten Authentifizierung

Wenn Sie Microsoft Entra ID Zugriff mit Azure Database for MySQL verwenden möchten, legen Sie zuerst den Microsoft Entra Administratorbenutzer fest. Nur ein Microsoft Entra Administratorbenutzer kann Benutzer für Microsoft Entra ID basierte Authentifizierung erstellen oder aktivieren.

Wenn Sie Azure CLI verwenden, führen Sie den folgenden Befehl aus, um sicherzustellen, dass er über ausreichende Berechtigungen verfügt:

az login --scope https://graph.microsoft.com/.default

Führen Sie den folgenden Befehl aus, um eine Benutzeridentität für die Zuweisung zu erstellen:

az identity create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_USER_IDENTITY_NAME

Von Bedeutung

Bitten Sie nach dem Erstellen der vom Benutzer zugewiesenen Identität Ihren globalen Administrator oder den Administrator für privilegierte Rollen , die folgenden Berechtigungen für diese Identität zu erteilen: User.Read.All, GroupMember.Read.All, und Application.Read.ALL. Weitere Informationen finden Sie im Abschnitt "Berechtigungen" der Active Directory-Authentifizierung.

Führen Sie den folgenden Befehl aus, um die Identität dem MySQL-Server zum Erstellen des Microsoft Entra-Administrators zuzuweisen:

az mysql flexible-server identity assign \
    --resource-group $AZ_RESOURCE_GROUP \
    --server-name $AZ_DATABASE_SERVER_NAME \
    --identity $AZ_USER_IDENTITY_NAME

Führen Sie dann den folgenden Befehl aus, um den Microsoft Entra Administrator festzulegen:

az mysql flexible-server ad-admin create \
    --resource-group $AZ_RESOURCE_GROUP \
    --server-name $AZ_DATABASE_SERVER_NAME \
    --display-name $CURRENT_USERNAME \
    --object-id $CURRENT_USER_OBJECTID \
    --identity $AZ_USER_IDENTITY_NAME

Mit diesem Befehl wird der Microsoft Entra Administrator auf den aktuellen angemeldeten Benutzer festgelegt.

Hinweis

Sie können nur einen Microsoft Entra-Administrator pro MySQL-Server erstellen. Wenn Sie einen anderen Administrator auswählen, wird der vorhandene Microsoft Entra Administrator überschrieben, der für den Server konfiguriert ist.

2) Konfigurieren der Azure-Datenbank für MySQL für die lokale Entwicklung

2.1) Konfigurieren einer Firewallregel für lokale IP

Azure Database for MySQL-Instanzen sind standardmäßig abgesichert. Sie verfügen über eine Firewall, die keine eingehende Verbindung zulässt.

Sie können diesen Schritt überspringen, wenn Sie Bash verwenden, da der flexible-server create Befehl ihre lokale IP-Adresse bereits erkannt und auf MySQL-Server festgelegt hat.

Wenn Sie eine Verbindung mit Ihrem MySQL-Server über das Windows-Subsystem für Linux (WSL) auf einem Windows-Computer herstellen, müssen Sie der Firewall die WSL-Host-ID hinzufügen. Rufen Sie die IP-Adresse Ihres Hostcomputers ab, indem Sie den folgenden Befehl in WSL ausführen:

cat /etc/resolv.conf

Kopieren Sie die IP-Adresse nach dem Ausdruck nameserver, und verwenden Sie dann den folgenden Befehl, um eine Umgebungsvariable für die WSL-IP-Adresse festzulegen:

export AZ_WSL_IP_ADDRESS=<the-copied-IP-address>

Verwenden Sie dann den folgenden Befehl, um die Firewall des Servers für Ihre WSL-basierte App zu öffnen:

az mysql server firewall-rule create \
    --resource-group $AZ_RESOURCE_GROUP \
    --name $AZ_DATABASE_SERVER_NAME-database-allow-local-ip-wsl \
    --server $AZ_DATABASE_SERVER_NAME \
    --start-ip-address $AZ_WSL_IP_ADDRESS \
    --end-ip-address $AZ_WSL_IP_ADDRESS \
    --output tsv

2.2) Erstellen eines MySQL-Nicht-Administratorbenutzers und Erteilen von Berechtigungen

Erstellen Sie als Nächstes einen Nichtadministrator-Microsoft Entra-Benutzer, und erteilen Sie ihm alle Berechtigungen für die $AZ_DATABASE_NAME Datenbank. Sie können den Datenbanknamen $AZ_DATABASE_NAME entsprechend Ihren Anforderungen ändern.

Erstellen Sie ein SQL-Skript mit dem Namen create_ad_user.sql zum Erstellen eines Nicht-Administratorbenutzers. Fügen Sie den folgenden Inhalt hinzu, und speichern Sie ihn lokal:

export AZ_MYSQL_AD_NON_ADMIN_USERID=$(az ad signed-in-user show --query id --output tsv)

cat << EOF > create_ad_user.sql
SET aad_auth_validate_oids_in_tenant = OFF;
CREATE AADUSER '$AZ_MYSQL_AD_NON_ADMIN_USERNAME' IDENTIFIED BY '$AZ_MYSQL_AD_NON_ADMIN_USERID';
GRANT ALL PRIVILEGES ON $AZ_DATABASE_NAME.* TO '$AZ_MYSQL_AD_NON_ADMIN_USERNAME'@'%';
FLUSH privileges;
EOF

Verwenden Sie dann den folgenden Befehl, um das SQL-Skript auszuführen und den Microsoft Entra Nicht-Administratorbenutzer zu erstellen:

mysql -h $AZ_DATABASE_SERVER_NAME.mysql.database.azure.com --user $CURRENT_USERNAME --enable-cleartext-plugin --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) < create_ad_user.sql

Verwenden Sie nun den folgenden Befehl, um die temporäre SQL-Skriptdatei zu entfernen:

rm create_ad_user.sql

Hinweis

Weitere Informationen zum Erstellen von MySQL-Benutzern finden Sie unter Erstellen von Benutzern in Azure Database for MySQL.

3) Melden Sie sich an, und migrieren Sie den App-Code, um kennwortlose Verbindungen zu verwenden.

Stellen Sie für die lokale Entwicklung sicher, dass Sie mit demselben Microsoft Entra Konto authentifiziert sind, dem Sie die Rolle in Ihrer MySQL zugewiesen haben. Authentifizieren Sie sich über die Azure CLI, Visual Studio, Azure PowerShell oder andere Tools wie IntelliJ.

Melden Sie sich mit dem folgenden Befehl bei Azure über die Azure CLI an:

az login

Führen Sie als Nächstes die folgenden Schritte aus, um Ihren Code so zu aktualisieren, dass kennwortlose Verbindungen verwendet werden. Obwohl konzeptionell ähnlich, verwendet jede Sprache unterschiedliche Implementierungsdetails.

  1. Fügen Sie in Ihrem Projekt den folgenden Verweis auf das azure-identity-extensions Paket hinzu. Diese Bibliothek enthält alle Entitäten, die zum Implementieren kennwortloser Verbindungen erforderlich sind.

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity-extensions</artifactId>
        <version>1.0.0</version>
    </dependency>
    
  2. Aktivieren Sie das Azure-MySQL-Authentifizierungsplugin in der JDBC-URL. Identifizieren Sie die Stellen in Ihrem Code, die derzeit ein java.sql.Connection verwenden, um eine Verbindung mit Azure Database for MySQL herzustellen. Aktualisieren Sie url und user in Ihrer Datei application.properties so, dass sie den folgenden Werten entsprechen:

    url=jdbc:mysql://$AZ_DATABASE_SERVER_NAME.mysql.database.azure.com:3306/$AZ_DATABASE_NAME?serverTimezone=UTC&sslMode=REQUIRED&defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin
    user=$AZ_MYSQL_AD_NON_ADMIN_USERNAME
    

    Hinweis

    Wenn Sie die MysqlConnectionPoolDataSource Klasse als Datenquelle in Ihrer Anwendung verwenden, entfernen Sie defaultAuthenticationPlugin=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin sie aus der URL.

    url=jdbc:mysql://$AZ_DATABASE_SERVER_NAME.mysql.database.azure.com:3306/$AZ_DATABASE_NAME?serverTimezone=UTC&sslMode=REQUIRED&authenticationPlugins=com.azure.identity.extensions.jdbc.mysql.AzureMysqlAuthenticationPlugin
    user=$AZ_MYSQL_AD_NON_ADMIN_USERNAME
    
  3. Ersetzen Sie die $AZ_DATABASE_SERVER_NAME, $AZ_DATABASE_NAMEund $AZ_MYSQL_AD_NON_ADMIN_USERNAME Variablen durch die Werte, die Sie am Anfang dieses Artikels konfiguriert haben.

  4. Entfernen Sie password aus der JDBC-URL.

Lokales Ausführen der App

Nachdem Sie diese Codeänderungen vorgenommen haben, führen Sie Ihre Anwendung lokal aus. Die neue Konfiguration nimmt Ihre lokalen Anmeldeinformationen auf, wenn Sie bei einer kompatiblen IDE oder einem Befehlszeilentool wie dem Azure CLI, Visual Studio oder IntelliJ angemeldet sind. Die Rollen, die Sie Ihrem lokalen Entwicklerbenutzer zugewiesen haben, in Azure es Ihrer App ermöglichen, eine lokale Verbindung mit dem Azure Dienst herzustellen.

4) Konfigurieren der Azure-Hostingumgebung

Nachdem Sie Ihre Anwendung so konfiguriert haben, dass kennwortlose Verbindungen verwendet und lokal ausgeführt werden, kann sich derselbe Code bei Azure Diensten authentifizieren, nachdem Sie sie für Azure bereitgestellt haben. Beispielsweise kann eine Anwendung, die in einer Azure App Service-Instanz bereitgestellt wird, die über eine verwaltete Identität verfügt, eine Verbindung mit Azure Storage herstellen.

In diesem Abschnitt führen Sie zwei Schritte aus, um ihrer Anwendung die Ausführung in einer Azure Hostingumgebung auf kennwortlose Weise zu ermöglichen:

  • Weisen Sie die verwaltete Identität für Ihre Azure-Hostingumgebung zu.
  • Weisen Sie der verwalteten Identität Rollen zu.

Hinweis

Azure stellt auch Service Connector bereit, der Ihnen dabei helfen kann, Ihren Hostingdienst mit PostgreSQL zu verbinden. Wenn Sie Service Connector zum Konfigurieren Ihrer Hostingumgebung verwenden, können Sie den Schritt zum Zuweisen von Rollen zu Ihrer verwalteten Identität weglassen, da Service Connector sie ihnen zuweist. Im folgenden Abschnitt wird beschrieben, wie Sie Ihre Azure-Hostingumgebung auf zwei Arten konfigurieren: eine über Service Connector und die andere, indem Sie jede Hostingumgebung direkt konfigurieren.

Von Bedeutung

Die Befehle von Service Connector erfordern Azure CLI 2.41.0 oder höher.

Zuweisen der verwalteten Identität mithilfe des Azure-Portals

Die folgenden Schritte zeigen, wie Sie eine vom System zugewiesene verwaltete Identität für verschiedene Webhostingdienste zuweisen. Die verwaltete Identität kann mithilfe der zuvor eingerichteten App-Konfigurationen sicher eine Verbindung mit anderen Azure Diensten herstellen.

  1. Wählen Sie auf der Hauptübersichtsseite Ihrer Azure App Service-Instanz im Navigationsbereich "Identität" aus.

  2. Stellen Sie auf der Registerkarte "System zugewiesen " sicher, dass das Feld "Status " aktiviert ist. Eine vom System zugewiesene Identität wird von Azure intern verwaltet und verwaltet Administrative Aufgaben für Sie. Die Details und Kennungen der Identität werden in Ihrem Code niemals offengelegt.

Sie können auch eine verwaltete Identität in einer Azure Hostingumgebung zuweisen, indem Sie die Azure CLI verwenden.

Sie können einer Azure App Service-Instanz eine verwaltete Identität mit dem Befehl "az webapp identity assign" zuweisen , wie im folgenden Beispiel gezeigt:

export AZ_MI_OBJECT_ID=$(az webapp identity assign \
    --resource-group $AZ_RESOURCE_GROUP \
    --name <service-instance-name> \
    --query principalId \
    --output tsv)

Rollen der verwalteten Identität zuweisen

Erteilen Sie als Nächstes Berechtigungen für die verwaltete Identität, die Sie für den Zugriff auf Ihre MySQL-Instanz zugewiesen haben.

Mit diesen Schritten wird ein Microsoft-Entra-Benutzer für die verwaltete Identität erstellt und diesem alle Berechtigungen für die Datenbank $AZ_DATABASE_NAME erteilt. Sie können den Datenbanknamen $AZ_DATABASE_NAME entsprechend Ihren Anforderungen ändern.

Erstellen Sie zunächst ein SQL-Skript mit dem Namen create_ad_user.sql zum Erstellen eines Nicht-Administratorbenutzers. Fügen Sie den folgenden Inhalt hinzu, und speichern Sie ihn lokal:

export AZ_MYSQL_AD_MI_USERID=$(az ad sp show --id $AZ_MI_OBJECT_ID --query appId --output tsv)

cat << EOF > create_ad_user.sql
SET aad_auth_validate_oids_in_tenant = OFF;
CREATE AADUSER '$AZ_MYSQL_AD_MI_USERNAME' IDENTIFIED BY '$AZ_MYSQL_AD_MI_USERID';
GRANT ALL PRIVILEGES ON $AZ_DATABASE_NAME.* TO '$AZ_MYSQL_AD_MI_USERNAME'@'%';
FLUSH privileges;
EOF

Verwenden Sie dann den folgenden Befehl, um das SQL-Skript auszuführen und den Microsoft Entra Nicht-Administratorbenutzer zu erstellen:

mysql -h $AZ_DATABASE_SERVER_NAME.mysql.database.azure.com --user $CURRENT_USERNAME --enable-cleartext-plugin --password=$(az account get-access-token --resource-type oss-rdbms --output tsv --query accessToken) < create_ad_user.sql

Verwenden Sie nun den folgenden Befehl, um die temporäre SQL-Skriptdatei zu entfernen:

rm create_ad_user.sql

Testen der App

Bevor Sie die App in der Hostingumgebung bereitstellen, müssen Sie eine weitere Änderung am Code vornehmen, da die Anwendung eine Verbindung mit MySQL herstellt, indem Sie den Benutzer verwenden, den Sie für die verwaltete Identität erstellt haben.

Aktualisieren Sie Ihren Code so, dass der für die verwaltete Identität erstellte Benutzer verwendet wird:

properties.put("user", "$AZ_MYSQL_AD_MI_USERNAME");

Nachdem Sie diese Codeänderungen vorgenommen haben, können Sie die Anwendung erstellen und erneut bereitstellen. Navigieren Sie dann im Browser zu Ihrer gehosteten Anwendung. Ihre App sollte erfolgreich eine Verbindung mit der MySQL-Datenbank herstellen können. Es kann mehrere Minuten dauern, bis die Rollenzuweisungen über Ihre Azure Umgebung verteilt werden. Ihre Anwendung ist jetzt so konfiguriert, dass sie sowohl lokal als auch in einer Produktionsumgebung ausgeführt wird, ohne dass entwickler geheime Schlüssel in der Anwendung selbst verwalten müssen.

Nächste Schritte

In diesem Lernprogramm haben Sie gelernt, wie Sie eine Anwendung zu kennwortlosen Verbindungen migrieren.

Weitere Informationen zu den in diesem Artikel erläuterten Konzepten finden Sie in den folgenden Ressourcen: