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 Azure-abonnement. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Gebruik Azure Cloud Shell met behulp van de Bash-omgeving. Zorg ervoor dat de Azure CLI-versie 2.43.0 of hoger is.
Als u wilt, installeert u de Azure CLI 2.43.0 of hoger om Azure CLI-opdrachten uit te voeren.
- Als u een lokale installatie gebruikt, meldt u zich aan met Azure CLI met behulp van de opdracht
az login
. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Aanmelden met Azure CLI voor andere aanmeldingsopties. - Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Zie Extensies gebruiken met Azure CLI voor meer informatie over extensies.
- Voer
az version
uit om de versie en afhankelijke bibliotheken te vinden die zijn geïnstalleerd. Voeraz upgrade
uit om een upgrade uit te voeren naar de nieuwste versie.
- Als u een lokale installatie gebruikt, meldt u zich aan met Azure CLI met behulp van de opdracht
Zorg ervoor dat de Azure-identiteit die u gebruikt om u aan te melden en te voltooien, de rol Eigenaar in het huidige abonnement heeft of de rollen Inzender en Beheerder voor gebruikerstoegang in het huidige abonnement. Zie Wat is op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC)voor een overzicht van Azure-rollen? Zie ingebouwde Azure-rollen voor meer informatie over de specifieke rollen die vereist zijn voor de aanbieding van Oracle WebLogic Marketplace.
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, abc1228rg
bijvoorbeeld. 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:
- Oracle WebLogic Server in Azure Kubernetes Service (AKS)
- Oracle WebLogic Server-cluster op VM's
- Oracle WebLogic Server met beheerdersserver op VM's
- Dynamisch Oracle WebLogic Server-cluster op VM's
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:
- Voor Verbinding maken met database?, selecteert u Ja.
- Selecteer onder de Verbindingsinstellingenvoor het kiezen van het databasetypein het vervolgkeuzemenu MySQL (met ondersteuning voor verbinding zonder wachtwoord).
- Voer voor JNDI-naamtestpasswordless of de verwachte waarde in.
- Voer voor datasource-verbindingsreeksde verbindingsreeks in die u in de laatste sectie hebt verkregen.
- 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. - Selecteer Wachtwoordloze gegevensbronverbinding gebruiken.
- 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.
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.
- Zoek de resourcegroep waarin u WLS hebt geïmplementeerd.
- Selecteer Onder Instellingen de optie Implementaties.
- Selecteer de implementatie met de langste duur. Deze implementatie moet onder aan de lijst staan.
- Selecteer Uitvoer.
- De URL van de WebLogic Administration Console is de waarde van de adminConsoleUrl-uitvoer .
- Kopieer de waarde van de uitvoervariabele adminConsoleUrl.
- 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:
Meld u aan bij de WebLogic-beheerconsole met de gebruikersnaam en het wachtwoord die u hebt opgegeven in het deelvenster Basisbeginselen .
Selecteer Onder de domeinstructuur services, gegevensbronnen en testpasswordless.
Selecteer het tabblad Bewaking, waar de status van de gegevensbron Actiefis, zoals weergegeven in de volgende schermopname:
Selecteer het tabblad Testen en klik vervolgens op de radioknop naast de gewenste server.
Selecteer Testgegevensbron. U ziet nu een bericht dat een geslaagde test aangeeft, zoals wordt weergegeven in de volgende schermopname:
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: