Настройка подключений к базе данных без пароля для приложений Java на сервере Oracle WebLogic Server
В этой статье показано, как настроить подключения к базе данных без пароля для приложений Java на Oracle WebLogic Server с помощью портал Azure.
В этом руководстве выполняются следующие задачи:
- Подготовка ресурсов базы данных с помощью Azure CLI.
- Включите администратора Microsoft Entra в базе данных.
- Подготовьте управляемое удостоверение, назначаемое пользователем, и создайте для него пользователя базы данных.
- Настройте подключение к базе данных без пароля в Oracle WebLogic с помощью портал Azure.
- Проверьте подключение к базе данных.
Предложения поддерживают бессерверные подключения для баз данных Sql PostgreSQL, MySQL и Azure.
Необходимые компоненты
Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.
Используйте Azure Cloud Shell с помощью среды Bash. Убедитесь, что azure CLI версии 2.43.0 или выше.
Если вы предпочитаете, установите Azure CLI 2.43.0 или более поздней версии для выполнения команд Azure CLI.
- Если вы используете локальную установку, выполните вход с помощью команды Azure CLI az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. См . сведения о входе с помощью Azure CLI для других параметров входа.
- Если появится запрос, установите расширения Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
- Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Убедитесь, что удостоверение Azure, используемое для входа и завершения работы этой статьи, имеет роль владельца в текущей подписке или роли администратора доступа пользователей и участника в текущей подписке. Общие сведения о ролях Azure см. в статье "Что такое управление доступом на основе ролей Azure" (Azure RBAC)? Дополнительные сведения о конкретных ролях, необходимых предложению Oracle WebLogic Marketplace, см. в статье о встроенных ролях 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.
Сначала начните процесс развертывания предложения. Следующие предложения поддерживают подключения к базе данных без пароля.
- Oracle WebLogic Server на Служба Azure Kubernetes (AKS)
- Кластер Oracle WebLogic Server на виртуальных машинах
- Oracle WebLogic Server с сервером администрирования на виртуальных машинах
- Динамический кластер Oracle WebLogic Server на виртуальных машинах
Введите необходимые сведения в области "Основы " и других панелях, если вы хотите включить функции. Когда вы достигнете области базы данных , заполните конфигурацию без пароля, как показано на следующих шагах.
- Для подключения к базе данных нажмите кнопку "Да".
- В разделе "Параметры подключения" для параметра "Выбор типа базы данных" откройте раскрывающееся меню и выберите MySQL (с поддержкой подключения без пароля).
- Для имени JNDI входные тестопродаслы или ожидаемое значение.
- Для строки подключения DataSource введите строка подключения, полученные в последнем разделе.
- Для имени пользователя базы данных введите имя пользователя базы данных управляемого удостоверения (значение
${IDENTITY_LOGIN_NAME}
). В этом примере используется значениеidentity-contoso
. - Выберите "Использовать подключение к источнику данных без пароля".
- Для управляемого удостоверения, назначаемого пользователем, выберите созданное ранее управляемое удостоверение. В этом примере его имя —
myManagedIdentity
.
В разделе параметров подключения должен выглядеть следующий снимок экрана, в котором в качестве примера используется кластер Oracle WebLogic Server на виртуальных машинах .
Теперь вы завершили настройку подключения без пароля. Вы можете продолжить заполнение следующих областей или выбрать "Просмотр и создание", а затем создать , чтобы развернуть предложение.
Проверка подключения к базе данных
Подключение к базе данных успешно настроено, если развертывание предложения завершается без ошибок.
Продолжая использовать кластер Oracle WebLogic Server на виртуальных машинах в качестве примера после завершения развертывания, выполните следующие действия в портал Azure, чтобы найти URL-адрес консоли администрирования.
- Найдите группу ресурсов, в которой вы развернули WLS.
- В разделе "Параметры" выберите "Развертывания".
- Выберите развертывание с максимальной продолжительностью. Это развертывание должно находиться в нижней части списка.
- Выберите Выходные данные.
- URL-адрес консоли администрирования WebLogic — это значение выходных данных adminConsoleUrl .
- Скопируйте значение выходной переменной
adminConsoleUrl
. - Вставьте значение в адресную строку браузера и нажмите клавишу ВВОД , чтобы открыть страницу входа в консоль администрирования WebLogic.
Чтобы проверить подключение к базе данных, выполните следующие действия.
Войдите в консоль администрирования WebLogic с помощью имени пользователя и пароля, предоставленного на панели "Основные сведения".
В разделе " Структура домена" выберите службы, источники данных, а затем testpasswordless.
Перейдите на вкладку "Мониторинг", где состояние источника данных выполняется, как показано на следующем снимке экрана.
Перейдите на вкладку "Тестирование", а затем нажмите переключатель рядом с нужным сервером.
Выберите Источник тестовых данных. Появится сообщение, указывающее на успешный тест, как показано на следующем снимке экрана.
Очистка ресурсов
Если эти ресурсы не нужны, их можно удалить, выполнив следующие команды:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Следующие шаги
Дополнительные сведения о запуске WLS на AKS или виртуальных машинах см. по следующим ссылкам: