Configurar conexões de banco de dados sem senha para aplicativos Java no Oracle WebLogic Server
Este artigo mostra como configurar conexões de banco de dados sem senha para aplicativos Java em ofertas do Oracle WebLogic Server com o portal do Azure.
Neste guia, você realiza as seguintes tarefas:
- Provisione recursos de banco de dados usando a CLI do Azure.
- Habilite o administrador do Microsoft Entra no banco de dados.
- Provisione uma identidade gerenciada atribuída pelo usuário e crie um usuário de banco de dados para ela.
- Configure uma conexão de banco de dados sem senha nas ofertas do Oracle WebLogic com o portal do Azure.
- Valide a conexão do banco de dados.
Este serviço suporta conexões sem senha para bancos de dados PostgreSQL, MySQL e SQL do Azure.
Pré-requisitos
Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Use Azure Cloud Shell usando o ambiente Bash. Verifique se a versão da CLI do Azure é 2.43.0 ou superior.
Se preferir, instale a CLI do Azure 2.43.0 ou superior para executar comandos da CLI do Azure.
- Se você estiver usando uma instalação local, entre com a CLI do Azure usando o comando
az login
. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Consulte Entrar com a CLI do Azure para obter outras opções de entrada. - Quando lhe for pedido, instale as extensões do CLI do Azure durante a primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
- Execute
az version
para localizar a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, executeaz upgrade
.
- Se você estiver usando uma instalação local, entre com a CLI do Azure usando o comando
Verifique se a identidade do Azure que você usa para entrar e concluir este artigo tem a função Proprietário na assinatura atual ou as funções de Colaborador e Administrador de Acesso de Usuário na assinatura atual. Para obter uma visão geral das funções do Azure, consulte O que é o controle de acesso baseado em função do Azure (Azure RBAC)? Para obter detalhes sobre as funções específicas exigidas pela oferta de mercado do Oracle WebLogic, consulte Funções internas do Azure.
Criar um grupo de recursos
Crie um grupo de recursos com az group create
. Como os grupos de recursos devem ser exclusivos dentro de uma assinatura, escolha um nome exclusivo. Uma maneira fácil de ter nomes exclusivos é usar uma combinação de suas iniciais, a data de hoje e algum identificador - por exemplo, abc1228rg
. Este exemplo cria um grupo de recursos nomeado abc1228rg
no eastus
local:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Criar um servidor de banco de dados e um banco de dados
Crie um servidor flexível com o comando az mysql flexible-server create
. Este exemplo cria um servidor flexível nomeado mysql20221201
com usuário azureuser
admin e senha Secret123456
admin . Substitua a senha pela sua. Para obter mais informações, consulte Criar um Banco de Dados do Azure para o Servidor Flexível MySQL usando a CLI do 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
Crie um banco de dados com 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
Quando o comando for concluído, você verá uma saída semelhante ao exemplo a seguir:
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 um administrador do Microsoft Entra para seu banco de dados
Agora que você criou o banco de dados, você precisa deixá-lo pronto para suportar conexões sem senha. Uma conexão sem senha requer uma combinação de identidades gerenciadas para recursos do Azure e autenticação do Microsoft Entra. Para obter uma visão geral das identidades gerenciadas para recursos do Azure, consulte O que são identidades gerenciadas para recursos do Azure?
Para obter informações sobre como o Servidor Flexível do MySQL interage com identidades gerenciadas, consulte a documentação do Banco de Dados do Azure para MySQL.
O exemplo a seguir configura o usuário atual da CLI do Azure como uma conta de administrador do Microsoft Entra. Para habilitar a autenticação do Azure, é necessário atribuir uma identidade ao Servidor Flexível MySQL.
Primeiro, crie uma identidade gerenciada com az identity create
e atribua a identidade ao servidor MySQL com 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
Em seguida, defina o utilizador atual do Azure CLI como a conta de administrador do Microsoft Entra com 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
Criar uma identidade gerida atribuída pelo utilizador
Em seguida, na CLI do Azure, crie uma identidade em sua assinatura usando o comando az identity create
. Você usa essa identidade gerenciada para se conectar ao seu banco de dados.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Para configurar a identidade nas etapas a seguir, use o comando az identity show
para armazenar o ID do cliente da identidade em uma variável 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)
Criar um usuário de banco de dados para sua identidade gerenciada
Primeiro, é necessário criar uma regra de firewall para acessar o servidor de banco de dados a partir do cliente CLI. Execute os seguintes comandos para obter o seu endereço IP atual:
export MY_IP=$(curl http://whatismyip.akamai.com)
Se você estiver trabalhando no Windows Subsystem for Linux (WSL) com VPN habilitada, o comando a seguir pode retornar um endereço IPv4 incorreto. Uma maneira de obter seu endereço IPv4 é visitando whatismyipaddress.com. Defina a variável de ambiente MY_IP
como o endereço IPv4 a partir do qual você deseja se conectar ao banco de dados. Configure o firewall do banco de dados com esse endereço IP mais tarde.
Conecte-se como o usuário administrador do Microsoft Entra ao seu banco de dados MySQL e crie um usuário MySQL para sua identidade gerenciada.
Crie uma regra de firewall temporária com 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}
Em seguida, prepare um arquivo SQL para criar um usuário de banco de dados para a identidade gerenciada. O exemplo a seguir adiciona um usuário com nome de logon identity-contoso
e concede ao usuário privilégios para acessar o banco de dados 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
Execute o arquivo SQL com o comando az mysql flexible-server execute
. Você pode recuperar seu token de acesso com o 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"
Você pode ser solicitado a instalar a extensão rdbms-connect
, conforme mostrado na saída a seguir. Pressione y para continuar. Se não estiver a trabalhar com o utilizador root
, precisará de inserir a palavra-passe do utilizador.
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:
Se o arquivo SQL for executado com êxito, sua saída será semelhante ao exemplo a seguir:
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
A identidade myManagedIdentity
gerida agora tem acesso à base de dados ao autenticar com o nome de utilizador identity-contoso
.
Se já não pretender aceder ao servidor a partir deste endereço IP, pode remover a regra de firewall utilizando o seguinte comando:
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Finalmente, use o seguinte comando para obter a cadeia de conexão que você usa na próxima seção:
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Configurar uma conexão de banco de dados sem senha para o Oracle WebLogic Server em VMs do Azure
Esta seção mostra como configurar a conexão de fonte de dados sem senha usando as ofertas do Azure Marketplace para o Oracle WebLogic Server.
Primeiro, comece o processo de implantação de uma oferta. O seguinte oferece suporte a conexões de banco de dados sem senha:
- Oracle WebLogic Server no Serviço Kubernetes do Azure (AKS)
- Oracle WebLogic Server Cluster em VMs
- Oracle WebLogic Server com Admin Server em VMs
- Oracle WebLogic Server Dynamic Cluster em VMs
Insira as informações necessárias no painel Noções básicas e noutros painéis se quiser ativar as funcionalidades. Quando você chegar ao painel Banco de Dados
- Em Conectar ao banco de dados?, selecione Sim.
- Em Configurações de conexão, para Escolha o tipo de banco de dados, no menu suspenso, selecione MySQL (com suporte para conexão sem senha).
- Para Nome JNDI, insira testpasswordless ou o valor esperado.
- Para Cadeia de Conexão DataSource, insira a cadeia de conexão obtida na última seção.
- Para nome de usuário do banco de dados, insira o nome de usuário do banco de dados da sua identidade gerenciada, que é o valor de
${IDENTITY_LOGIN_NAME}
. Neste exemplo, o valor é identity-contoso. - Selecione Usar conexão de fonte de dados sem senha.
- Em Identidade gerenciada atribuída ao usuário, selecione a identidade gerenciada criada anteriormente. Neste exemplo, seu nome é myManagedIdentity.
A seção Configurações de conexão deve se parecer com a captura de tela a seguir, que usa o Oracle WebLogic Server Cluster em VMs como exemplo.
Você terminou de configurar a conexão sem senha. Pode continuar a preencher os seguintes painéis ou selecionar Rever + criar e, em seguida , Criar para implementar a oferta.
Verificar a conexão do banco de dados
A conexão de banco de dados será configurada com êxito se a implantação da oferta for concluída sem erros.
Continuando a usar o Oracle WebLogic Server Cluster em VMs como exemplo, após a conclusão da implantação, siga estas etapas no portal do Azure para localizar a URL do Admin Console.
- Localize o grupo de recursos no qual você implantou o WLS.
- Em Configurações, selecione Implantações.
- Selecione a implantação com a maior duração. Essa implantação deve estar na parte inferior da lista.
- Selecione Saídas.
- O URL da Consola de Administração WebLogic é o valor da saída adminConsoleUrl.
- Copie o valor da variável de saída adminConsoleUrl.
- Cole o valor na barra de endereço do navegador e pressione Enter para abrir a página de entrada do WebLogic Administration Console.
Use as seguintes etapas para verificar a conexão do banco de dados:
Entre no WebLogic Administration Console com o nome de usuário e a senha fornecidos no painel Noções básicas .
Em Estrutura de Domínio, selecione Serviços, Fontes de Dados e testpasswordless.
Selecione a guia de Monitoramento, onde o estado da fonte de dados é Executando, conforme mostrado na captura de tela a seguir:
Selecione o separador Testes e, em seguida, selecione o botão de rádio ao lado do servidor desejado.
Selecione Testar fonte de dados. Você verá uma mensagem indicando um teste bem-sucedido, conforme mostrado na captura de tela a seguir:
Limpar recursos
Se você não precisar desses recursos, poderá excluí-los usando os seguintes comandos:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Próximos passos
Saiba mais sobre como executar WLS em AKS ou máquinas virtuais seguindo estes links: