Sdílet prostřednictvím


Konfigurace připojení databáze bez hesla pro aplikace v Javě na Serveru 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 připojení pro databáze PostgreSQL, MySQL a Azure SQL.

Požadavky

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí az group create příkazu. 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 abc1228rg na umístění eastus:

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, s uživatelem azureuser a heslem Secret123456. 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í 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, musíte 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 dokumentaci ke službě Azure Database for 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 s az identity create a přiřaďte ji k serveru MySQL pomocí 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í 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řte spravovanou identitu přiřazenou uživatelem

V dalším kroku v Azure CLI pomocí příkazu az identity create vytvořte identitu ve vašem předplatném. 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, použijte příkaz az identity show k uložení ID klienta identity do shell proměnné.

# 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

Nejprve musíte vytvořit pravidlo brány firewall pro přístup k databázovému serveru 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ému 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. Nastavte proměnnou prostředí MY_IP jako adresu IPv4, ze které se chcete připojit k databázi. Bránu firewall databáze nakonfigurujete s touto IP adresou později.

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

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

Dále 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 pomocí příkazu az mysql flexible-server execute. Přístupový token můžete načíst 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 rozšíření rdbms-connect, jak je znázorněno v následujícím výstupu. Pokračujte stisknutím y. 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í, bude 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ískejte 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 do provozu. Následující nabídky podporují připojení k databázi bez hesla:

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

  1. V případě připojení k databázi vyberte Ano.
  2. V části Nastavení připojeníZvolte typ databázev rozevírací nabídce vyberte MySQL (s podporou pro připojení bez hesla).
  3. Pro název JNDIzadejte testpasswordless nebo očekávanou hodnotu.
  4. Pro připojovací řetězec zdroje dat zadejte řetězec, který jste získali v poslední části.
  5. Pro Uživatelské jméno databázezadejte uživatelské jméno databáze vaší spravované identity, což je hodnota ${IDENTITY_LOGIN_NAME}. V tomto příkladu je hodnota identity-contoso.
  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 jeho název myManagedIdentity.

Čá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 ve vyplňování následujících podoken nebo vybrat Zkontrolovat a vytvořit a poté Vytvořit pro nasazení nabídky.

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

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

Pokud chcete na virtuálních počítačích pokračovat v clusteru Serveru Oracle WebLogic, postupujte například po dokončení nasazení pomocí těchto kroků na webu Azure Portal a vyhledejte adresu URL konzoly pro správu.

  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 pro správu WebLogic 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 konzoly pro správu WebLogic.

Pomocí následujících kroků ověřte připojení k databázi:

  1. Přihlaste se ke konzole pro správu 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ěno, jak je znázorněno na následujícím snímku obrazovky:

  4. Vyberte záložku Testování a následně vyberte přepínač vedle požadovaného serveru.

  5. Vyberte Zdroj dat pro testování. 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: