Delen via


Databaseverbindingen zonder wachtwoord configureren voor Java-apps op Oracle WebLogic-servers

In dit artikel leest u hoe u databaseverbindingen zonder wachtwoord configureert voor Java-apps in Oracle WebLogic Server met azure Portal.

In deze handleiding voert u de volgende taken uit:

  • Databasebronnen inrichten met behulp van Azure CLI.
  • Schakel de Microsoft Entra-beheerder in de database in.
  • Richt een door de gebruiker toegewezen beheerde identiteit in en maak er een databasegebruiker voor.
  • Configureer een databaseverbinding zonder wachtwoord in Oracle WebLogic-aanbiedingen met Azure Portal.
  • Valideer de databaseverbinding.

De aanbiedingen bieden ondersteuning voor verbindingen zonder wachtwoord voor PostgreSQL-, MySQL- en Azure SQL-databases.

Vereisten

Een brongroep maken

Maak een resourcegroep maken met az group create. Omdat resourcegroepen uniek moeten zijn binnen een abonnement, kiest u een unieke naam. Een eenvoudige manier om unieke namen te hebben, is door een combinatie van uw initialen, de datum van vandaag en een bepaalde id te gebruiken. Bijvoorbeeld abc1228rg. In dit voorbeeld wordt een resourcegroep gemaakt met de naam abc1228rg op de eastus locatie:

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

Een databaseserver en een database maken

Maak een flexibele server met de opdracht az mysql flexible-server create . In dit voorbeeld wordt een flexibele server gemaakt met de naam mysql20221201 admin user azureuser en admin password Secret123456. Vervang het wachtwoord door uw wachtwoord. Zie Een Azure Database for MySQL Flexible Server maken met behulp van Azure CLI voor meer informatie.

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

Maak een database met 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

Wanneer de opdracht is voltooid, ziet u uitvoer die vergelijkbaar is met het volgende voorbeeld:

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"
}

Een Microsoft Entra-beheerder configureren voor uw database

Nu u de database hebt gemaakt, moet u deze gereed maken om wachtwoordloze verbindingen te ondersteunen. Een verbinding zonder wachtwoord vereist een combinatie van beheerde identiteiten voor Azure-resources en Microsoft Entra-verificatie. Zie Wat zijn beheerde identiteiten voor Azure-resources voor een overzicht van beheerde identiteiten voor Azure-resources?

Zie Microsoft Entra-id gebruiken voor verificatie met MySQL met MySQL voor meer informatie over hoe MySQL Flexible Server communiceert met beheerde identiteiten.

In het volgende voorbeeld wordt de huidige Azure CLI-gebruiker geconfigureerd als een Microsoft Entra-beheerdersaccount. Als u Azure-verificatie wilt inschakelen, moet u een identiteit toewijzen aan MySQL Flexible Server.

Maak eerst een beheerde identiteit met az identity create en wijs de identiteit toe aan MySQL-server met 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

Stel vervolgens de huidige Azure CLI-gebruiker in als het Microsoft Entra-beheerdersaccount met 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

Een door de gebruiker toegewezen beheerde identiteit maken

Maak vervolgens in Azure CLI een identiteit in uw abonnement met behulp van de opdracht az identity create . U gebruikt deze beheerde identiteit om verbinding te maken met uw database.

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

Als u de identiteit in de volgende stappen wilt configureren, gebruikt u de opdracht az identity show om de client-id van de identiteit op te slaan in een shellvariabele.

# 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)

Een databasegebruiker maken voor uw beheerde identiteit

Maak nu verbinding als de Microsoft Entra-beheerdergebruiker met uw MySQL-database en maak een MySQL-gebruiker voor uw beheerde identiteit.

Eerst moet u een firewallregel maken voor toegang tot de MySQL-server vanuit uw CLI-client. Voer de volgende opdrachten uit om uw huidige IP-adres op te halen.

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

Als u werkt aan Windows-subsysteem voor Linux (WSL) waarvoor VPN is ingeschakeld, kan met de volgende opdracht een onjuist IPv4-adres worden geretourneerd. Een manier om uw IPv4-adres te verkrijgen, is door whatismyipaddress.com te bezoeken. Stel in ieder geval de omgevingsvariabele MY_IP in als het IPv4-adres waaruit u verbinding wilt maken met de database.

Maak een tijdelijke firewallregel met 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}

Bereid vervolgens een .sql-bestand voor om een databasegebruiker te maken voor de beheerde identiteit. In het volgende voorbeeld wordt een gebruiker met aanmeldingsnaam identity-contoso toegevoegd en worden de gebruikersbevoegdheden verleend voor toegang tot de database 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

Voer het .sql-bestand uit met de opdracht az mysql flexible-server execute. U kunt uw toegangstoken ophalen met de opdracht 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"

Mogelijk wordt u gevraagd om de rdbms-connect extensie te installeren, zoals wordt weergegeven in de volgende uitvoer. Druk y om door te gaan. Als u niet met de root gebruiker werkt, moet u het gebruikerswachtwoord invoeren.

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:

Als het .sql-bestand wordt uitgevoerd, ziet u uitvoer die vergelijkbaar is met het volgende voorbeeld:

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

De beheerde identiteit myManagedIdentity heeft nu toegang tot de database bij het verifiëren met de gebruikersnaam identity-contoso.

Als u vanaf dit IP-adres geen toegang meer wilt krijgen tot de server, kunt u de firewallregel verwijderen met behulp van de volgende opdracht.

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

Gebruik ten slotte de volgende opdracht om de verbindingsreeks op te halen die u in de volgende sectie gebruikt.

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

Een databaseverbinding zonder wachtwoord configureren voor Oracle WebLogic Server op Azure-VM's

In deze sectie wordt beschreven hoe u de verbinding met de gegevensbron zonder wachtwoord configureert met behulp van de Azure Marketplace-aanbiedingen voor Oracle WebLogic Server.

Begin eerst met het implementeren van een aanbieding. De volgende aanbiedingen bieden ondersteuning voor databaseverbindingen zonder wachtwoord:

Vul de vereiste informatie in het deelvenster Basisbeginselen en andere deelvensters in als u de functies wilt inschakelen. Wanneer u het deelvenster Database bereikt, vult u de configuratie zonder wachtwoord in, zoals wordt weergegeven in de volgende stappen.

  1. Voor Verbinding maken met database?, selecteert u Ja.
  2. Open onder Verbindingsinstellingen voor databasetype Kiezen de vervolgkeuzelijst en selecteer vervolgens MySQL (met ondersteuning voor verbinding zonder wachtwoord).
  3. Voor JNDI-naam voert u testpasswordless of de verwachte waarde in.
  4. Voer voor DataSource-verbindingsreeks de verbindingsreeks in die u in de laatste sectie hebt verkregen.
  5. Voer voor de gebruikersnaam van de database de gebruikersnaam van de database in van uw beheerde identiteit (de waarde van ${IDENTITY_LOGIN_NAME}). In dit voorbeeld is identity-contosode waarde .
  6. Selecteer Wachtwoordloze gegevensbronverbinding gebruiken.
  7. Selecteer voor door de gebruiker toegewezen beheerde identiteit de beheerde identiteit die u eerder hebt gemaakt. In dit voorbeeld is de naam .myManagedIdentity

De sectie Verbindingsinstellingen moet eruitzien als in de volgende schermopname, waarin Oracle WebLogic Server-cluster op VM's als voorbeeld wordt gebruikt.

Schermopname van Azure Portal met het deelvenster Database configureren van de pagina Oracle WebLogic Server maken op VM's.

U bent nu klaar met het configureren van de verbinding zonder wachtwoord. U kunt de volgende deelvensters blijven invullen of Beoordelen en maken selecteren en vervolgens Maken om de aanbieding te implementeren.

De databaseverbinding controleren

De databaseverbinding is geconfigureerd als de implementatie van de aanbieding zonder fouten is voltooid.

Ga door met het nemen van Oracle WebLogic Server-cluster op VM's als voorbeeld, nadat de implementatie is voltooid, deze stappen in Azure Portal om de URL van de beheerconsole te vinden.

  1. Zoek de resourcegroep waarin u WLS hebt geïmplementeerd.
  2. Selecteer Onder Instellingen de optie Implementaties.
  3. Selecteer de implementatie met de langste duur. Deze implementatie moet onder aan de lijst staan.
  4. Selecteer Uitvoer.
  5. De URL van de WebLogic Administration Console is de waarde van de adminConsoleUrl-uitvoer .
  6. Kopieer de waarde van de uitvoervariabele adminConsoleUrl.
  7. Plak de waarde in de adresbalk van de browser en druk op Enter om de aanmeldingspagina van de WebLogic-beheerconsole te openen.

Gebruik de volgende stappen om de databaseverbinding te controleren.

  1. Meld u aan bij de WebLogic-beheerconsole met de gebruikersnaam en het wachtwoord die u hebt opgegeven in het deelvenster Basisbeginselen .

  2. Selecteer Onder de domeinstructuur services, gegevensbronnen en testpasswordless.

  3. Selecteer het tabblad Bewaking , waarbij de status van de gegevensbron wordt uitgevoerd, zoals wordt weergegeven in de volgende schermopname.

  4. Selecteer het tabblad Testen en selecteer vervolgens het keuzerondje naast de gewenste server.

  5. Selecteer Testgegevensbron. U ziet nu een bericht dat een geslaagde test aangeeft, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van de WebLogic Console-portal met een geslaagde test van de gegevensbron.

Resources opschonen

Als u deze resources niet nodig hebt, kunt u ze verwijderen door de volgende opdrachten uit te voeren:

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

Volgende stappen

Volg deze koppelingen voor meer informatie over het uitvoeren van WLS op AKS of virtuele machines: