Partager via


Configurer des connexions aux bases de données sans mot de passe pour les applications Java sur des serveurs Oracle WebLogic

Cet article explique comment configurer des connexions de base de données sans mot de passe pour les applications Java sur Oracle WebLogic Server avec le Portail Azure.

Dans ce guide, vous effectuez les tâches suivantes :

  • Provisionnez des ressources de base de données à l’aide d’Azure CLI.
  • Activez l’administrateur Microsoft Entra dans la base de données.
  • Provisionnez une identité managée affectée par l’utilisateur et créez un utilisateur de base de données pour celui-ci.
  • Configurez une connexion de base de données sans mot de passe dans les offres Oracle WebLogic avec la Portail Azure.
  • Validez la connexion de 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.

Prérequis

Créer un groupe de ressources

Créez un groupe de ressources avec la commande az group create. Étant donné que les groupes de ressources doivent être uniques au sein d’un abonnement, choisissez un nom unique. Un moyen simple d’avoir des noms uniques consiste à utiliser une combinaison de vos initiales, de la date d’aujourd’hui et de certains identificateurs. Par exemple, abc1228rg. Cet exemple crée un groupe de ressources nommé abc1228rg à l’emplacement eastus :

export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

Créer un serveur de base de données et une base de données

Créez un serveur flexible avec la commande az mysql flexible-server create. Cet exemple crée un serveur flexible nommé mysql20221201 avec un utilisateur administrateur et un mot de passe Secret123456d’administrateurazureuser. Remplacez le mot de passe par le vôtre. Pour plus d’informations, consultez Créer un serveur flexible Azure Database pour MySQL à l’aide d’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 eastus \
    --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

Une fois la commande terminée, la sortie doit ressembler à 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"
}

Configurer un administrateur Microsoft Entra sur 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 l’authentification Microsoft Entra. Pour obtenir 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 du serveur flexible MySQL avec les identités managées, consultez Utiliser l’ID Microsoft Entra pour l’authentification avec MySQL.

L’exemple suivant configure l’utilisateur Azure CLI actuel en tant que compte d’administrateur Microsoft Entra. Pour activer l’authentification Azure, il est nécessaire d’attribuer une identité au serveur flexible MySQL.

Tout d’abord, créez une identité managée avec az identity create et affectez 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 en tant que compte d’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 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)

Créer un utilisateur de base de données pour votre identité managée

À présent, connectez-vous en tant qu’utilisateur administrateur Microsoft Entra à votre base de données MySQL et créez un utilisateur MySQL pour votre identité managée.

Tout d’abord, vous devez créer une règle de pare-feu pour accéder au serveur MySQL à 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 Sous-système Windows pour Linux (WSL) avec VPN activé, la commande suivante peut renvoyer une adresse IPv4 incorrecte. Une façon d’obtenir votre adresse IPv4 consiste à visiter whatismyipaddress.com. Dans tous les cas, définissez la variable MY_IP d’environnement comme adresse IPv4 à partir de laquelle vous souhaitez vous connecter à la base de données.

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é managée. L’exemple suivant ajoute un utilisateur avec un nom identity-contoso de connexion et accorde les privilèges utilisateur pour accéder à 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 obtenir 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"

Vous pouvez être invité à installer l’extension rdbms-connect , comme indiqué dans la sortie suivante. Appuyez 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, vous trouvez une sortie similaire à l’exemple suivant :

Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201

L’identité myManagedIdentity managée a désormais 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 utilisez 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 Oracle WebLogic Server sur des machines virtuelles Azure

Cette section vous montre comment configurer la connexion de source de données sans mot de passe à l’aide des offres Place de marché Azure pour Oracle WebLogic 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 :

Renseignez les informations requises dans le volet Informations de base et d’autres volets si vous souhaitez activer les fonctionnalités. Lorsque vous atteignez le volet Base de données , renseignez la configuration sans mot de passe, comme indiqué dans les étapes suivantes.

  1. Pour Connecter à la base de données ?, sélectionnez Oui.
  2. Sous les paramètres d’Connecter ion, pour Choisir le type de base de données, ouvrez le menu déroulant, puis sélectionnez MySQL (avec prise en charge de la connexion sans mot de passe) .
  3. Pour le nom JNDI, entrez testpasswordless ou votre valeur attendue.
  4. Pour DataSource Connecter ion String, entrez la chaîne de connexion obtenue dans la dernière section.
  5. Pour le nom d’utilisateur de la base de données, entrez le nom d’utilisateur de la base de données de votre identité managée (la valeur de ${IDENTITY_LOGIN_NAME}). Dans cet exemple, la valeur est identity-contoso.
  6. Sélectionnez Utiliser la connexion de source de données sans mot de passe.
  7. Pour l’identité managée affectée par l’utilisateur, sélectionnez l’identité managée que vous avez créée précédemment. Dans cet exemple, son nom est myManagedIdentity.

La section des paramètres de Connecter ion doit ressembler à la capture d’écran suivante, qui utilise oracle WebLogic Server Cluster sur des machines virtuelles comme exemple.

Capture d’écran du Portail Azure montrant le volet Configurer la base de données de la page Créer Oracle WebLogic Server sur les machines virtuelles.

Vous avez maintenant terminé de configurer la connexion sans mot de passe. Vous pouvez continuer à remplir les volets suivants ou sélectionner Vérifier + créer, puis créer pour déployer l’offre.

Vérifier la connexion de base de données

La connexion de base de données est configurée correctement si le déploiement de l’offre se termine sans erreur.

Pour continuer à prendre le cluster Oracle WebLogic Server sur des machines virtuelles comme exemple, une fois le déploiement terminé, suivez ces étapes dans le Portail Azure pour rechercher l’URL de la console Administration.

  1. Recherchez le groupe de ressources dans lequel vous avez déployé WLS.
  2. Sous Paramètres, sélectionnez Déploiements.
  3. Sélectionnez le déploiement avec la durée la plus longue. Ce déploiement doit se trouver en bas de la liste.
  4. Sélectionnez Sorties.
  5. L’URL de la console WebLogic Administration istration est la valeur de la sortie adminConsoleUrl.
  6. Copiez la valeur de la variable adminConsoleUrlde sortie.
  7. Collez la valeur dans la barre d’adresses de votre navigateur et appuyez sur Entrée pour ouvrir la page de connexion de la console WebLogic Administration istration.

Procédez comme suit pour vérifier la connexion de base de données.

  1. Connectez-vous à la console WebLogic Administration istration avec le nom d’utilisateur et le mot de passe que vous avez fournis dans le volet Informations de base.

  2. Sous la structure de domaine, sélectionnez Services, Sources de données, puis testpasswordless.

  3. Sélectionnez l’onglet Surveillance , où l’état de la source de données est en cours d’exécution, comme illustré dans la capture d’écran suivante.

  4. Sélectionnez l’onglet Test , puis sélectionnez la case d’option en regard du serveur souhaité.

  5. Sélectionnez Tester la source de données. Vous devez voir un message indiquant un test réussi, comme illustré dans la capture d’écran suivante.

    Capture d’écran du portail WebLogic Console montrant un test réussi de la source de données.

Nettoyer les ressources

Si vous n’avez pas besoin de ces ressources, vous pouvez les supprimer en effectuant les commandes suivantes :

az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>

Étapes suivantes

Pour en savoir plus sur l’exécution de WLS sur AKS ou sur des machines virtuelles, suivez ces liens :