Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment configurer des connexions de base de données sans mot de passe pour les applications Java sur les offres IBM WebSphere Application Server avec le portail Azure.
Dans ce guide, vous accomplirez les tâches suivantes :
- Approvisionner des ressources de base de données en utilisant Azure CLI.
- Activer l’administrateur Microsoft Entra dans la base de données.
- Approvisionner une identité managée affectée à un utilisateur et créer un utilisateur de base de données pour celle-ci.
- Configurez une connexion de base de données sans mot de passe dans les offres IBM WebSphere Application Server avec le portail Azure.
- Valider la connexion à la base de données.
Les offres prennent en charge les connexions sans mot de passe pour les bases de données PostgreSQL, MySQL et Azure SQL.
Conditions préalables
Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Utilisez Azure Cloud Shell avec l’environnement Bash. Assurez-vous que la version d'Azure CLI est 2.43.0 ou supérieure.
Si vous préférez, installez Azure CLI 2.43.0 ou une version supérieure pour exécuter des commandes Azure CLI.
- Si vous utilisez une installation locale, connectez-vous à Azure CLI à l'aide de la commande
az login. Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Consultez Se connecter avec Azure CLI pour d’autres options de connexion. - Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
- Exécutez
az versionpour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutezaz upgrade.
- Si vous utilisez une installation locale, connectez-vous à Azure CLI à l'aide de la commande
Vérifiez que l’identité Azure que vous utilisez pour vous connecter et compléter cet article a le rôle Propriétaire dans l’abonnement actuel ou les rôles Contributeur et Administrateur de l’accès utilisateur dans l’abonnement actuel. Pour une vue d’ensemble des rôles Azure, consultez Qu’est-ce que le contrôle d’accès en fonction des rôles Azure (Azure RBAC)? Pour plus de détails sur les rôles spécifiques requis par l’offre Oracle WebLogic Marketplace, consultez Rôles intégrés Azure.
Sélectionner une région pour le déploiement
Sélectionnez une région avec des références SKU disponibles pour votre base de données souhaitée. La commande Azure CLI suivante répertorie les références SKU disponibles dans une région donnée. Continuez à essayer différentes régions jusqu’à ce que vous en trouviez un qui a des résultats.
az mysql flexible-server list-skus --location "$REGION" --output table
Créer un groupe de ressources
Créez un groupe de ressources avec az group create. Étant donné que les groupes de ressources doivent être uniques au sein d’un abonnement, choisissez un nom unique. Pour obtenir facilement des noms uniques, utilisez une combinaison de vos initiales, de la date du jour et d'un identifiant, par exemple abc1228rg. Cet exemple crée un groupe de ressources nommé abc1228rg à l’emplacement eastus.
export RESOURCE_GROUP_NAME="abc1228rg"
export REGION=eastus
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location ${REGION}
Créer un serveur de base de données et une base de données
Créez un serveur flexible à l'aide de la commande az mysql flexible-server create. Cet exemple crée un serveur flexible nommé mysql20221201 avec l’utilisateur admin azureuser et le mot de passe admin Secret123456. Remplacez le mot de passe par le vôtre. Pour plus d’informations, consultez Créer une base de données Azure pour MySQL Flexible Server en utilisant Azure CLI.
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
Créez une base de données avec 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
Lorsque la commande est terminée, vous devriez voir une sortie similaire à l’exemple suivant :
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"
}
Configurez un administrateur Microsoft Entra pour votre base de données
Maintenant que vous avez créé la base de données, vous devez la préparer pour prendre en charge les connexions sans mot de passe. Une connexion sans mot de passe nécessite une combinaison d’identités managées pour les ressources Azure et d’authentification Microsoft Entra. Pour une vue d’ensemble des identités managées pour les ressources Azure, consultez Qu’est-ce que les identités managées pour les ressources Azure?
Pour plus d'informations sur l'interaction entre MySQL Flexible Server et les identités gérées, consultez la documentation Azure Database for MySQL.
L’exemple suivant configure l’utilisateur actuel d’Azure CLI comme compte administrateur Microsoft Entra. Pour activer l’authentification Azure, il est nécessaire d’assigner une identité au serveur MySQL Flexible.
Tout d'abord, créez une identité gérée avec az identity create et attribuez l'identité au serveur MySQL avec 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
Ensuite, définissez l'utilisateur Azure CLI actuel comme compte administrateur Microsoft Entra avec 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
Créer une identité managée attribuée par l’utilisateur
Ensuite, dans Azure CLI, créez une identité dans votre abonnement à l'aide de la commande az identity create. Vous utilisez cette identité managée pour vous connecter à votre base de données.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Pour configurer l'identité dans les étapes suivantes, utilisez la commande az identity show pour stocker l'ID client de l'identité dans une variable de l'interpréteur de commande.
# 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)
Créer un utilisateur de base de données pour votre identité managée
Tout d’abord, vous devez créer une règle de pare-feu pour accéder au serveur de base de données à partir de votre client CLI. Exécutez les commandes suivantes pour obtenir votre adresse IP actuelle :
export MY_IP=$(curl http://whatismyip.akamai.com)
Si vous travaillez sur le sous-système Windows pour Linux (WSL) avec un VPN activé, la commande suivante peut renvoyer une adresse IPv4 incorrecte. Une façon d’obtenir votre adresse IPv4 est de visiter whatismyipaddress.com. Définissez la variable d'environnement MY_IP comme adresse IPv4 à partir de laquelle vous souhaitez vous connecter à la base de données. Vous configurez le pare-feu de base de données avec cette adresse IP ultérieurement.
Connectez-vous à votre base de données MySQL en tant qu'administrateur Microsoft Entra et créez un utilisateur MySQL pour votre identité gérée.
Créez une règle de pare-feu temporaire avec 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}
Ensuite, préparez un fichier SQL pour créer un utilisateur de base de données pour l'identité gérée. L'exemple suivant ajoute un utilisateur avec le nom de connexion identity-contoso et lui accorde des privilèges d'accès à la base de données 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
Exécutez le fichier SQL avec la commande az mysql flexible-server execute. Vous pouvez récupérer votre jeton d'accès avec la commande 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"
Il se peut que vous soyez invité à installer l'extension rdbms-connect, comme indiqué dans la sortie suivante. Appuyez sur y pour continuer. Si vous ne travaillez pas avec l’utilisateur root, vous devez entrer le mot de passe de l’utilisateur.
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:
Si le fichier SQL s'exécute correctement, votre sortie est similaire à l'exemple suivant :
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
L’identité managée myManagedIdentity a maintenant accès à la base de données lors de l’authentification avec le nom d’utilisateur identity-contoso.
Si vous ne souhaitez plus accéder au serveur à partir de cette adresse IP, vous pouvez supprimer la règle de pare-feu à l'aide de la commande suivante :
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Enfin, utilisez la commande suivante pour obtenir la chaîne de connexion que vous utiliserez dans la section suivante :
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Configurer une connexion de base de données sans mot de passe pour IBM WebSphere Application Server sur des machines virtuelles Azure
Avant de continuer, assurez-vous que l’identité Azure que vous utilisez pour vous connecter et terminer cet article a le rôle Propriétaire dans l’abonnement actuel ou les rôles Contributeur et Administrateur d’accès utilisateur dans l’abonnement actuel. Pour une vue d’ensemble des rôles Azure, consultez Qu’est-ce que le contrôle d’accès en fonction des rôles Azure (Azure RBAC)? Pour plus de détails sur les rôles spécifiques requis par l’offre Oracle WebLogic Marketplace, consultez Rôles intégrés Azure.
Cette section vous montre comment configurer la connexion de source de données sans mot de passe à l’aide des offres de la Place de marché Azure pour IBM WebSphere Application Server.
Tout d’abord, commencez le processus de déploiement d’une offre. Les offres suivantes prennent en charge les connexions de base de données sans mot de passe :
- WebSphere traditionnel sur une machine virtuelle
- Cluster traditionnel WebSphere sur une machine virtuelle. Pour plus d’informations, consultez Démarrage rapide : Déployer un cluster de déploiement de réseau de serveur d’applications WebSphere sur des machines virtuelles Azure.
Entrez les informations requises dans le volet de base et dans les autres volets si vous souhaitez activer les fonctionnalités. Lorsque vous atteignez le volet base de données, saisissez la configuration sans mot de passe, comme indiqué dans les étapes suivantes :
- Pour Se connecter à la base de données, sélectionnez Oui.
- Sous Paramètres de connexion, pour Choisir le type de base de données, ouvrez le menu déroulant puis sélectionnez Azure SQL (avec prise en charge de la connexion sans mot de passe).
- Pour le nom JNDI, saisissez testpasswordless ou votre valeur prévue.
- Pour Chaîne de connexion DataSource, entrez la chaîne de connexion que vous avez obtenue dans la dernière section.
- Sélectionnez Utiliser la connexion à la source de données sans mot de passe.
- Pour Identité managée affectée par l’utilisateur, sélectionnez l’identité managée que vous avez créée à l’étape précédente. Dans cet exemple, son nom est myManagedIdentity.
- Sélectionnez Ajouter.
La section Paramètres de connexion doit ressembler à la capture d’écran suivante :
Vérifier la connexion à la base de données
La connexion à la base de données est configurée avec succès si le déploiement de l’offre se termine sans erreur.
Une fois le déploiement terminé, procédez comme suit dans le portail Azure pour rechercher l’URL de la console d’administration.
- Recherchez le groupe de ressources dans lequel vous avez déployé WebSphere.
- Sous Paramètres, sélectionnez Déploiements.
- Sélectionnez le déploiement avec la Durée la plus longue. Ce déploiement devrait se trouver en bas de la liste.
- Sélectionnez Sorties.
- L'URL de la Console des Solutions Intégrées est la valeur du champ adminSecuredConsole.
- Copiez la valeur de la variable de sortie adminSecuredConsole.
- Collez la valeur dans la barre d’adresses de votre navigateur, puis appuyez sur Entrée pour ouvrir la page de connexion de la console Solutions intégrées.
Suivez les étapes suivantes pour vérifier la connexion à la base de données :
- Connectez-vous à la console Solutions intégrées avec le nom d’utilisateur et le mot de passe que vous avez fournis dans le volet Informations de base .
- Dans le volet de navigation, développez Ressources , puis JDBC.
- Sélectionner des Sources de données.
- Cochez la case en regard de la ligne avec la valeur de nom JNDI correspondant à la valeur que vous avez entrée dans l’onglet Base de données .
- Sélectionnez Tester la connexion.
- Vous devriez voir un message indiquant quelque chose de similaire à
The test connection operation for data source dataSource-sqlserver on server server1 at node was0aef4a-vmNode01 was successful.
La capture d’écran suivante met en évidence les éléments d’interface utilisateur pertinents :
Nettoyer les ressources
Si vous n'avez pas besoin de ces ressources, vous pouvez les supprimer à l'aide des commandes suivantes :
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Étapes suivantes
En savoir plus sur l’exécution du serveur d’applications WebSphere sur AKS, Azure RedHat OpenShift ou des machines virtuelles en suivant les liens suivants :