Teilen über


Konfigurieren von kennwortlosen Datenbankverbindungen für Java-Apps auf IBM WebSphere Application Server

In diesem Artikel erfahren Sie, wie Sie kennwortlose Datenbankverbindungen für Java-Apps auf IBM WebSphere Application Server mit dem Azure-Portal konfigurieren.

In dieser Anleitung führen Sie die folgenden Aufgaben durch:

  • Bereitstellen von Datenbankressourcen mit Azure CLI.
  • Aktivieren des Microsoft Entra-Administrators in der Datenbank.
  • Bereitstellen einer vom Benutzer zugewiesenen verwalteten Identität und Erstellen eines Datenbankbenutzers für diese Identität.
  • Konfigurieren Sie eine passwortlose Datenbankverbindung im IBM WebSphere Application Server über das Azure-Portal.
  • Überprüfen der Datenbankverbindung.

Die Angebote unterstützen kennwortlose Verbindungen für PostgreSQL-, MySQL- und Azure SQL-Datenbanken.

Voraussetzungen

Auswählen einer Region für die Bereitstellung

Wählen Sie eine Region aus, in der SKUs für die gewünschte Datenbank verfügbar sind. Der folgende Azure CLI-Befehl listet die verfügbaren SKUs in einer bestimmten Region auf. Versuchen Sie weiterhin unterschiedliche Regionen, bis Sie eins gefunden haben, das einige Ergebnisse enthält.

az mysql flexible-server list-skus --location "$REGION" --output table

Erstellen einer Ressourcengruppe

Erstellen Sie eine Ressourcengruppe mit az group create. Da Ressourcengruppen innerhalb eines Abonnements eindeutig sein müssen, wählen Sie einen eindeutigen Namen aus. Eine einfache Möglichkeit, eindeutige Namen zu erhalten, besteht darin, eine Kombination aus Ihren Initialen, dem heutigen Datum und einem Bezeichner zu verwenden, z. B. abc1228rg. Bei diesem Beispiel wird eine Ressourcengruppe mit dem Namen abc1228rg am Standort eastus erstellt.

export RESOURCE_GROUP_NAME="abc1228rg"
export REGION=eastus
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location ${REGION}

Erstellen eines Datenbankservers und einer Datenbank

Erstellen Sie mit dem Befehl az mysql flexible-server create einen flexiblen Server. In diesem Beispiel wird ein flexibler Server mit dem Namen mysql20221201 mit dem Administratorbenutzer azureuser und dem Administratorkennwort Secret123456 erstellt. Ersetzen Sie das Kennwort durch Ihr eigenes. Weitere Informationen finden Sie unter Erstellen einer Azure-Datenbank für MySQL Flexible Server mithilfe der Azure CLI.

export MYSQL_NAME="mysql20221201"
export MYSQL_ADMIN_USER="azureuser"
export MYSQL_ADMIN_PASSWORD="Secret123456"

az mysql flexible-server create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $MYSQL_NAME \
    --location ${REGION} \
    --admin-user $MYSQL_ADMIN_USER \
    --admin-password $MYSQL_ADMIN_PASSWORD \
    --public-access 0.0.0.0 \
    --tier Burstable \
    --sku-name Standard_B1ms

Erstellen Sie eine Datenbank mit az mysql flexible-server db create.

export DATABASE_NAME="contoso"

# create mysql database
az mysql flexible-server db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server-name $MYSQL_NAME \
    --database-name $DATABASE_NAME

Wenn der Befehl abgeschlossen wurde, sollte Ihnen eine Ausgabe ähnlich dem folgenden Beispiel angezeigt werden:

Creating database with utf8 charset and utf8_general_ci collation
{
  "charset": "utf8",
  "collation": "utf8_general_ci",
  "id": "/subscriptions/contoso-hashcode/resourceGroups/abc1228rg/providers/Microsoft.DBforMySQL/flexibleServers/mysql20221201/databases/contoso",
  "name": "contoso",
  "resourceGroup": "abc1228rg",
  "systemData": null,
  "type": "Microsoft.DBforMySQL/flexibleServers/databases"
}

Konfigurieren eines Microsoft Entra-Admins für Ihre Datenbank

Nachdem Sie die Datenbank erstellt haben, müssen Sie sie darauf vorbereiten, kennwortlose Verbindungen zu unterstützen. Für eine kennwortlose Verbindung ist eine Kombination aus verwalteten Identitäten für Azure-Ressourcen und die Microsoft Entra-Authentifizierung erforderlich. Eine Übersicht über verwaltete Identitäten für Azure-Ressourcen finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?

Informationen dazu, wie MySQL Flexible Server mit verwalteten Identitäten interagiert, finden Sie in der Dokumentation zu Azure Database for MySQL.

Im folgenden Beispiel wird der aktuelle Azure CLI-Benutzer als Microsoft Entra-Administratorkonto konfiguriert. Um die Azure-Authentifizierung zu aktivieren, ist es erforderlich, MySQL Flexible Server eine Identität zuzuweisen.

Erstellen Sie zunächst eine verwaltete Identität mit az identity create, und weisen Sie die Identität mit az mysql flexible-server identity assign dem MySQL-Server zu.

export MYSQL_UMI_NAME="id-mysql-aad-20221205"

# create a User Assigned Managed Identity for MySQL to be used for AAD authentication
az identity create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $MYSQL_UMI_NAME

## assign the identity to the MySQL server
az mysql flexible-server identity assign \
    --resource-group $RESOURCE_GROUP_NAME \
    --server-name $MYSQL_NAME \
    --identity $MYSQL_UMI_NAME

Legen Sie dann den aktuellen Azure CLI-Benutzer als Microsoft Entra-Administratorkonto mit az mysql flexible-server ad-admin create fest.

export CURRENT_USER=$(az account show --query user.name --output tsv)
export CURRENT_USER_OBJECTID=$(az ad signed-in-user show --query id --output tsv)

az mysql flexible-server ad-admin create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server-name $MYSQL_NAME \
    --object-id $CURRENT_USER_OBJECTID \
    --display-name $CURRENT_USER \
    --identity $MYSQL_UMI_NAME

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

Erstellen Sie in Azure CLI als Nächstes eine Identität in Ihrem Abonnement mithilfe des Befehls az identity create. Sie verwenden diese verwaltete Identität, um eine Verbindung mit Ihrer Datenbank herzustellen.

az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myManagedIdentity

Um die Identität in den folgenden Schritten zu konfigurieren, verwenden Sie den Befehl az identity show, um die Client-ID der Identität in einer Shell-Variablen zu speichern.

# Get client ID of the user-assigned identity
export CLIENT_ID=$(az identity show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myManagedIdentity \
    --query clientId \
    --output tsv)

Erstellen eines Datenbankbenutzers für Ihre verwaltete Identität

Zunächst müssen Sie eine Firewallregel erstellen, um von Ihrem CLI-Client auf den Datenbankserver zuzugreifen. Führen Sie die folgenden Befehle aus, um Ihre aktuelle IP-Adresse abzurufen:

export MY_IP=$(curl http://whatismyip.akamai.com)

Wenn Sie das Windows-Subsystem für Linux (WSL) mit aktiviertem VPN verwenden, gibt der folgende Befehl möglicherweise eine falsche IPv4-Adresse zurück. Eine Möglichkeit zum Abrufen Ihrer IPv4-Adresse besteht darin, whatismyipaddress.com aufzurufen. Legen Sie die Umgebungsvariable MY_IP als IPv4-Adresse fest, über die Sie eine Verbindung mit der Datenbank herstellen möchten. Sie konfigurieren die Datenbankfirewall mit dieser IP-Adresse später.

Stellen Sie als Microsoft Entra-Admin eine Verbindung mit Ihrer MySQL-Datenbank her, und erstellen Sie eine benutzende Person für MySQL für Ihre verwaltete Identität.

Erstellen Sie eine temporäre Firewallregel mit az mysql flexible-server firewall-rule create.

az mysql flexible-server firewall-rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $MYSQL_NAME \
    --rule-name AllowCurrentMachineToConnect \
    --start-ip-address ${MY_IP} \
    --end-ip-address ${MY_IP}

Bereiten Sie als Nächstes eine SQL-Datei vor, um Datenbankbenutzende für die verwaltete Identität zu erstellen. Im folgenden Beispiel wird eine benutzende Person mit dem Anmeldenamen identity-contoso hinzugefügt, und dieser Person werden Berechtigungen zum Zugriff auf die Datenbank contoso gewährt:

export IDENTITY_LOGIN_NAME="identity-contoso"

cat <<EOF >createuser.sql
SET aad_auth_validate_oids_in_tenant = OFF;
DROP USER IF EXISTS '${IDENTITY_LOGIN_NAME}'@'%';
CREATE AADUSER '${IDENTITY_LOGIN_NAME}' IDENTIFIED BY '${CLIENT_ID}';
GRANT ALL PRIVILEGES ON ${DATABASE_NAME}.* TO '${IDENTITY_LOGIN_NAME}'@'%';
FLUSH privileges;
EOF

Führen Sie die SQL-Datei mit dem Befehl az mysql flexible-server execute aus. Sie können Ihr Zugriffstoken mit dem Befehl az account get-access-token abrufen.

export RDBMS_ACCESS_TOKEN=$(az account get-access-token \
    --resource-type oss-rdbms \
    --query accessToken \
    --output tsv) 

az mysql flexible-server execute \
    --name ${MYSQL_NAME} \
    --admin-user ${CURRENT_USER} \
    --admin-password ${RDBMS_ACCESS_TOKEN} \
    --file-path "createuser.sql"

Möglicherweise werden Sie aufgefordert, die rdbms-connect-Erweiterung zu installieren, wie in der folgenden Ausgabe dargestellt. Drücken Sie und, um fortzufahren. Wenn Sie nicht mit dem root-Benutzer arbeiten, müssen Sie das Benutzerkennwort eingeben.

The command requires the extension rdbms-connect. Do you want to install it now? The command will continue to run after the extension is installed. (Y/n): y
Run 'az config set extension.use_dynamic_install=yes_without_prompt' to allow installing extensions without prompt.
This extension depends on gcc, libpq-dev, python3-dev and they will be installed first.
[sudo] password for user:

Wenn die SQL-Datei erfolgreich ausgeführt wird, ähnelt Ihre Ausgabe dem folgenden Beispiel:

Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201

Die verwaltete Identität myManagedIdentity hat jetzt Zugriff auf die Datenbank, wenn sie mit dem Benutzernamen identity-contoso authentifiziert wird.

Wenn Sie nicht mehr über diese IP-Adresse auf den Server zugreifen möchten, können Sie die Firewallregel mit dem folgenden Befehl entfernen:

az mysql flexible-server firewall-rule delete \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $MYSQL_NAME \
    --rule-name AllowCurrentMachineToConnect \
    --yes

Verwenden Sie schließlich den folgenden Befehl, um die Verbindungszeichenfolge abzurufen, die Sie im nächsten Abschnitt verwenden:

export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}

Konfigurieren einer kennwortlosen Datenbankverbindung für IBM WebSphere Application Server auf Azure-VMs

Bevor Sie fortfahren, stellen Sie sicher, dass die Azure-Identität, mit der Sie sich anmelden und diesen Artikel abschließen, entweder über die Rolle " Besitzer " im aktuellen Abonnement oder über die Rollen " Mitwirkender " und "Benutzerzugriffsadministrator " im aktuellen Abonnement verfügt. Eine Übersicht über Azure-Rollen finden Sie unter Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)? Ausführliche Informationen zu den für das Oracle WebLogic Marketplace-Angebot erforderlichen spezifischen Rollen finden Sie unter Integrierte Azure-Rollen.

In diesem Abschnitt erfahren Sie, wie Sie die kennwortlose Datenquellenverbindung mithilfe des Azure Marketplace-Angebotes für IBM WebSphere Application Server konfigurieren.

Beginnen Sie zunächst mit der Bereitstellung eines Angebots. Im folgenden Angebot werden kennwortlose Datenbankverbindungen unterstützt:

Geben Sie die erforderlichen Informationen im Abschnitt Grundlagen und anderen Bereichen ein, wenn Sie die Features aktivieren möchten. Wenn Sie den Bereich Datenbank erreichen, geben Sie die kennwortlose Konfiguration wie in den folgenden Schritten dargestellt ein:

  1. Wählen Sie unter Mit Datenbank verbinden? die Option Ja aus.
  2. Öffnen Sie unter Verbindungseinstellungen für Datenbanktyp auswählen das Dropdownmenü, und wählen Sie dann Azure SQL (mit Unterstützung für die kennwortlose Verbindung) aus.
  3. Geben Sie für den JNDI-Namen testpasswordless oder Ihren erwarteten Wert ein.
  4. Geben Sie für DataSource-Verbindungszeichenfolge die Verbindungszeichenfolge ein, die Sie im letzten Abschnitt erhalten haben.
  5. Wählen Sie Kennwortlose Datenquellenverbindung verwenden aus.
  6. Wählen Sie für Vom Benutzer zugewiesene verwaltete Identität die verwaltete Identität aus, die Sie im vorherigen Schritt erstellt haben. In diesem Beispiel lautet der Name myManagedIdentity.
  7. Wählen Sie Hinzufügen aus.

The Verbindungseinstellungen section should look like the following screenshot:

Screenshot des Azure-Portals mit der Seite

Überprüfen der Datenbankverbindung

Die Datenbankverbindung ist erfolgreich konfiguriert, wenn die Angebotbereitstellung ohne Fehler abgeschlossen wird.

Führen Sie nach Abschluss der Bereitstellung die folgenden Schritte im Azure-Portal aus, um die Administratorkonsolen-URL zu finden.

  1. Suchen Sie die Ressourcengruppe, in der Sie WebSphere bereitgestellt haben.
  2. Wählen Sie unter Einstellungen die Option Bereitstellungen aus.
  3. Wählen Sie die Bereitstellung mit der längsten Dauer aus. Diese Bereitstellung sollte am Ende der Liste stehen.
  4. Wählen Sie "Ausgaben" aus.
  5. Die URL der Integrierten Lösungskonsole ist der Wert der AdminSecuredConsole-Ausgabe .
  6. Kopieren Sie den Wert der Ausgabevariable adminSecuredConsole.
  7. Fügen Sie den Wert in die Adressleiste Ihres Browsers ein, und drücken Sie die EINGABETASTE , um die Anmeldeseite der Integrated Solutions Console zu öffnen.

Gehen Sie wie folgt vor, um die Datenbankverbindung zu überprüfen:

  1. Melden Sie sich mit dem Benutzernamen und kennwort, den Sie im Bereich " Grundlagen " angegeben haben, bei der Konsole für integrierte Lösungen an.
  2. Erweitern Sie im Navigationsbereich Ressourcen dann JDBC.
  3. Wählen Sie Datenquellen aus.
  4. Aktivieren Sie das Kontrollkästchen neben der Zeile mit dem JNDI-Namenswert , der dem Wert entspricht, den Sie auf der Registerkarte "Datenbank " eingegeben haben.
  5. Klicken Sie auf Verbindung testen.
  6. Es sollte eine Meldung angezeigt werden, die etwas Ähnliches wie The test connection operation for data source dataSource-sqlserver on server server1 at node was0aef4a-vmNode01 was successful. angibt.

Der folgende Screenshot hebt die relevanten Elemente der Benutzeroberfläche hervor:

Screenshot der Konsole

Bereinigen von Ressourcen

Wenn Sie diese Ressourcen nicht mehr benötigen, können Sie sie mithilfe der folgenden Befehle löschen:

az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>

Nächste Schritte

Weitere Informationen zum Ausführen von WebSphere Application Server auf AKS, Azure RedHat OpenShift oder virtuellen Computern finden Sie unter folgenden Links: