Delen via


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

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 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 id te gebruiken, abc1228rgbijvoorbeeld. 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

Een database maken 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 de documentatie voor Azure Database for MySQLvoor 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 de 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 gebruiker van de Azure CLI in als Microsoft Entra-beheerder 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

Eerst moet u een firewallregel maken voor toegang tot de databaseserver 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 met windows-subsysteem voor Linux (WSL) waarvoor VPN is ingeschakeld, retourneert de volgende opdracht mogelijk een onjuist IPv4-adres. Een manier om uw IPv4-adres te verkrijgen, is door whatismyipaddress.com te bezoeken. Stel de omgevingsvariabele in MY_IP als het IPv4-adres waaruit u verbinding wilt maken met de database. U configureert de firewall van de database later met dit IP-adres.

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

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 op 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, is de uitvoer vergelijkbaar 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:

Voer de vereiste gegevens in het deelvenster Basisinformatie basisinformatie en andere deelvensters in als u de functies wilt inschakelen. Wanneer u het deelvenster Database bereikt, voert u de configuratie zonder wachtwoord in, zoals wordt weergegeven in de volgende stappen:

  1. Voor Verbinding maken met database?, selecteert u Ja.
  2. Selecteer onder de Verbindingsinstellingenvoor het kiezen van het databasetypein het vervolgkeuzemenu MySQL (met ondersteuning voor verbinding zonder wachtwoord).
  3. Voer voor JNDI-naamtestpasswordless of de verwachte waarde in.
  4. Voer voor datasource-verbindingsreeksde verbindingsreeks in die u in de laatste sectie hebt verkregen.
  5. Voer voor databasegebruikersnaamde gebruikersnaam van de database in van uw beheerde identiteit. Dit is de waarde van ${IDENTITY_LOGIN_NAME}. In dit voorbeeld is de waarde identity-contoso.
  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 zijn 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 hebt de verbinding zonder wachtwoord geconfigureerd. 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, waar de status van de gegevensbron Actiefis, zoals weergegeven in de volgende schermopname:

  4. Selecteer het tabblad Testen en klik vervolgens op de radioknop 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 met behulp van de volgende opdrachten:

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: