Share via


Configuración de conexiones de base de datos sin contraseña para aplicaciones Java en Oracle WebLogic Servers

En este artículo se muestra cómo configurar conexione de base de datos sin contraseña para aplicaciones Java en las ofertas de Oracle WebLogic Server con Azure Portal.

En esta guía, se realizan las siguientes tareas:

  • Aprovisione recursos de base de datos mediante la CLI de Azure.
  • Habilite el administrador de Microsoft Entra en la base de datos.
  • Aprovisione una identidad administrada asignada por el usuario y cree un usuario de base de datos para ella.
  • Configure una conexión de base de datos sin contraseña en Las ofertas de Oracle WebLogic con Azure Portal.
  • Valide la conexión de base de datos.

Las ofertas admiten conexiones sin contraseña para bases de datos postgreSQL, MySQL y Azure SQL.

Requisitos previos

Crear un grupo de recursos

Cree 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 manera 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 eastus ubicación:

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 azureuser administrador y la contraseña Secret123456de administrador. Reemplace la contraseña por la suya. Para más información, consulte Creación de un servidor flexible de Azure Database for MySQL mediante 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 se complete el comando, debería ver una salida similar a la del ejemplo siguiente:

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"
}

Configurar un administrador de Microsoft Entra en 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 los recursos de Azure, consulte ¿Qué son las identidades administradas para los recursos de Azure?

Para obtener información sobre cómo interactúa El servidor flexible de MySQL con identidades administradas, consulte Uso de Microsoft Entra ID para la autenticación con 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, establezca el usuario actual de la CLI de Azure 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

Crear 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

Ahora, conéctese como usuario administrador de Microsoft Entra a la base de datos mySQL y cree un usuario mySQL para la identidad administrada.

En primer lugar, debe crear una regla de firewall para acceder al servidor MySQL 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 Subsistema de Windows para Linux (WSL) con VPN habilitada, el siguiente comando puede devolver una dirección IPv4 incorrecta. Una manera de obtener su dirección IPv4 es visitando whatismyipaddress.com. En cualquier caso, establezca la variable MY_IP de entorno como la dirección IPv4 desde la que desea conectarse a la base de datos.

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 identity-contoso de inicio de sesión 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 obtener 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 rdbms-connect extensión, como se muestra en la salida siguiente. Presione y para continuar. Si no está trabajando con el root usuario, 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, encontrará una salida similar al ejemplo siguiente:

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

La identidad myManagedIdentity administrada 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 el cadena de conexión que se usa 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 conexione de base de datos sin contraseña:

Rellene la información necesaria en el panel Aspectos básicos y otros paneles si desea habilitar las características. Cuando llegue al panel Base de datos , rellene la configuración sin contraseña, como se muestra en los pasos siguientes.

  1. Para Conectar a la base de datos, seleccione .
  2. En Conectar configuración, en Elegir tipo de base de datos, abra el menú desplegable y, a continuación, seleccione MySQL (compatible con la conexión sin contraseña).
  3. En Nombre JNDI, escriba testpasswordless o su valor esperado.
  4. En DataSource Conectar ion String, escriba el cadena de conexión que obtuvo en la última sección.
  5. 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.
  6. Seleccione Usar conexión de origen de datos sin contraseña.
  7. En Identidad administrada asignada por el usuario, seleccione la identidad administrada que creó anteriormente. En este ejemplo, su nombre es myManagedIdentity.

La sección de configuración de Conectar ion debe ser similar a la siguiente captura de pantalla, que usa el clúster de Oracle WebLogic Server en máquinas virtuales como ejemplo.

Captura de pantalla de Azure Portal que muestra el panel Configurar base de datos de la página Crear oracle WebLogic Server en máquinas virtuales.

Ya 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.

Comprobación de la conexión de la base de datos

La conexión de base de datos se configura correctamente si la implementación de la oferta se completa sin errores.

Siga siguiendo el clúster de Oracle WebLogic Server en máquinas virtuales como ejemplo, una vez completada la implementación, siga estos pasos en Azure Portal para buscar la dirección URL de la consola de Administración.

  1. Busque el grupo de recursos en el que implementó WLS.
  2. En Configuración, seleccione Implementaciones.
  3. Seleccione la implementación con la duración más larga. Esta implementación debe estar en la parte inferior de la lista.
  4. Seleccione Salidas.
  5. La dirección URL de webLogic Administración istration Console es el valor de la salida adminConsoleUrl.
  6. Copie el valor de la variable adminConsoleUrlde salida .
  7. Pegue el valor en la barra de direcciones del explorador y presione Entrar para abrir la página de inicio de sesión de webLogic Administración istration Console.

Siga estos pasos para comprobar la conexión de la base de datos.

  1. Inicie sesión en la consola de WebLogic Administración istration con el nombre de usuario y la contraseña que proporcionó en el panel Aspectos básicos.

  2. En Estructura de dominio, seleccione Servicios, Orígenes de datos y, a continuación, pruebepasswordless.

  3. 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.

  4. Seleccione la pestaña Pruebas y, a continuación, seleccione el botón de radio situado junto al servidor deseado.

  5. Seleccione Probar origen de datos. Debería ver un mensaje que indica una prueba correcta, como se muestra en la captura de pantalla siguiente.

    Captura de pantalla del portal de webLogic Console que muestra una prueba correcta del origen de datos.

Limpieza de recursos

Si no necesita estos recursos, puede eliminarlos si realiza 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: