Dela via


Konfigurera lösenordslösa databasanslutningar för Java-appar på Oracle WebLogic-servrar

Den här artikeln visar hur du konfigurerar lösenordslösa databasanslutningar för Java-appar på Oracle WebLogic Server-erbjudanden med Azure-portalen.

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-portalen.
  • Verifiera databasanslutningen.

Erbjudandena stöder lösenordslösa anslutningar för PostgreSQL-, MySQL- och Azure SQL-databaser.

Förutsättningar

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 podsistem za 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 niska veze 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:

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.

  1. Välj Ja för Anslut till databas?.
  2. 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).
  3. För JNDI-namn, testpasswordless-indata eller ditt förväntade värde.
  4. För DataSource-anslutningssträng anger du niska veze du fick i det sista avsnittet.
  5. 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 är identity-contosovärdet .
  6. Välj Använd lösenordslös datakällaanslutning.
  7. För Användartilldelad hanterad identitet väljer du den hanterade identitet som du skapade tidigare. I det här exemplet är myManagedIdentitydess 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.

Skärmbild av Azure-portalen som visar fönstret Konfigurera databas på sidan Skapa Oracle WebLogic Server på virtuella datorer.

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-portalen för att hitta url:en för administratörskonsolen.

  1. Leta reda på den resursgrupp där du distribuerade WLS.
  2. Under Inställningar väljer du Distributioner.
  3. Välj distributionen med den längsta varaktigheten. Den här distributionen bör finnas längst ned i listan.
  4. Välj Utdata.
  5. URL:en för WebLogic-administrationskonsolen är värdet för adminConsoleUrl-utdata .
  6. Kopiera värdet för utdatavariabeln adminConsoleUrl.
  7. 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.

  1. Logga in på WebLogic-administrationskonsolen med det användarnamn och lösenord som du angav i fönstret Grundläggande.

  2. Under Domänstruktur väljer du Tjänster, Datakällor och sedan testpasswordless.

  3. Välj fliken Övervakning, där datakällans tillstånd körs, enligt följande skärmbild.

  4. Välj fliken Testning och välj sedan alternativknappen bredvid önskad server.

  5. Välj Testa datakälla. Du bör se ett meddelande som anger ett lyckat test, som du ser i följande skärmbild.

    Skärmbild av WebLogic Console-portalen som visar ett lyckat test av datakällan.

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: