Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come configurare le connessioni di database senza password per le app Java in IBM WebSphere Application Server con il portale di Azure.
In questa guida vengono eseguite le attività seguenti:
- Effettuare il provisioning delle risorse del database usando l'interfaccia della riga di comando di Azure.
- Abilitare l'amministratore di Microsoft Entra nel database.
- Configurare un'identità gestita assegnata dall'utente e creare un utente del database per essa.
- Configurare una connessione di database senza password in IBM WebSphere Application Server con il portale di Azure.
- Convalidare la connessione al database.
Offre il supporto di connessioni senza password per i database PostgreSQL, MySQL e SQL di Azure.
Prerequisiti
Una sottoscrizione di Azure. Se non hai una sottoscrizione di Azure, crea un account gratuito prima di iniziare.
Usare Azure Cloud Shell usando l'ambiente Bash. Assicurarsi che la versione dell'interfaccia della riga di comando di Azure sia 2.43.0 o successiva.
Se si preferisce, installare l'interfaccia della riga di comando di Azure 2.43.0 o versione successiva per eseguire i comandi dell'interfaccia della riga di comando di Azure.
- Se si usa un'installazione locale, effettua l'accesso con Azure CLI usando il comando
az login. Per completare il processo di autenticazione, seguire i passaggi visualizzati nel terminale. Per altre opzioni di accesso, vedere Accedere con l'interfaccia della riga di comando di Azure. - Quando richiesto, installare le estensioni dell'interfaccia della riga di comando di Azure al primo utilizzo. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
- Eseguire
az versionper trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguireaz upgrade.
- Se si usa un'installazione locale, effettua l'accesso con Azure CLI usando il comando
Verificare che l'identità di Azure usata per accedere e completare questo articolo abbia il ruolo Proprietario nella sottoscrizione corrente o i ruoliCollaboratore e Amministratore accesso utenti nella sottoscrizione corrente. Per una panoramica dei ruoli di Azure, vedere Che cos'è il controllo degli accessi in base al ruolo di Azure? Per informazioni dettagliate sui ruoli specifici richiesti dall'offerta oracle WebLogic marketplace, vedere Ruoli predefiniti di Azure.
Selezionare un'area per la distribuzione
Selezionare un'area con SKU disponibili per il database desiderato. Il comando seguente dell'interfaccia della riga di comando di Azure elenca gli SKU disponibili in una determinata area. Continuare a provare aree diverse finché non si trova un'area con risultati.
az mysql flexible-server list-skus --location "$REGION" --output table
Creare un gruppo di risorse
Creare un gruppo di risorse con az group create. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, selezionare un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione delle iniziali, della data odierna e di un identificatore, ad esempio abc1228rg. In questo esempio viene creato un gruppo di risorse denominato abc1228rg nella posizione eastus.
export RESOURCE_GROUP_NAME="abc1228rg"
export REGION=eastus
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location ${REGION}
Creare un server di database e un database
Creare un server flessibile con il comando az mysql flexible-server create. In questo esempio viene creato un server flessibile denominato mysql20221201 con l'amministratore azureuser e la password di amministrazione Secret123456. Sostituire la password con il proprio. Per altre informazioni, vedere Creare un server flessibile Database di Azure per MySQL usando l'interfaccia della riga di comando di Azure.
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 ${REGION} \
--admin-user $MYSQL_ADMIN_USER \
--admin-password $MYSQL_ADMIN_PASSWORD \
--public-access 0.0.0.0 \
--tier Burstable \
--sku-name Standard_B1ms
Creare un database con 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
Al termine del comando, verrà visualizzato un output simile all'esempio seguente:
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"
}
Configurare un amministratore di Microsoft Entra per il database
Dopo aver creato il database, è necessario prepararlo per supportare le connessioni senza password. Una connessione senza password richiede una combinazione di identità gestite per le risorse di Azure e l'autenticazione di Microsoft Entra. Per una panoramica delle identità gestite per le risorse di Azure, vedere Che cosa sono le identità gestite per le risorse di Azure?
Per informazioni su come il server flessibile MySQL interagisce con le identità gestite, vedere la documentazione di Azure Database per MySQL.
L'esempio seguente configura l'utente corrente dell'interfaccia della riga di comando di Azure come account amministratore di Microsoft Entra. Per abilitare l'autenticazione di Azure, è necessario assegnare un'identità al server flessibile MySQL.
Creare prima di tutto un'identità gestita con az identity create e assegnare l'identità al server MySQL con 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
Imposta quindi l'utente corrente di Azure CLI come account amministratore di Microsoft Entra con 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
Creare un'identità gestita assegnata dall'utente
Successivamente, in Azure CLI, crea un'identità nella tua sottoscrizione usando il comando az identity create. Usa questa identità gestita per connetterti al tuo database.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Per configurare l'identità nei passaggi seguenti, utilizzare il comando az identity show per memorizzare l'ID client dell'identità in una variabile di shell.
# 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)
Creare un utente di database per l'identità gestita
Prima di tutto, è necessario creare una regola del firewall per accedere al server di database dal client dell'interfaccia della riga di comando. Eseguire i comandi seguenti per ottenere l'indirizzo IP corrente:
export MY_IP=$(curl http://whatismyip.akamai.com)
Se si usa sottosistema Windows per Linux (WSL) con VPN abilitata, il comando seguente potrebbe restituire un indirizzo IPv4 non corretto. Un modo per ottenere l'indirizzo IPv4 consiste nel visitare whatismyipaddress.com. Impostare la variabile di ambiente MY_IP come indirizzo IPv4 da cui connettersi al database. Configurare il firewall del database con questo indirizzo IP in un secondo momento.
Connettersi come utente amministratore di Microsoft Entra al database MySQL e creare un utente MySQL per l'identità gestita.
Creare una regola del firewall temporanea con 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}
Preparare quindi un file SQL per creare un utente del database per l'identità gestita. Nell'esempio seguente viene aggiunto un utente con nome di accesso identity-contoso e vengono concessi i privilegi utente per accedere al 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
Eseguire il file SQL con il comando az mysql flexible-server execute. È possibile recuperare il token di accesso con il comando 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"
Potrebbe essere richiesto di installare l'estensione rdbms-connect, come illustrato nell'output seguente. Premere y per continuare. Se non si lavora con l'utente root , è necessario immettere la password dell'utente.
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:
Se il file SQL viene eseguito correttamente, l'output è simile all'esempio seguente:
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
L'identità myManagedIdentity gestita ha ora accesso al database durante l'autenticazione con il nome utente identity-contoso.
Se non si vuole più accedere al server da questo indirizzo IP, è possibile rimuovere la regola del firewall usando il comando seguente:
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Usare infine il comando seguente per ottenere la stringa di connessione usata nella sezione successiva:
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Configurare una connessione di database senza password per IBM WebSphere Application Server nelle macchine virtuali di Azure
Prima di procedere, assicurarsi che l'identità di Azure usata per accedere e completare questo articolo abbia il ruolo Proprietario nella sottoscrizione corrente o i ruoli Collaboratore e Amministratore accesso utenti nella sottoscrizione corrente. Per una panoramica dei ruoli di Azure, vedere Che cos'è il controllo degli accessi in base al ruolo di Azure? Per informazioni dettagliate sui ruoli specifici richiesti dall'offerta oracle WebLogic marketplace, vedere Ruoli predefiniti di Azure.
Questa sezione illustra come configurare la connessione all'origine dati senza password usando le offerte di Azure Marketplace per IBM WebSphere Application Server.
Iniziare prima di tutto il processo di distribuzione di un'offerta. Le offerte seguenti supportano connessioni di database senza password:
- WebSphere Tradizionale su macchina virtuale
- Cluster WebSphere tradizionale nella macchina virtuale. Per altre informazioni, vedere Avvio rapido: Distribuire un cluster di distribuzione di rete del server applicazioni WebSphere in macchine virtuali di Azure.
Immettere le informazioni necessarie nel riquadro Informazioni di base e in altri riquadri se si desidera abilitare le funzionalità. Quando si raggiunge il riquadro Database, immettere la configurazione senza password, come mostrato di seguito:
- Per Connetti al database? selezionare Sì.
- In Impostazioni di connessione, per Scegliere il tipo di database, aprire il menu a discesa e quindi selezionare Azure SQL (con supporto per la connessione senza password).
- Per nome JNDI immettere testpasswordless o il valore previsto.
- Per Stringa di connessione DataSource, inserire la stringa di connessione ottenuta nell'ultima sezione.
- Seleziona Usa connessione dell'origine dati senza password.
- Per Identità gestita assegnata dall'utente selezionare l'identità gestita creata nel passaggio precedente. In questo esempio il nome è myManagedIdentity.
- Seleziona Aggiungi.
La sezione Impostazioni di connessione dovrebbe essere simile alla schermata seguente:
Verificare la connessione al database
La connessione al database viene configurata correttamente se la distribuzione dell'offerta viene completata senza errori.
Al termine della distribuzione, seguire questa procedura nel portale di Azure per trovare l'URL della console di amministrazione.
- Trovare il gruppo di risorse in cui è stato distribuito WebSphere.
- Selezionare Distribuzioni in Impostazioni.
- Selezionare la distribuzione con la durata più lunga. Questa distribuzione deve trovarsi nella parte inferiore dell'elenco.
- Selezionare Output.
- L'URL della Console Soluzioni Integrate è il valore dell'output adminSecuredConsole.
- Copiare il valore della variabile di output adminSecuredConsole.
- Incollare il valore nella barra degli indirizzi del browser e premere INVIO per aprire la pagina di accesso della console soluzioni integrate.
Per verificare la connessione al database, seguire questa procedura:
- Accedere alla console soluzioni integrate con il nome utente e la password specificati nel riquadro Informazioni di base .
- Nel pannello di navigazione espandere Risorse poi JDBC.
- Selezionare Origini dati.
- Selezionare la casella di controllo accanto alla riga con il valore del nome JNDI corrispondente al valore immesso nella scheda Database .
- Selezionare Test connessione.
- Verrà visualizzato un messaggio simile a
The test connection operation for data source dataSource-sqlserver on server server1 at node was0aef4a-vmNode01 was successful.
Lo screenshot seguente evidenzia gli elementi dell'interfaccia utente pertinenti:
Pulire le risorse
Se queste risorse non sono necessarie, è possibile eliminarle usando i comandi seguenti:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Passaggi successivi
Per ulteriori informazioni sull'esecuzione di WebSphere Application Server su AKS, Azure RedHat OpenShift o macchine virtuali, seguendo i collegamenti seguenti: