Partilhar via


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

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 Secret123456admin . 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:

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 , insira a configuração sem senha, conforme mostrado nas seguintes etapas:

  1. Em Conectar ao banco de dados?, selecione Sim.
  2. 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).
  3. Para Nome JNDI, insira testpasswordless ou o valor esperado.
  4. Para Cadeia de Conexão DataSource, insira a cadeia de conexão obtida na última seção.
  5. 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.
  6. Selecione Usar conexão de fonte de dados sem senha.
  7. 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.

Captura de tela do portal do Azure mostrando o painel Configurar banco de dados da página Criar Oracle WebLogic Server em VMs.

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.

  1. Localize o grupo de recursos no qual você implantou o WLS.
  2. Em Configurações, selecione Implantações.
  3. Selecione a implantação com a maior duração. Essa implantação deve estar na parte inferior da lista.
  4. Selecione Saídas.
  5. O URL da Consola de Administração WebLogic é o valor da saída adminConsoleUrl.
  6. Copie o valor da variável de saída adminConsoleUrl.
  7. 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:

  1. Entre no WebLogic Administration Console com o nome de usuário e a senha fornecidos no painel Noções básicas .

  2. Em Estrutura de Domínio, selecione Serviços, Fontes de Dados e testpasswordless.

  3. Selecione a guia de Monitoramento, onde o estado da fonte de dados é Executando, conforme mostrado na captura de tela a seguir:

  4. Selecione o separador Testes e, em seguida, selecione o botão de rádio ao lado do servidor desejado.

  5. Selecione Testar fonte de dados. Você verá uma mensagem indicando um teste bem-sucedido, conforme mostrado na captura de tela a seguir:

    Captura de tela do portal WebLogic Console mostrando um teste bem-sucedido da fonte de dados.

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: