Konfigurace připojení databáze bez hesel pro aplikace Java na serverech Oracle WebLogic

V tomto článku se dozvíte, jak nakonfigurovat připojení databáze bez hesla pro aplikace v Javě na serveru Oracle WebLogic pomocí webu Azure Portal.

V této příručce provedete následující úlohy:

  • Zřízení databázových prostředků pomocí Azure CLI
  • Povolte správce Microsoft Entra v databázi.
  • Zřiďte spravovanou identitu přiřazenou uživatelem a vytvořte pro ni uživatele databáze.
  • Nakonfigurujte připojení databáze bez hesla v nabídkách Oracle WebLogic pomocí webu Azure Portal.
  • Ověřte připojení k databázi.

Nabízí podporu bez hesel pro databáze PostgreSQL, MySQL a Azure SQL.

Požadavky

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create. Vzhledem k tomu, že skupiny prostředků musí být v rámci předplatného jedinečné, vyberte jedinečný název. Jednoduchým způsobem, jak mít jedinečné názvy, je použít kombinaci iniciály, dnešního data a identifikátoru. Například abc1228rg. Tento příklad vytvoří skupinu prostředků pojmenovanou abc1228rgeastus v umístění:

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

Vytvoření databázového serveru a databáze

Vytvořte flexibilní server pomocí příkazu az mysql flexible-server create . Tento příklad vytvoří flexibilní server s názvem mysql20221201 správce a azureuser heslem Secret123456správce . Heslo nahraďte svým. Další informace najdete v tématu Vytvoření flexibilního serveru Azure Database for MySQL pomocí 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

Vytvořte databázi pomocí příkazu 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

Po dokončení příkazu by se měl zobrazit výstup podobný následujícímu příkladu:

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

Konfigurace správce Microsoft Entra pro vaši databázi

Teď, když jste databázi vytvořili, je potřeba ji připravit na podporu připojení bez hesla. Připojení bez hesla vyžaduje kombinaci spravovaných identit pro prostředky Azure a ověřování Microsoft Entra. Přehled spravovaných identit pro prostředky Azure najdete v tématu Co jsou spravované identity pro prostředky Azure?

Informace o interakci flexibilního serveru MySQL se spravovanými identitami najdete v tématu Použití ID Microsoft Entra pro ověřování s MySQL.

Následující příklad nakonfiguruje aktuálního uživatele Azure CLI jako účet správce Microsoft Entra. Pokud chcete povolit ověřování Azure, je potřeba přiřadit identitu flexibilnímu serveru MySQL.

Nejprve vytvořte spravovanou identitu pomocí příkazu az identity create a přiřaďte ji k serveru MySQL pomocí příkazu 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

Pak nastavte aktuálního uživatele Azure CLI jako účet správce Microsoft Entra pomocí příkazu 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

Vytvoření spravované identity přiřazené uživatelem

Dále v Azure CLI vytvořte identitu ve vašem předplatném pomocí příkazu az identity create . Tuto spravovanou identitu použijete pro připojení k databázi.

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

Pokud chcete nakonfigurovat identitu v následujících krocích, pomocí příkazu az identity show uložte ID klienta identity do proměnné prostředí.

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

Vytvoření databázového uživatele pro spravovanou identitu

Teď se připojte jako uživatel správce Microsoft Entra k vaší databázi MySQL a vytvořte uživatele MySQL pro vaši spravovanou identitu.

Nejprve musíte vytvořit pravidlo brány firewall pro přístup k serveru MySQL z klienta rozhraní příkazového řádku. Spuštěním následujících příkazů získejte aktuální IP adresu.

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

Pokud pracujete na Subsystém Windows pro Linux (WSL) s povolenou sítí VPN, může následující příkaz vrátit nesprávnou adresu IPv4. Jedním ze způsobů, jak získat adresu IPv4, je návštěva whatismyipaddress.com. V každém případě nastavte proměnnou MY_IP prostředí jako adresu IPv4, ze které se chcete připojit k databázi.

Vytvořte dočasné pravidlo brány firewall pomocí příkazu 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}

Pak připravte soubor .sql k vytvoření uživatele databáze pro spravovanou identitu. Následující příklad přidá uživatele s přihlašovacím jménem identity-contoso a udělí uživateli oprávnění pro přístup k databázi 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

Spusťte soubor .sql příkazem az mysql flexible-server execute. Přístupový token můžete získat pomocí příkazu 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"

Může se zobrazit výzva k instalaci rdbms-connect rozšíření, jak je znázorněno v následujícím výstupu. Pokračujte stisknutím y klávesy. Pokud s uživatelem root nepracujete, musíte zadat heslo uživatele.

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:

Pokud se soubor .sql úspěšně spustí, zjistíte výstup podobný následujícímu příkladu:

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

Spravovaná identita myManagedIdentity má nyní přístup k databázi při ověřování pomocí uživatelského jména identity-contoso.

Pokud už nechcete získat přístup k serveru z této IP adresy, můžete pravidlo brány firewall odebrat pomocí následujícího příkazu.

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

Nakonec pomocí následujícího příkazu získáte připojovací řetězec, které použijete v další části.

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

Konfigurace připojení databáze bez hesla pro Oracle WebLogic Server na virtuálních počítačích Azure

V této části se dozvíte, jak nakonfigurovat připojení zdroje dat bez hesla pomocí nabídek Azure Marketplace pro Oracle WebLogic Server.

Nejprve zahajte proces nasazení nabídky. Následující nabídky podporují připojení k databázi bez hesla:

Pokud chcete povolit funkce, vyplňte požadované informace v podokně Základy a další podokna. Když se dostanete do podokna Databáze , vyplňte konfiguraci bez hesla, jak je znázorněno v následujících krocích.

  1. Chcete-li Připojení databázi? vyberte Ano.
  2. V části Připojení nastavení pro volbu typu databáze otevřete rozevírací nabídku a pak vyberte MySQL (s podporou pro připojení bez hesla).
  3. Jako název JNDI zadejte testpasswordless nebo očekávanou hodnotu.
  4. Do pole DataSource Připojení ion String zadejte připojovací řetězec, které jste získali v poslední části.
  5. Jako uživatelské jméno databáze zadejte uživatelské jméno vaší spravované identity (hodnota ${IDENTITY_LOGIN_NAME}). V tomto příkladu je identity-contosohodnota .
  6. Vyberte Použít připojení zdroje dat bez hesla.
  7. U spravované identity přiřazené uživatelem vyberte spravovanou identitu, kterou jste vytvořili dříve. V tomto příkladu je myManagedIdentityjeho název .

Část nastavení Připojení by měla vypadat jako na následujícím snímku obrazovky, který jako příklad používá cluster Serveru Oracle WebLogic na virtuálních počítačích.

Snímek obrazovky webu Azure Portal zobrazující podokno Konfigurace databáze na stránce Vytvořit Oracle WebLogic Server na virtuálních počítačích

Dokončili jste konfiguraci připojení bez hesla. Můžete pokračovat v vyplňování následujících podoken nebo vybrat Zkontrolovat a vytvořit a pak vytvořit a nasadit nabídku.

Ověření připojení k databázi

Připojení k databázi se úspěšně nakonfiguruje, pokud se nasazení nabídky dokončí bez chyby.

Po dokončení nasazení na webu Azure Portal na virtuálních počítačích pokračujte v clusteru serveru Oracle WebLogic a najděte adresu URL konzoly Správa.

  1. Vyhledejte skupinu prostředků, ve které jste nasadili WLS.
  2. V části Nastavení vyberte Nasazení.
  3. Vyberte nasazení s nejdelší dobou trvání. Toto nasazení by mělo být v dolní části seznamu.
  4. Vyberte Výstupy.
  5. Adresa URL konzoly WebLogic Správa istrace je hodnota výstupu adminConsoleUrl.
  6. Zkopírujte hodnotu výstupní proměnné adminConsoleUrl.
  7. Vložte hodnotu do adresního řádku prohlížeče a stisknutím klávesy Enter otevřete přihlašovací stránku Správa konzoly WebLogic.

Pomocí následujícího postupu ověřte připojení k databázi.

  1. Přihlaste se ke konzole Správa istrace WebLogic pomocí uživatelského jména a hesla, které jste zadali v podokně Základy.

  2. V části Domain Structure (Struktura domény) vyberte Services (Služby), Data Sources (Zdroje dat) a pak testpasswordless (Testpasswordless).

  3. Vyberte kartu Monitorování, kde je stav zdroje dat spuštěný, jak je znázorněno na následujícím snímku obrazovky.

  4. Vyberte kartu Testování a pak vyberte přepínač vedle požadovaného serveru.

  5. Vyberte Testovací zdroj dat. Měla by se zobrazit zpráva označující úspěšný test, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky portálu konzoly WebLogic zobrazující úspěšný test zdroje dat

Vyčištění prostředků

Pokud tyto prostředky nepotřebujete, můžete je odstranit pomocí následujících příkazů:

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

Další kroky

Další informace o spouštění služby WLS na AKS nebo virtuálních počítačích najdete na těchto odkazech: