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 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 einer kennwortlosen Datenbankverbindung in Oracle WebLogic mit dem Azure-Portal.
- Überprüfen der Datenbankverbindung.
Die Angebote unterstützen kennwortlose Verbindungen für PostgreSQL-, MySQL- und Azure SQL-Datenbanken.
Voraussetzungen
Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
Verwenden Sie Azure Cloud Shell mit der Bash-Umgebung. Stellen Sie sicher, dass die Azure CLI Version 2.43.0 oder höher ist.
Wenn Sie möchten, können Sie die Azure CLI 2.43.0 oder höher installieren, um Azure CLI-Befehle auszuführen.
- Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
- Installieren Sie die Azure CLI-Erweiterungen bei der ersten Verwendung, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
- Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Stellen Sie sicher, dass die Azure-Identität, die Sie zum Anmelden und Durcharbeiten dieses Artikels verwenden, im aktuellen Abonnement entweder über die Rolle Besitzer oder über die Rollen Mitwirkender und Benutzerzugriffsadministrator 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.
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 mit dem Namen abc1228rg
am Standort eastus
erstellt:
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 dem Namen mysql20221201
mit dem Administratorbenutzer azureuser
und dem Administratorkennwort Secret123456
erstellt. Ersetzen Sie das Kennwort durch Ihr eigenes. Weitere Informationen finden Sie unter Schnellstart: Verwenden einer Azure Database for 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 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 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 Administrators 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 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, und weisen Sie die Identität dem MySQL-Server mit az mysql flexible-server identity assign 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 als Nächstes in Azure CLI eine Identität in Ihrem Abonnement, indem Sie den Befehl az identity create verwenden. 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
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 auf dem Windows Subsystem for Linux (WSL) mit aktiviertem VPN arbeiten, 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 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 dem Befehl 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 dann eine .sql-Datei vor, um einen Datenbankbenutzer für die verwaltete Identität zu erstellen. Im folgenden Beispiel wird ein Benutzer mit dem Anmeldenamen identity-contoso
hinzugefügt und dem Benutzer 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 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-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 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 Angebot werden kennwortlose Datenbankverbindungen unterstützt:
- Oracle WebLogic Server auf Azure Kubernetes Service (AKS)
- Oracle WebLogic Server-Cluster auf VMs
- Oracle WebLogic Server mit Verwaltungsserver auf VMs
- Dynamischer Oracle WebLogic Server-Cluster auf VMs
Füllen Sie die erforderlichen Informationen im Abschnitt Grundlagen und anderen Bereichen aus, wenn Sie die Features aktivieren möchten. Wenn Sie den Bereich Datenbank erreiche, füllen Sie die kennwortlose Konfiguration wie in den folgenden Schritten dargestellt aus.
- Wählen Sie unter Mit Datenbank verbinden? die Option Ja aus.
- Öffnen Sie unter Verbindungseinstellungen für Datenbanktyp auswählen das Dropdownmenü, und wählen Sie dann MySQL (mit Unterstützung für die kennwortlose Verbindung) aus.
- Geben Sie für JNDI-Name testpasswordless oder Ihren erwarteten Wert ein.
- Geben Sie für DataSource-Verbindungszeichenfolge die Verbindungszeichenfolge ein, die Sie im letzten Abschnitt erhalten haben.
- Geben Sie für Datenbankbenutzername den Datenbankbenutzernamen für Ihre verwaltete Identität (den Wert von
${IDENTITY_LOGIN_NAME}
) ein. In diesem Beispiel lautet der Wertidentity-contoso
. - Wählen Sie Kennwortlose Datenquellenverbindung verwenden aus.
- Wählen Sie für Vom Benutzer zugewiesene verwaltete Identität die verwaltete Identität aus, die Sie zuvor erstellt haben. In diesem Beispiel lautet ihr Name
myManagedIdentity
.
Der Abschnitt Verbindungseinstellungen sollte wie der folgende Screenshot aussehen, der Oracle WebLogic Server-Cluster auf VMs als Beispiel verwendet.
Sie haben nun die Konfiguration der kennwortlosen Verbindung abgeschlossen. Sie können das Ausfüllen der folgenden Bereiche fortsetzen 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.
Betrachten Sie Oracle WebLogic Server-Cluster auf VMs nach Abschluss der Bereitstellung weiterhin als Beispiel. Befolgen Sie diese Schritte im Azure-Portal, um die Administratorkonsolen-URL zu finden.
- Suchen Sie die Ressourcengruppe, in der Sie WLS bereitgestellt haben.
- Wählen Sie unter Einstellungen die Option Bereitstellungen aus.
- Wählen Sie die Bereitstellung mit der längsten Dauer aus. Diese Bereitstellung sollte am Ende der Liste stehen.
- Klicken Sie auf Ausgaben.
- Die URL der WebLogic Administration Console ist der Wert der adminConsoleUrl-Ausgabe.
- Kopieren Sie den Wert der Ausgabevariable
adminConsoleUrl
. - Fügen Sie den Wert in die Adressleiste des Browsers ein, und drücken Sie die Eingabetaste, um die Anmeldeseite der WebLogic Administration Console zu öffnen.
Gehen Sie wie folgt vor, um die Datenbankverbindung zu überprüfen.
Melden Sie sich bei der WebLogic Administration Console mit dem Benutzernamen und dem Kennwort an, das Sie im Bereich Grundlagen angegeben haben.
Wählen Sie unter der Domänenstruktur die Optionen Services, Datenquellen und dann testpasswordless aus.
Wählen Sie die Registerkarte Überwachung aus, auf der der Status der Datenquelle Wird ausgeführt lautet, wie im folgenden Screenshot angezeigt.
Wählen Sie die Registerkarte Testen und dann das Optionsfeld neben dem gewünschten Server aus.
Wählen Sie Datenquelle testen aus. Ihnen sollte eine Nachricht angezeigt werden, die auf einen erfolgreichen Test hinweist, wie im folgenden Screenshot dargestellt.
Bereinigen von Ressourcen
Wenn Sie diese Ressourcen nicht mehr 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: