Share via


Konfigurieren kennwortloser Datenbankverbindungen für Java-Apps auf Oracle WebLogic Server-Instanzen

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

In diesem Leitfaden führen Sie die folgenden Aufgaben aus:

  • Bereitstellen von Datenbankressourcen mithilfe der Azure CLI.
  • Aktivieren Sie den Microsoft Entra-Administrator in der Datenbank.
  • Stellen Sie eine vom Benutzer zugewiesene verwaltete Identität bereit, und erstellen Sie einen Datenbankbenutzer dafür.
  • Konfigurieren Sie eine kennwortlose Datenbankverbindung in Oracle WebLogic mit dem Azure-Portal.
  • Überprüfen Sie die Datenbankverbindung.

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

Voraussetzungen

Erstellen einer Ressourcengruppe

Erstellen Sie mit az group create eine Ressourcengruppe. Da Ressourcengruppen innerhalb eines Abonnements eindeutig sein müssen, wählen Sie einen eindeutigen Namen aus. Eine einfache Möglichkeit, eindeutige Namen zu haben, besteht darin, eine Kombination aus Ihren Initialen, dem heutigen Datum und einer Kennung zu verwenden. Beispiel: abc1228rg. In diesem Beispiel wird eine Ressourcengruppe erstellt, die eastus am Speicherort benannt istabc1228rg:

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

Erstellen eines Datenbankservers und einer Datenbank

Erstellen Sie mithilfe des Befehls az mysql flexible-server create einen flexiblen Server. In diesem Beispiel wird ein flexibler Server mit mysql20221201 Administratorbenutzer azureuser - und Administratorkennwort Secret123456erstellt. Ersetzen Sie das Kennwort durch Ihre. Weitere Informationen finden Sie unter Erstellen einer Azure-Datenbank für MySQL Flexible Server mit 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 eastus \
    --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 ist, sollte die 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-Administrators für Ihre Datenbank

Nachdem Sie die Datenbank erstellt haben, müssen Sie sie bereit machen, 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 unter Verwenden der Microsoft Entra-ID für die Authentifizierung mit 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 and assign the identity to MySQL server with az mysql flexible-server identity assign.

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 fest, und erstellen Sie az mysql flexible-server ad-admin.

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 als Nächstes in Azure CLI mithilfe des Befehls "az identity create " eine Identität in Ihrem Abonnement. 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 Shellvariable 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

Stellen Sie nun eine Verbindung als Microsoft Entra-Administratorbenutzer mit Ihrer MySQL-Datenbank her, und erstellen Sie einen MySQL-Benutzer für Ihre verwaltete Identität.

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

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

Wenn Sie an Windows-Subsystem für Linux (WSL) mit aktivierter VPN-Funktion arbeiten, gibt der folgende Befehl möglicherweise eine falsche IPv4-Adresse zurück. Eine Möglichkeit zum Abrufen Ihrer IPv4-Adresse ist der Besuch von whatismyipaddress.com. Legen Sie in jedem Fall die Umgebungsvariable MY_IP als IPv4-Adresse fest, aus der Sie eine Verbindung mit der Datenbank herstellen möchten.

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

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 dann eine .sql Datei vor, um einen Datenbankbenutzer für die verwaltete Identität zu erstellen. Im folgenden Beispiel wird ein Benutzer mit Anmeldenamen identity-contoso hinzugefügt und dem Benutzer Berechtigungen für den Zugriff auf die Datenbank contosogewä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 gezeigt. Drücken Sie y , 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, finden Sie die Ausgabe, die dem folgenden Beispiel ähnelt:

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-contosoauthentifiziert 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 Oracle WebLogic Server auf Azure-VMs

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

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

Füllen Sie die erforderlichen Informationen im Bereich "Grundlagen " und anderen Bereichen aus, wenn Sie die Features aktivieren möchten. Wenn Sie den Datenbankbereich erreichen, füllen Sie die kennwortlose Konfiguration aus, wie in den folgenden Schritten gezeigt.

  1. Wählen Sie "Ja" aus, um Verbinden zur Datenbank zu verwenden.
  2. Öffnen Sie unter Verbinden ion-Einstellungen für "Datenbanktyp auswählen" das Dropdownmenü, und wählen Sie dann MySQL (mit Unterstützung für kennwortlose Verbindung) aus.
  3. Für JNDI-Name geben Sie testpasswordless oder den erwarteten Wert ein.
  4. Geben Sie für DataSource-Verbinden ion-Zeichenfolge die Verbindungszeichenfolge ein, die Sie im letzten Abschnitt abgerufen haben.
  5. Geben Sie für den Datenbankbenutzernamen den Datenbankbenutzernamen Ihrer verwalteten Identität (den Wert von ${IDENTITY_LOGIN_NAME}) ein. In diesem Beispiel lautet der Wert identity-contoso.
  6. Wählen Sie "Kennwortlose Datenquellenverbindung verwenden" aus.
  7. Wählen Sie für vom Benutzer zugewiesene verwaltete Identität die zuvor erstellte verwaltete Identität aus. In diesem Beispiel lautet myManagedIdentityder Name .

Der Abschnitt Verbinden ion-Einstellungen sollte wie der folgende Screenshot aussehen, der Oracle WebLogic Server Cluster auf VMs als Beispiel verwendet.

Screenshot der Azure-Portal mit dem Bereich

Sie haben nun die Konfiguration der kennwortlosen Verbindung abgeschlossen. Sie können weiterhin die folgenden Bereiche ausfüllen oder "Überprüfen+ erstellen" und dann "Erstellen" auswählen, um das Angebot bereitzustellen.

Überprüfen der Datenbankverbindung

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

Führen Sie nach Abschluss der Bereitstellung weiterhin Oracle WebLogic Server Cluster auf VMs aus, und führen Sie die folgenden Schritte im Azure-Portal aus, um die Administratorkonsolen-URL zu finden.

  1. Suchen Sie die Ressourcengruppe, in der Sie WLS 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. Klicken Sie auf Ausgaben.
  5. Die URL der WebLogic-Verwaltungskonsole ist der Wert der adminConsoleUrl-Ausgabe .
  6. Kopieren Sie den Wert der Ausgabevariablen adminConsoleUrl.
  7. Fügen Sie den Wert in die Adressleiste des Browsers ein, und drücken Sie die EINGABETASTE , um die Anmeldeseite der WebLogic-Verwaltungskonsole zu öffnen.

Führen Sie die folgenden Schritte aus, um die Datenbankverbindung zu überprüfen.

  1. Melden Sie sich mit dem Benutzernamen und kennwort, den Sie im Bereich "Grundlagen " angegeben haben, bei der WebLogic-Verwaltungskonsole an.

  2. Wählen Sie unter "Do Standard Structure" die Option "Dienste", "Datenquellen" und dann "Testpasswordless" aus.

  3. Wählen Sie die Registerkarte "Überwachung" aus, auf der der Status der Datenquelle ausgeführt wird, wie im folgenden Screenshot gezeigt.

  4. Wählen Sie die Registerkarte "Testen " und dann das Optionsfeld neben dem gewünschten Server aus.

  5. Wählen Sie Datenquelle testen aus. Es sollte eine Meldung angezeigt werden, die einen erfolgreichen Test angibt, wie im folgenden Screenshot gezeigt.

    Screenshot des WebLogic Console-Portals mit einem erfolgreichen Test der Datenquelle.

Bereinigen von Ressourcen

Wenn Sie diese Ressourcen nicht benötigen, können Sie sie löschen, indem Sie die folgenden Befehle ausführen:

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 WLS in AKS oder auf virtuellen Computern finden Sie unter folgenden Links: