Настройка подключения к базе данных без пароля для приложений Java на серверах Oracle WebLogic

В этой статье показано, как настроить подключения к базе данных без пароля для приложений Java на Oracle WebLogic Server с помощью портал Azure.

В этом руководстве выполняются следующие задачи:

  • Подготовка ресурсов базы данных с помощью Azure CLI.
  • Включите администратора Microsoft Entra в базе данных.
  • Подготовьте управляемое удостоверение, назначаемое пользователем, и создайте для него пользователя базы данных.
  • Настройте подключение к базе данных без пароля в Oracle WebLogic с помощью портал Azure.
  • Проверьте подключение к базе данных.

Предложения поддерживают бессерверные подключения для баз данных Sql PostgreSQL, MySQL и Azure.

Необходимые компоненты

Создание или изменение группы ресурсов

Создайте группу ресурсов с помощью команды az group create. Так как группы ресурсов должны быть уникальными в пределах подписки, выберите уникальное имя. Простой способ создания уникальных имен — использовать сочетание ваших инициалов, текущей даты и некоторого идентификатора. Например, abc1228rg. В этом примере создается группа ресурсов с именем abc1228rg в расположении eastus :

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

Создание сервера базы данных и базы данных

Создайте гибкий сервер с помощью команды az mysql flexible-server create. В этом примере создается гибкий сервер с именем mysql20221201 администратора azureuser и паролем Secret123456администратора. Замените пароль вашими. Дополнительные сведения см. в статье "Создание гибкого сервера База данных Azure для MySQL с помощью 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

Создайте базу данных с помощью 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

После завершения команды вы увидите выходные данные, аналогичные следующему примеру:

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

Настройка администратора Microsoft Entra в базе данных

Теперь, когда вы создали базу данных, необходимо подготовить ее к поддержке бессерверных подключений. Для подключения без пароля требуется сочетание управляемых удостоверений для ресурсов Azure и проверки подлинности Microsoft Entra. Обзор управляемых удостоверений для ресурсов Azure см. в статье "Что такое управляемые удостоверения для ресурсов Azure?"

Сведения о взаимодействии гибкого сервера MySQL с управляемыми удостоверениями см. в разделе "Использование идентификатора Записи Майкрософт для проверки подлинности с помощью MySQL".

В следующем примере настраивается текущий пользователь Azure CLI в качестве учетной записи администратора Microsoft Entra. Чтобы включить проверку подлинности Azure, необходимо назначить удостоверение гибкому серверу MySQL.

Сначала создайте управляемое удостоверение с помощью az identity create и назначьте удостоверение серверу MySQL с помощью 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

Затем задайте текущего пользователя Azure CLI в качестве учетной записи администратора Microsoft Entra с помощью 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

Создание управляемого удостоверения, назначаемого пользователем

Затем в Azure CLI создайте удостоверение в подписке с помощью команды az identity create . Это управляемое удостоверение используется для подключения к базе данных.

az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myManagedIdentity

Чтобы настроить удостоверение на следующих шагах, используйте команду az identity show для хранения идентификатора клиента удостоверения в переменной оболочки.

# 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)

Создание пользователя базы данных для управляемого удостоверения

Теперь подключитесь к базе данных MySQL от имени администратора Microsoft Entra и создайте пользователя MySQL для управляемого удостоверения.

Сначала необходимо создать правило брандмауэра для доступа к серверу MySQL из клиента CLI. Выполните следующие команды, чтобы получить текущий IP-адрес.

export MY_IP=$(curl http://whatismyip.akamai.com)

Если вы работаете с подсистема Windows для Linux (WSL) с поддержкой VPN, следующая команда может вернуть неверный IPv4-адрес. Одним из способов получения IPv4-адреса является посещение whatismyipaddress.com. В любом случае задайте переменную MY_IP среды в качестве адреса IPv4, из которого требуется подключиться к базе данных.

Создайте временное правило брандмауэра с помощью 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}

Затем подготовьте файл .sql для создания пользователя базы данных для управляемого удостоверения. В следующем примере добавляется пользователь с именем identity-contoso входа и предоставляет пользователю права доступа к базе данных 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

Выполните файл .sql с помощью команды az mysql flexible-server execute. Маркер доступа можно получить с помощью команды 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"

Возможно, вам будет предложено установить rdbms-connect расширение, как показано в следующих выходных данных. Нажмите, y чтобы продолжить. Если вы не работаете с пользователем root , необходимо ввести пароль пользователя.

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:

Если файл .sql выполнен успешно, вы найдете выходные данные, аналогичные следующему примеру:

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

Управляемое удостоверение myManagedIdentity теперь имеет доступ к базе данных при проверке подлинности с помощью имени пользователя identity-contoso.

Если вы больше не хотите получить доступ к серверу с этого IP-адреса, можно удалить правило брандмауэра с помощью следующей команды.

az mysql flexible-server firewall-rule delete \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $MYSQL_NAME \
    --rule-name AllowCurrentMachineToConnect \
    --yes

Наконец, используйте следующую команду, чтобы получить строка подключения, которую вы используете в следующем разделе.

export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}

Настройка подключения к базе данных без пароля для Oracle WebLogic Server на виртуальных машинах Azure

В этом разделе показано, как настроить подключение к источнику данных без пароля с помощью предложений Azure Marketplace для Oracle WebLogic Server.

Сначала начните процесс развертывания предложения. Следующие предложения поддерживают подключения к базе данных без пароля.

Введите необходимые сведения в области "Основы " и других панелях, если вы хотите включить функции. Когда вы достигнете области базы данных , заполните конфигурацию без пароля, как показано на следующих шагах.

  1. Чтобы Подключение в базу данных?, нажмите кнопку "Да".
  2. В разделе параметров Подключение ion для выбора типа базы данных откройте раскрывающееся меню и выберите MySQL (с поддержкой подключения без пароля).
  3. Для имени JNDI входные тестопродаслы или ожидаемое значение.
  4. Для строки Подключение ion DataSource введите строка подключения, полученные в последнем разделе.
  5. Для имени пользователя базы данных введите имя пользователя базы данных управляемого удостоверения (значение ${IDENTITY_LOGIN_NAME}). В этом примере используется значение identity-contoso.
  6. Выберите "Использовать подключение к источнику данных без пароля".
  7. Для управляемого удостоверения, назначаемого пользователем, выберите созданное ранее управляемое удостоверение. В этом примере его имя — myManagedIdentity.

В разделе параметров Подключение ion должен выглядеть следующий снимок экрана, в котором в качестве примера используется кластер Oracle WebLogic Server на виртуальных машинах.

Снимок экрана: портал Azure с панелью

Теперь вы завершили настройку подключения без пароля. Вы можете продолжить заполнение следующих областей или выбрать "Просмотр и создание", а затем создать , чтобы развернуть предложение.

Проверка подключения к базе данных

Подключение к базе данных успешно настроено, если развертывание предложения завершается без ошибок.

Продолжая использовать кластер Oracle WebLogic Server на виртуальных машинах в качестве примера после завершения развертывания, выполните следующие действия в портал Azure, чтобы найти URL-адрес консоли Администратор.

  1. Найдите группу ресурсов, в которой вы развернули WLS.
  2. В разделе Параметры выберите "Развертывания".
  3. Выберите развертывание с максимальной продолжительностью. Это развертывание должно находиться в нижней части списка.
  4. Выберите Выходные данные.
  5. URL-адрес консоли webLogic Администратор istration — это значение выходных данных adminConsoleUrl.
  6. Скопируйте значение выходной переменной adminConsoleUrl.
  7. Вставьте значение в адресную строку браузера и нажмите клавишу ВВОД, чтобы открыть страницу входа в консоль WebLogic Администратор istration.

Чтобы проверить подключение к базе данных, выполните следующие действия.

  1. Войдите в консоль WebLogic Администратор istration с помощью имени пользователя и пароля, предоставленного на панели "Основные сведения".

  2. В разделе " Структура домена" выберите службы, источники данных, а затем testpasswordless.

  3. Перейдите на вкладку "Мониторинг", где состояние источника данных выполняется, как показано на следующем снимке экрана.

  4. Перейдите на вкладку "Тестирование", а затем нажмите переключатель рядом с нужным сервером.

  5. Выберите Источник тестовых данных. Появится сообщение, указывающее на успешный тест, как показано на следующем снимке экрана.

    Снимок экрана: портал WebLogic Console, на котором показан успешный тест источника данных.

Очистка ресурсов

Если эти ресурсы не нужны, их можно удалить, выполнив следующие команды:

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

Следующие шаги

Дополнительные сведения о запуске WLS на AKS или виртуальных машинах см. по следующим ссылкам: