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 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 bij 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 geïnstalleerde versie en afhankelijke bibliotheken te vinden. Voer az upgrade uit om te upgraden naar de nieuwste versie.
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 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:
- 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
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.
- Voor Verbinding maken met database?, selecteert u Ja.
- Open onder Verbindingsinstellingen voor databasetype Kiezen de vervolgkeuzelijst en selecteer vervolgens MySQL (met ondersteuning voor verbinding zonder wachtwoord).
- Voor JNDI-naam voert u testpasswordless of de verwachte waarde in.
- Voer voor DataSource-verbindingsreeks de verbindingsreeks in die u in de laatste sectie hebt verkregen.
- 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 isidentity-contoso
de waarde . - Selecteer Wachtwoordloze gegevensbronverbinding gebruiken.
- 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.
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.
- 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 , waarbij de status van de gegevensbron wordt uitgevoerd, zoals wordt weergegeven in de volgende schermopname.
Selecteer het tabblad Testen en selecteer vervolgens het keuzerondje 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 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: