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 Azure Cloud Shell używając 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 używasz instalacji lokalnej, zaloguj się za pomocą Azure CLI, korzystając z polecenia
az login
. 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
az version
, aby znaleźć zainstalowaną wersję i biblioteki zależne. Aby przeprowadzić uaktualnienie do najnowszej wersji, uruchom polecenieaz upgrade
.
- Jeśli używasz instalacji lokalnej, zaloguj się za pomocą Azure CLI, korzystając z polecenia
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 przy użyciu 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"
}
Konfiguruj administratora Microsoft Entra dla swojej bazy danych
Po utworzeniu bazy danych należy 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 dokumentację Azure Database for 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ą przy użyciu az identity create
i przypisz tożsamość do serwera MySQL przy użyciu 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 przy użyciu 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 Azure CLI utwórz tożsamość w subskrypcji za pomocą 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 w poniższych krokach skonfigurować tożsamość, 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
Najpierw należy utworzyć regułę zapory w celu uzyskania dostępu do serwera bazy danych 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 w podsystemie 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. Ustaw zmienną środowiskową MY_IP
jako adres IPv4, z którego chcesz nawiązać połączenie z bazą danych. Zaporę bazy danych skonfigurujesz później przy użyciu tego adresu IP.
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.
Utwórz tymczasową regułę zapory przy użyciu 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ą logowania identity-contoso
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 pobrać 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 rozszerzenia rdbms-connect
, 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, dane wyjściowe będą 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ż uzyskać 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 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
Wprowadź wymagane informacje w okienku Podstawy i innych okienkach, jeśli chcesz włączyć te funkcje. Po dotarciu do okienka bazy danych wprowadź 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, dla Wybierz typ bazy danychz menu rozwijanego wybierz pozycję MySQL (z obsługą połączenia bez hasła).
- Dla nazwy JNDI w, wprowadź testpasswordless lub oczekiwaną wartość.
- Dla łańcucha połączenia źródła danychwprowadź łańcuch połączenia, który uzyskałeś w ostatniej sekcji.
- W przypadku nazwy użytkownika bazy danychwprowadź nazwę użytkownika bazy danych tożsamości zarządzanej, czyli wartość
${IDENTITY_LOGIN_NAME}
. W tym przykładzie wartość to identity-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 wyjściowej adminConsoleUrl.
- Wklej wartość na pasku adresu przeglądarki i naciśnij Enter , aby otworzyć stronę logowania konsoli administracyjnej WebLogic.
Aby zweryfikować połączenie z bazą danych, wykonaj następujące czynności:
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 stan źródła danych jest Uruchomiony, 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 wskazujący pomyślny test, jak pokazano na poniższym zrzucie ekranu:
Czyszczenie zasobów
Jeśli te zasoby nie są potrzebne, możesz je usunąć przy użyciu następujących poleceń:
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: