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
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Use Azure Cloud Shell mediante 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 2.43.0 o posterior para ejecutar 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. Consulte Inicio de sesión con la CLI de Azure para ver otras opciones de inicio de sesión.
- 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, ejecute az upgrade.
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 rol de Azure (RBAC de Azure)? Para más información sobre los roles específicos requeridos por la oferta de Marketplace de Oracle WebLogic, consulte Roles integrados de Azure.
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 Secret123456
de 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:
- Oracle WebLogic Server en Azure Kubernetes Service
- Clúster de Oracle WebLogic Server en máquinas virtuales
- Oracle WebLogic Server con Administración Server en máquinas virtuales
- Clúster dinámico de Oracle WebLogic Server en máquinas virtuales
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.
- Para Conectar a la base de datos, seleccione Sí.
- 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).
- En Nombre JNDI, escriba testpasswordless o su valor esperado.
- En DataSource Conectar ion String, escriba el 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 esidentity-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 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.
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.
- 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 webLogic Administración istration Console es el valor de la salida adminConsoleUrl.
- Copie el valor de la variable
adminConsoleUrl
de salida . - 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.
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.
En Estructura de dominio, seleccione Servicios, Orígenes de datos y, a continuación, pruebepasswordless.
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 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:
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de