Share via


Configurar conexões de banco de dados sem senha para aplicativos Java em Oracle WebLogic Servers

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.

O oferece suporte a conexões sem senha para bancos de dados PostgreSQL, MySQL e Azure SQL.

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 o seu banco de dados

Agora que você criou o banco de dados, precisa prepará-lo 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 MySQL Flexible Server interage com identidades gerenciadas, consulte Usar o Microsoft Entra ID para autenticação com o 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 crie 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 usuário atual da CLI do Azure 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 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

Agora, 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.

Primeiro, é necessário criar uma regra de firewall para acessar o servidor MySQL a partir do seu 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. Em qualquer caso, defina a variável MY_IP de ambiente como o endereço IPv4 a partir do qual você deseja se conectar ao banco de dados.

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 identity-contoso de logon 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 obter 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 rdbms-connect extensão, conforme mostrado na saída a seguir. Pressione y para continuar. Se você não estiver trabalhando com o root usuário, precisará inserir a senha do usuário.

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, você encontrará uma saída semelhante ao exemplo a seguir:

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

A identidade myManagedIdentity gerenciada agora tem acesso ao banco de dados ao autenticar com o nome identity-contosode usuário .

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:

Preencha as informações necessárias no painel Noções básicas e em outros painéis se quiser habilitar os recursos. Quando chegar ao painel Banco de dados , preencha a configuração sem senha, conforme mostrado nas etapas a seguir.

  1. Em Conectar ao banco de dados?, selecione Sim.
  2. Em Configurações de conexão, para Escolher tipo de banco de dados, abra o menu suspenso e selecione MySQL (com suporte para conexão sem senha).
  3. Para JNDI Name, insira testpasswordless ou o valor esperado.
  4. Para DataSource Connection String, 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 (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.

Agora 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. A URL do WebLogic Administration Console é o valor da saída adminConsoleUrl .
  6. Copie o valor da variável adminConsoleUrlde saída .
  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 etapas a seguir 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 Monitoramento , onde o estado da fonte de dados é Em execução, conforme mostrado na captura de tela a seguir.

  4. Selecione a guia Teste e, em seguida, selecione o botão de opção 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.

Clean up resources (Limpar recursos)

Se você não precisar desses recursos, poderá excluí-los executando 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: