Configuración de conexiones de base de datos sin contraseña para aplicaciones Java en Oracle WebLogic Server
En este artículo se muestra cómo configurar conexiones de base de datos sin contraseña para aplicaciones Java en las ofertas de Oracle WebLogic Server con Azure Portal.
En esta guía, realizará las siguientes tareas:
- Aprovisionamiento de recursos de base de datos con la CLI de Azure.
- Habilitación del administrador de Microsoft Entra en la base de datos.
- Aprovisionamiento de una identidad administrada asignada por el usuario y creación de un usuario de base de datos para ella.
- Configuración de una conexión de base de datos sin contraseña en las ofertas de Oracle WebLogic con Azure Portal.
- Validación de la conexión de la base de datos.
Las ofertas admiten conexiones sin contraseña para bases de datos postgreSQL, MySQL y Azure SQL.
Requisitos previos
Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Use Azure Cloud Shell con el entorno de Bash. Asegúrese de que la versión de la CLI de Azure sea 2.43.0 o posterior.
Si lo prefiere, instale la CLI de Azure CLI 2.43.0 o superior para ejecutar los comandos de la CLI de Azure.
- Si usa una instalación local, inicie sesión con la CLI de Azure mediante el comando
az login
. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure. - Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información, consulte Uso de extensiones con la CLI de Azure.
- Ejecute
az version
para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecuteaz upgrade
.
- Si usa una instalación local, inicie sesión con la CLI de Azure mediante el comando
Asegúrese de que la identidad de Azure que usa para iniciar sesión y completar este artículo tiene el rol Propietario en la suscripción actual o los roles Colaborador y Administrador de acceso de usuario en la suscripción actual. Para obtener información general sobre los roles de Azure, consulte ¿Qué es el control de acceso basado en roles de Azure (Azure RBAC)? Para obtener más información sobre los roles específicos requeridos por la oferta de Oracle WebLogic Marketplace, consulte Roles integrados de Azure.
Crear un grupo de recursos
Creación de un grupo de recursos con az group create
. Dado que los grupos de recursos deben ser únicos dentro de una suscripción, elija un nombre único. Una forma fácil de tener nombres únicos es usar una combinación de sus iniciales, la fecha de hoy y algún identificador, por ejemplo, abc1228rg
. En este ejemplo se crea un grupo de recursos denominado abc1228rg
en la ubicación eastus
:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Creación de un servidor de base de datos y una base de datos
Cree un servidor flexible con el comando az mysql flexible-server create
. En este ejemplo se crea un servidor flexible denominado mysql20221201
con el usuario administrador azureuser
y la contraseña de administrador Secret123456
. Reemplace la contraseña por la suya. Para obtener más información, consulte Creación de un servidor flexible de Azure Database for MySQL con la CLI de 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 eastus \
--admin-user $MYSQL_ADMIN_USER \
--admin-password $MYSQL_ADMIN_PASSWORD \
--public-access 0.0.0.0 \
--tier Burstable \
--sku-name Standard_B1ms
Cree una base de datos 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
Cuando el comando se complete correctamente, debería ver un resultado similar al que se ve en el siguiente ejemplo:
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"
}
Configuración de un administrador de Microsoft Entra para la base de datos
Ahora que ha creado la base de datos, debe prepararla para admitir conexiones sin contraseña. Una conexión sin contraseña requiere una combinación de identidades administradas para los recursos de Azure y la autenticación de Microsoft Entra. Para obtener información general sobre las identidades administradas para recursos de Azure, consulte ¿Qué son las identidades administradas para recursos de Azure?.
Para obtener información sobre cómo interactúa El servidor flexible de MySQL con identidades administradas, consulte la documentación de Azure Database for MySQL.
En el ejemplo siguiente se configura el usuario actual de la CLI de Azure como una cuenta de administrador de Microsoft Entra. Para habilitar la autenticación de Azure, es necesario asignar una identidad al servidor flexible de MySQL.
En primer lugar, cree una identidad administrada con az identity create
y asigne la identidad al servidor 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
A continuación, configure el usuario actual de Azure CLI como la cuenta de administrador de 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
Creación de una identidad administrada asignada por el usuario
A continuación, en la CLI de Azure, cree una identidad en la suscripción mediante el comando az identity create
. Esta identidad administrada se usa para conectarse a la base de datos.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Para configurar la identidad en los pasos siguientes, use el comando az identity show
para almacenar el identificador de cliente de la identidad en una variable de 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)
Creación de un usuario de base de datos para la identidad administrada
En primer lugar, debe crear una regla de firewall para acceder al servidor de bases de datos desde el cliente de la CLI. Ejecute los comandos siguientes para obtener la dirección IP actual:
export MY_IP=$(curl http://whatismyip.akamai.com)
Si está trabajando en el Subsistema de Windows para Linux (WSL) con VPN habilitada, el siguiente comando podría devolver una dirección IPv4 incorrecta. Una manera de obtener su dirección IPv4 es visitando whatismyipaddress.com. Establezca la variable de entorno MY_IP
como la dirección IPv4 desde la que desea conectarse a la base de datos. Configure el firewall de base de datos con esta dirección IP más adelante.
Conéctese como usuario administrador de Microsoft Entra a la base de datos mySQL y cree un usuario de MySQL para la identidad administrada.
Cree una regla de firewall temporal 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}
A continuación, prepare un archivo SQL para crear un usuario de base de datos para la identidad administrada. En el ejemplo siguiente se agrega un usuario con el nombre de inicio de sesión identity-contoso
y se conceden los privilegios de usuario para acceder a la base de datos 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
Ejecute el archivo SQL con el comando az mysql flexible-server execute
. Puede recuperar el token de acceso con el 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"
Es posible que se le pida que instale la extensión rdbms-connect
, como se muestra en la salida siguiente. Presione y para continuar. Si no está trabajando con el usuario root
, debe escribir la contraseña del usuario.
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 el archivo SQL se ejecuta correctamente, la salida es similar al ejemplo siguiente:
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
La identidad administrada myManagedIdentity
ahora tiene acceso a la base de datos al autenticarse con el nombre de usuario identity-contoso
.
Si ya no desea acceder al servidor desde esta dirección IP, puede quitar la regla de firewall mediante el comando siguiente:
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Por último, use el siguiente comando para obtener la cadena de conexión que use en la sección siguiente:
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Configuración de una conexión de base de datos sin contraseña para Oracle WebLogic Server en máquinas virtuales de Azure
En esta sección se muestra cómo configurar la conexión de origen de datos sin contraseña mediante las ofertas de Azure Marketplace para Oracle WebLogic Server.
En primer lugar, comience el proceso de implementación de una oferta. Las siguientes ofertas admiten conexiones de base de datos sin contraseña:
- Oracle WebLogic Server en Azure Kubernetes Service (AKS)
- Clúster de Oracle WebLogic Server en máquinas virtuales
- Oracle WebLogic Server con servidor de administración en máquinas virtuales
- Clúster dinámico de Oracle WebLogic Server en máquinas virtuales
Escriba la información necesaria en el panel Aspectos básicos de y otros paneles si desea habilitar las características. Cuando llegue al panel base de datos, configure la opción sin contraseña como se indica en los siguientes pasos:
- En ¿Conectarse a una base de datos?, seleccione Sí.
- En configuración de conexión, para Elegir tipo de base de datos, en el menú desplegable, seleccione MySQL (con compatibilidad con la conexión sin contraseña).
- En Nombre de JNDI, escriba testpasswordless o su valor esperado.
- En Cadena de conexión de origen de datos, escriba la cadena de conexión que obtuvo en la última sección.
- En Nombre de usuario de base de datos, escriba el nombre de usuario de la base de datos de la identidad administrada (el valor de
${IDENTITY_LOGIN_NAME}
). En este ejemplo, el valor es identity-contoso. - Seleccione Usar conexión de origen de datos sin contraseña.
- En Identidad administrada asignada por el usuario, seleccione la identidad administrada que creó anteriormente. En este ejemplo, su nombre es myManagedIdentity.
La sección Configuración de conexión debe ser similar a la siguiente captura de pantalla, que usa el clúster de Oracle WebLogic Server en máquinas virtuales como ejemplo.
Ha terminado de configurar la conexión sin contraseña. Puede seguir rellenando los paneles siguientes o seleccionar Revisar y crear y, a continuación , Crear para implementar la oferta.
Verificación de la conexión de la base de datos
La conexión de la base de datos se configura correctamente si la implementación de la oferta se completa sin errores.
Continuando con el ejemplo de clúster de Oracle WebLogic Server en máquinas virtuales, una vez completada la implementación, siga estos pasos en Azure Portal para buscar la dirección URL de la consola de administración.
- Busque el grupo de recursos en el que implementó WLS.
- En Configuración, seleccione Implementaciones.
- Seleccione la implementación con la duración más larga. Esta implementación debe estar en la parte inferior de la lista.
- Seleccione Salidas.
- La dirección URL de la consola de administración de WebLogic es el valor de la salida adminConsoleUrl.
- Copie el valor de la variable de salida adminConsoleUrl.
- Pegue el valor en la barra de direcciones del explorador y pulse Entrar para abrir la página de inicio de sesión de la Consola de administración de WebLogic.
Siga estos pasos para comprobar la conexión de la base de datos:
Inicie sesión en la Consola de administración de WebLogic con el nombre de usuario y la contraseña que proporcionó en el panel Aspectos básicos.
En Estructura de dominio, seleccione Servicios, Orígenes de datos y, a continuación, testpasswordless.
Seleccione la pestaña Supervisión, donde el estado del origen de datos es En ejecución, como se muestra en la captura de pantalla siguiente:
Seleccione la pestaña Pruebas y, a continuación, seleccione el botón de radio situado junto al servidor deseado.
Seleccione Probar origen de datos. Debería ver un mensaje que indica una prueba correcta, como se muestra en la captura de pantalla siguiente:
Limpieza de recursos
Si no necesita estos recursos, puede eliminarlos mediante los siguientes comandos:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Pasos siguientes
Para obtener más información sobre cómo ejecutar WLS en AKS o máquinas virtuales, siga estos vínculos: