Konfigurowanie bez hasła połączeń bazy danych dla aplikacji Java na serwerze Oracle WebLogic Server
W tym artykule pokazano, jak skonfigurować bez hasła połączenia bazy danych dla aplikacji Java w ofertach oracle WebLogic Server w witrynie Azure Portal.
W tym przewodniku wykonasz następujące zadania:
- Aprowizuj zasoby bazy danych przy użyciu interfejsu wiersza polecenia platformy Azure.
- Włącz administratora firmy Microsoft Entra w bazie danych.
- Aprowizuj tożsamość zarządzaną przypisaną przez użytkownika i utwórz dla niej użytkownika bazy danych.
- Skonfiguruj połączenie bez hasła z bazą danych w ofertach Oracle WebLogic za pomocą witryny Azure Portal.
- Zweryfikuj połączenie z bazą danych.
Oferuje ona obsługę połączeń bez hasła dla baz danych PostgreSQL, MySQL i Azure SQL Database.
Wymagania wstępne
Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Użyj usługi Azure Cloud Shell przy użyciu środowiska powłoki Bash. Upewnij się, że interfejs wiersza polecenia platformy Azure ma wersję 2.43.0 lub nowszą.
Jeśli wolisz, zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.43.0 lub nowszej, aby uruchomić polecenia interfejsu wiersza polecenia platformy Azure.
- Jeśli korzystasz z instalacji lokalnej, zaloguj się za pomocą polecenia az login interfejsu wiersza polecenia platformy Azure. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure, aby uzyskać inne opcje logowania.
- Po wyświetleniu monitu przy pierwszym użyciu zainstaluj rozszerzenia interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
- Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Upewnij się, że tożsamość platformy Azure używana do logowania się i ukończenie tego artykułu ma rolę Właściciel w bieżącej subskrypcji lub rolę Współautor i Administrator dostępu użytkowników w bieżącej subskrypcji. Aby zapoznać się z omówieniem ról platformy Azure, zobacz Co to jest kontrola dostępu oparta na rolach platformy Azure (Azure RBAC)? Aby uzyskać szczegółowe informacje na temat określonych ról wymaganych przez ofertę oracle WebLogic marketplace, zobacz Role wbudowane platformy Azure.
Tworzenie grupy zasobów
Utwórz grupę zasobów za pomocą polecenia az group create. Ponieważ grupy zasobów muszą być unikatowe w ramach subskrypcji, wybierz unikatową nazwę. Łatwym sposobem na używanie unikatowych nazw jest użycie kombinacji inicjałów, dzisiejszej daty i identyfikatora. Na przykład abc1228rg. W tym przykładzie abc1228rg
zostanie utworzona grupa zasobów o nazwie eastus
w lokalizacji:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Tworzenie serwera bazy danych i bazy danych
Utwórz serwer elastyczny za pomocą polecenia az mysql flexible-server create . W tym przykładzie tworzony jest serwer elastyczny o nazwie z mysql20221201
hasłem azureuser
administratora Secret123456
i administratora. Zastąp hasło twoimi. Aby uzyskać więcej informacji, zobacz Create an Azure Database for MySQL Flexible Server using Azure CLI (Tworzenie serwera elastycznego usługi Azure Database for MySQL przy użyciu interfejsu wiersza polecenia platformy 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
Utwórz bazę danych za pomocą polecenia 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 zakończeniu wykonywania polecenia powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:
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"
}
Konfigurowanie administratora usługi Microsoft Entra w bazie danych
Po utworzeniu bazy danych musisz przygotować ją do obsługi połączeń bez hasła. Połączenie bez hasła wymaga kombinacji tożsamości zarządzanych dla zasobów platformy Azure i uwierzytelniania firmy Microsoft Entra. Aby zapoznać się z omówieniem tożsamości zarządzanych dla zasobów platformy Azure, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure?
Aby uzyskać informacje na temat interakcji serwera elastycznego MySQL z tożsamościami zarządzanymi, zobacz Use Microsoft Entra ID for authentication with MySQL (Używanie identyfikatora Entra firmy Microsoft do uwierzytelniania za pomocą programu MySQL).
Poniższy przykład umożliwia skonfigurowanie bieżącego użytkownika interfejsu wiersza polecenia platformy Azure jako konta administratora firmy Microsoft Entra. Aby włączyć uwierzytelnianie platformy Azure, należy przypisać tożsamość do serwera elastycznego MySQL.
Najpierw utwórz tożsamość zarządzaną za pomocą polecenia az identity create i przypisz tożsamość do serwera MySQL za pomocą polecenia 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
Następnie ustaw bieżącego użytkownika interfejsu wiersza polecenia platformy Azure jako konto administratora usługi Microsoft Entra za pomocą polecenia 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
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Następnie w interfejsie wiersza polecenia platformy Azure utwórz tożsamość w ramach subskrypcji przy użyciu polecenia az identity create . Ta tożsamość zarządzana służy do nawiązywania połączenia z bazą danych.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Aby skonfigurować tożsamość w poniższych krokach, użyj polecenia az identity show , aby zapisać identyfikator klienta tożsamości w zmiennej powłoki.
# 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)
Tworzenie użytkownika bazy danych dla tożsamości zarządzanej
Teraz połącz się jako użytkownik administratora firmy Microsoft Entra z bazą danych MySQL i utwórz użytkownika MySQL dla swojej tożsamości zarządzanej.
Najpierw należy utworzyć regułę zapory w celu uzyskania dostępu do serwera MySQL z poziomu klienta interfejsu wiersza polecenia. Uruchom następujące polecenia, aby uzyskać bieżący adres IP.
export MY_IP=$(curl http://whatismyip.akamai.com)
Jeśli pracujesz nad Podsystem Windows dla systemu Linux (WSL) z włączoną siecią VPN, następujące polecenie może zwrócić nieprawidłowy adres IPv4. Jednym ze sposobów uzyskania adresu IPv4 jest wizyta whatismyipaddress.com. W każdym razie ustaw zmienną środowiskową MY_IP
jako adres IPv4, z którego chcesz nawiązać połączenie z bazą danych.
Utwórz tymczasową regułę zapory za pomocą polecenia 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}
Następnie przygotuj plik .sql , aby utworzyć użytkownika bazy danych dla tożsamości zarządzanej. Poniższy przykład dodaje użytkownika z nazwą identity-contoso
logowania i przyznaje użytkownikowi uprawnienia dostępu do bazy danych 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
Wykonaj plik .sql za pomocą polecenia az mysql flexible-server execute. Token dostępu można uzyskać za pomocą polecenia 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"
Może zostać wyświetlony monit o zainstalowanie rdbms-connect
rozszerzenia, jak pokazano w poniższych danych wyjściowych. Naciśnij y
, aby kontynuować. Jeśli nie pracujesz z użytkownikiem root
, musisz wprowadzić hasło użytkownika.
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:
Jeśli plik .sql zostanie wykonany pomyślnie, znajdziesz dane wyjściowe podobne do następującego przykładu:
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
Tożsamość myManagedIdentity
zarządzana ma teraz dostęp do bazy danych podczas uwierzytelniania przy użyciu nazwy użytkownika identity-contoso
.
Jeśli nie chcesz już uzyskiwać dostępu do serwera z tego adresu IP, możesz usunąć regułę zapory przy użyciu następującego polecenia.
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
Na koniec użyj następującego polecenia, aby uzyskać parametry połączenia, które są używane w następnej sekcji.
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Konfigurowanie połączenia bez hasła bazy danych dla serwera Oracle WebLogic na maszynach wirtualnych platformy Azure
W tej sekcji pokazano, jak skonfigurować połączenie bez hasła ze źródłem danych przy użyciu ofert witryny Azure Marketplace dla serwera Oracle WebLogic.
Najpierw rozpocznij proces wdrażania oferty. Poniższe oferty obsługują połączenia bez hasła z bazą danych:
- Oracle WebLogic Server w usłudze Azure Kubernetes Service (AKS)
- Klaster serwera Oracle WebLogic na maszynach wirtualnych
- Serwer Oracle WebLogic z serwerem administracyjnym na maszynach wirtualnych
- Klaster dynamiczny serwera Oracle WebLogic na maszynach wirtualnych
Wypełnij wymagane informacje w okienku Podstawy i inne okienka , jeśli chcesz włączyć te funkcje. Po dotarciu do okienka Baza danych wypełnij konfigurację bez hasła, jak pokazano w poniższych krokach.
- W obszarze Połącz z bazą danych? wybierz pozycję Tak.
- W obszarze Ustawienia połączenia w obszarze Wybierz typ bazy danych otwórz menu rozwijane, a następnie wybierz pozycję MySQL (z obsługą połączenia bez hasła).
- W polu Nazwa JNDI wprowadź wartość testpasswordordless lub oczekiwaną wartość.
- W przypadku parametrów połączenia źródła danych wprowadź parametry połączenia uzyskane w ostatniej sekcji.
- W polu Nazwa użytkownika bazy danych wprowadź nazwę użytkownika bazy danych tożsamości zarządzanej
${IDENTITY_LOGIN_NAME}
(wartość ). W tym przykładzie wartość toidentity-contoso
. - Wybierz pozycję Użyj połączenia źródła danych bez hasła.
- W polu Tożsamość zarządzana przypisana przez użytkownika wybierz wcześniej utworzoną tożsamość zarządzaną. W tym przykładzie jego nazwa to
myManagedIdentity
.
Sekcja Ustawienia połączenia powinna wyglądać podobnie jak na poniższym zrzucie ekranu, który używa klastra Oracle WebLogic Server na maszynach wirtualnych jako przykładu.
Zakończono konfigurowanie połączenia bez hasła. Możesz kontynuować wypełnianie następujących okienk lub wybrać pozycję Przejrzyj i utwórz, a następnie pozycję Utwórz , aby wdrożyć ofertę.
Weryfikowanie połączenia z bazą danych
Połączenie z bazą danych zostało pomyślnie skonfigurowane, jeśli wdrożenie oferty zakończy się bez błędu.
Kontynuuj wykonywanie klastra Oracle WebLogic Server na maszynach wirtualnych , na przykład po zakończeniu wdrażania wykonaj następujące kroki w witrynie Azure Portal, aby znaleźć adres URL konsoli administracyjnej.
- Znajdź grupę zasobów, w której wdrożono usługę WLS.
- W obszarze Ustawienia wybierz pozycję Wdrożenia.
- Wybierz wdrożenie z najdłuższym czasem trwania. To wdrożenie powinno znajdować się w dolnej części listy.
- Wybierz pozycję Dane wyjściowe.
- Adres URL konsoli administracyjnej Serwera WebLogic jest wartością danych wyjściowych adminConsoleUrl .
- Skopiuj wartość zmiennej
adminConsoleUrl
wyjściowej . - Wklej wartość na pasku adresu przeglądarki i naciśnij Enter , aby otworzyć stronę logowania konsoli administracyjnej WebLogic.
Wykonaj poniższe kroki, aby zweryfikować połączenie z bazą danych.
Zaloguj się do konsoli administracyjnej serwera WebLogic przy użyciu nazwy użytkownika i hasła podanego w okienku Podstawy .
W obszarze Struktura domeny wybierz pozycję Usługi, Źródła danych, a następnie testpasswordless.
Wybierz kartę Monitorowanie, na której jest uruchomiony stan źródła danych, jak pokazano na poniższym zrzucie ekranu.
Wybierz kartę Testowanie , a następnie wybierz przycisk radiowy obok żądanego serwera.
Wybierz pozycję Testuj źródło danych. Powinien zostać wyświetlony komunikat informujący o pomyślnym teście, jak pokazano na poniższym zrzucie ekranu.
Czyszczenie zasobów
Jeśli te zasoby nie są potrzebne, możesz je usunąć, wykonując następujące polecenia:
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
Następne kroki
Dowiedz się więcej na temat uruchamiania zabezpieczeń WLS na usłudze AKS lub maszynach wirtualnych, korzystając z następujących linków: