Konfigurera lösenordslösa databasanslutningar för Java-appar på Oracle WebLogic Server
Den här artikeln visar hur du konfigurerar lösenordslösa databasanslutningar för Java-appar på Oracle WebLogic Server-erbjudanden med Azure Portal.
I den här guiden utför du följande uppgifter:
- Etablera databasresurser med Hjälp av Azure CLI.
- Aktivera Microsoft Entra-administratören i databasen.
- Etablera en användartilldelad hanterad identitet och skapa en databasanvändare för den.
- Konfigurera en lösenordslös databasanslutning i Oracle WebLogic-erbjudanden med Azure Portal.
- Verifiera databasanslutningen.
Erbjudandena stöder lösenordslösa anslutningar för PostgreSQL-, MySQL- och Azure SQL-databaser.
Förutsättningar
En Azure-prenumeration. Om du inte har en Azure-prenumeration kan du skapa ettkostnadsfritt konto innan du börjar.
Använd Azure Cloud Shell med hjälp av Bash-miljön. Kontrollera att Azure CLI-versionen är 2.43.0 eller senare.
Om du vill kan du installera Azure CLI 2.43.0 eller senare för att köra Azure CLI-kommandon.
- Om du använder en lokal installation loggar du in med Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Se Logga in med Azure CLI för andra inloggningsalternativ.
- När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.
- Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Kontrollera att den Azure-identitet som du använder för att logga in och slutföra den här artikeln har rollen Ägare i den aktuella prenumerationen eller rollen Deltagare och Administratör för användaråtkomst i den aktuella prenumerationen. En översikt över Azure-roller finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)? Mer information om de specifika roller som krävs av Oracle WebLogic Marketplace-erbjudandet finns i Inbyggda Roller i Azure.
Skapa en resursgrupp
Skapa en resursgrupp med az group create. Eftersom resursgrupper måste vara unika i en prenumeration väljer du ett unikt namn. Ett enkelt sätt att få unika namn är att använda en kombination av dina initialer, dagens datum och någon identifierare. Till exempel abc1228rg. I det här exemplet skapas en resursgrupp med namnet abc1228rg
på platsen eastus
:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Skapa en databasserver och en databas
Skapa en flexibel server med kommandot az mysql flexible-server create . Det här exemplet skapar en flexibel server med namnet mysql20221201
med administratörsanvändare azureuser
och administratörslösenord Secret123456
. Ersätt lösenordet med ditt. Mer information finns i Skapa en flexibel Azure Database for MySQL-server med 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
Skapa en databas med 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
När kommandot har slutförts bör du se utdata som liknar följande exempel:
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"
}
Konfigurera en Microsoft Entra-administratör för din databas
Nu när du har skapat databasen måste du göra den redo att stödja lösenordslösa anslutningar. En lösenordslös anslutning kräver en kombination av hanterade identiteter för Azure-resurser och Microsoft Entra-autentisering. En översikt över hanterade identiteter för Azure-resurser finns i Vad är hanterade identiteter för Azure-resurser?
Information om hur MySQL – flexibel server interagerar med hanterade identiteter finns i Använda Microsoft Entra-ID för autentisering med MySQL.
I följande exempel konfigureras den aktuella Azure CLI-användaren som ett Microsoft Entra-administratörskonto. För att aktivera Azure-autentisering är det nödvändigt att tilldela en identitet till MySQL – flexibel server.
Skapa först en hanterad identitet med az identity create och tilldela identiteten till MySQL-servern med 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
Ange sedan den aktuella Azure CLI-användaren som Microsoft Entra-administratörskonto med az mysql flexible-server ad-admin create.
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
Skapa en användartilldelad hanterad identitet
I Azure CLI skapar du sedan en identitet i din prenumeration med hjälp av kommandot az identity create . Du använder den här hanterade identiteten för att ansluta till databasen.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Om du vill konfigurera identiteten i följande steg använder du kommandot az identity show för att lagra identitetens klient-ID i en gränssnittsvariabel.
# 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)
Skapa en databasanvändare för din hanterade identitet
Anslut nu som Microsoft Entra-administratörsanvändare till din MySQL-databas och skapa en MySQL-användare för din hanterade identitet.
Först måste du skapa en brandväggsregel för att få åtkomst till MySQL-servern från CLI-klienten. Kör följande kommandon för att hämta din aktuella IP-adress.
export MY_IP=$(curl http://whatismyip.akamai.com)
Om du arbetar med Windows-undersystem för Linux (WSL) med VPN aktiverat kan följande kommando returnera en felaktig IPv4-adress. Ett sätt att få din IPv4-adress är genom att besöka whatismyipaddress.com. I vilket fall som helst anger du miljövariabeln MY_IP
som den IPv4-adress som du vill ansluta till databasen från.
Skapa en tillfällig brandväggsregel med 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}
Förbered sedan en .sql-fil för att skapa en databasanvändare för den hanterade identiteten. Följande exempel lägger till en användare med inloggningsnamn identity-contoso
och ger användaren behörighet att komma åt databasen contoso
.
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
Kör filen .sql med kommandot az mysql flexible-server execute. Du kan hämta din åtkomsttoken med kommandot az account get-access-token.
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"
Du kan uppmanas att installera rdbms-connect
tillägget enligt följande utdata. Tryck y
för att fortsätta. Om du inte arbetar med root
användaren måste du ange användarlösenordet.
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:
Om .sql filen körs korrekt hittar du utdata som liknar följande exempel:
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
Den hanterade identiteten myManagedIdentity
har nu åtkomst till databasen när du autentiserar med användarnamnet identity-contoso
.
Om du inte längre vill komma åt servern från den här IP-adressen kan du ta bort brandväggsregeln med hjälp av följande kommando.
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Använd slutligen följande kommando för att hämta anslutningssträng som du använder i nästa avsnitt.
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Konfigurera en lösenordslös databasanslutning för Oracle WebLogic Server på virtuella Azure-datorer
Det här avsnittet visar hur du konfigurerar den lösenordslösa datakällanslutningen med hjälp av Azure Marketplace-erbjudandena för Oracle WebLogic Server.
Börja med att distribuera ett erbjudande. Följande erbjudanden stöder lösenordslösa databasanslutningar:
- Oracle WebLogic Server på Azure Kubernetes Service (AKS)
- Oracle WebLogic Server-kluster på virtuella datorer
- Oracle WebLogic Server med administratörsserver på virtuella datorer
- Dynamiskt Oracle WebLogic Server-kluster på virtuella datorer
Fyll i nödvändig information i fönstret Grundläggande och andra fönster om du vill aktivera funktionerna. När du kommer till fönstret Databas fyller du i den lösenordslösa konfigurationen enligt följande steg.
- Välj Ja för Anslut till databas?.
- Under Anslutningsinställningar går du till Välj databastyp, öppnar den nedrullningsbara menyn och väljer sedan MySQL (med stöd för lösenordslös anslutning).
- För JNDI-namn, testpasswordless-indata eller ditt förväntade värde.
- För DataSource-anslutningssträng anger du anslutningssträng du fick i det sista avsnittet.
- För Databasanvändarnamn anger du databasanvändarnamnet för din hanterade identitet (värdet
${IDENTITY_LOGIN_NAME}
för ). I det här exemplet äridentity-contoso
värdet . - Välj Använd lösenordslös datakällaanslutning.
- För Användartilldelad hanterad identitet väljer du den hanterade identitet som du skapade tidigare. I det här exemplet är
myManagedIdentity
dess namn .
Avsnittet Anslutningsinställningar bör se ut som i följande skärmbild, som använder Oracle WebLogic Server Cluster på virtuella datorer som exempel.
Nu har du konfigurerat den lösenordslösa anslutningen. Du kan fortsätta att fylla i följande fönster eller välja Granska + skapa och sedan Skapa för att distribuera erbjudandet.
Verifiera databasanslutningen
Databasanslutningen har konfigurerats om erbjudandedistributionen slutförs utan fel.
Om du fortsätter att använda Oracle WebLogic Server Cluster på virtuella datorer som exempel följer du de här stegen i Azure Portal för att hitta url:en för administratörskonsolen.
- Leta reda på den resursgrupp där du distribuerade WLS.
- Under Inställningar väljer du Distributioner.
- Välj distributionen med den längsta varaktigheten. Den här distributionen bör finnas längst ned i listan.
- Välj Utdata.
- URL:en för WebLogic-administrationskonsolen är värdet för adminConsoleUrl-utdata .
- Kopiera värdet för utdatavariabeln
adminConsoleUrl
. - Klistra in värdet i webbläsarens adressfält och tryck på Retur för att öppna inloggningssidan i WebLogic-administrationskonsolen.
Använd följande steg för att verifiera databasanslutningen.
Logga in på WebLogic-administrationskonsolen med det användarnamn och lösenord som du angav i fönstret Grundläggande.
Under Domänstruktur väljer du Tjänster, Datakällor och sedan testpasswordless.
Välj fliken Övervakning, där datakällans tillstånd körs, enligt följande skärmbild.
Välj fliken Testning och välj sedan alternativknappen bredvid önskad server.
Välj Testa datakälla. Du bör se ett meddelande som anger ett lyckat test, som du ser i följande skärmbild.
Rensa resurser
Om du inte behöver dessa resurser kan du ta bort dem genom att utföra följande kommandon:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Nästa steg
Läs mer om att köra WLS på AKS eller virtuella datorer genom att följa dessa länkar: