Oracle WebLogic Server에서 Java 앱에 대한 암호 없는 데이터베이스 연결 구성
이 문서에서는 Azure Portal을 사용하여 Oracle WebLogic Server 제품의 Java 앱에 대한 암호 없는 데이터베이스 연결 구성하는 방법을 보여 줍니다.
이 가이드에서는 다음 작업을 수행합니다.
- Azure CLI를 사용하여 데이터베이스 리소스를 프로비전합니다.
- 데이터베이스에서 Microsoft Entra 관리자를 사용하도록 설정합니다.
- 사용자 할당 관리 ID를 프로비전하고 데이터베이스 사용자를 만듭니다.
- Azure Portal을 사용하여 Oracle WebLogic 제품의 암호 없는 데이터베이스 연결을 구성합니다.
- 데이터베이스 연결의 유효성을 검사합니다.
이 제품은 PostgreSQL, MySQL 및 Azure SQL 데이터베이스에 대한 암호 없는 연결을 지원합니다.
필수 구성 요소
Bash 환경을 사용하여 Azure Cloud Shell 사용합니다. Azure CLI 버전이 2.43.0 이상인지 확인합니다.
원하는 경우 Azure CLI 2.43.0 이상을 설치하여 Azure CLI 명령을 실행합니다.
- 로컬 설치를 사용하는 경우
az login
명령을 사용하여 Azure CLI로 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI로 로그인을 참조하세요. - 메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
-
az version
실행하여 설치된 버전 및 종속 라이브러리를 찾습니다. 최신 버전으로 업그레이드하려면az upgrade
실행합니다.
- 로컬 설치를 사용하는 경우
로그인하고 이 문서를 완료하는 데 사용하는 Azure ID에 현재 구독의 소유자 역할 또는 현재 구독의 기여자 및 사용자 액세스 관리자 역할이 있는지 확인합니다. Azure 역할에 대한 개요는 Azure RBAC(Azure 역할 기반 액세스 제어)란? Oracle WebLogic Marketplace 제품에 필요한 특정 역할에 대한 자세한 내용은 Azure 기본 제공 역할을 참조하세요.
리소스 그룹 만들기
az group create
사용하여 리소스 그룹을 만듭니다. 리소스 그룹은 구독 내에서 고유해야 하므로 고유한 이름을 선택합니다. 고유한 이름을 갖는 쉬운 방법은 이니셜, 오늘 날짜 및 일부 식별자(예: abc1228rg
)의 조합을 사용하는 것입니다. 이 예제에서는 위치에 명명된 abc1228rg
eastus
리소스 그룹을 만듭니다.
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
데이터베이스 서버 및 데이터베이스 만들기
az mysql flexible-server create
명령을 사용하여 유연한 서버를 만듭니다. 이 예제에서는 관리자 사용자 mysql20221201
및 관리자 암호azureuser
로 명명된 Secret123456
유연한 서버를 만듭니다. 암호를 사용자 암호로 바꿉니다. 자세한 내용은 Azure CLI를 사용하여 Azure Database for MySQL 유연한 서버 만들기를 참조하세요.
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
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
명령이 완료되면 다음 예제와 유사한 출력이 표시됩니다.
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"
}
데이터베이스에 대한 Microsoft Entra 관리자 구성
이제 데이터베이스를 만들었으므로 암호 없는 연결을 지원할 수 있도록 준비해야 합니다. 암호 없는 연결에는 Azure 리소스 및 Microsoft Entra 인증에 대한 관리 ID 조합이 필요합니다. Azure 리소스에 대한 관리 ID에 대한 개요는 Azure 리소스에 대한 관리 ID란?
MySQL 유연한 서버가 관리 ID와 상호 작용하는 방법에 대한 자세한 내용은 Azure Database for MySQL 설명서참조하세요.
다음 예제에서는 현재 Azure CLI 사용자를 Microsoft Entra 관리자 계정으로 구성합니다. Azure 인증을 사용하도록 설정하려면 MySQL 유연한 서버에 ID를 할당해야 합니다.
먼저 az identity create
사용하여 관리 ID를 만들고 az mysql flexible-server identity assign
사용하여 MySQL 서버에 ID를 할당합니다.
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
그런 다음, 현재 Azure CLI 사용자를 az mysql flexible-server ad-admin create
의 Microsoft Entra 관리자 계정으로 설정합니다.
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
사용자 할당 관리 ID 만들기
다음으로, Azure CLI에서 az identity create
명령을 사용하여 구독에 ID를 만듭니다. 이 관리 ID를 사용하여 데이터베이스에 연결합니다.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
다음 단계에서 ID를 구성하려면 az identity show
명령을 사용하여 ID의 클라이언트 ID를 셸 변수에 저장합니다.
# 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)
관리 ID에 대한 데이터베이스 사용자 만들기
Microsoft Entra 관리자 사용자로서 MySQL 데이터베이스에 연결하고, 관리 ID를 위한 MySQL 사용자를 만듭니다.
먼저 CLI 클라이언트에서 MySQL 서버에 액세스하는 방화벽 규칙을 만들어야 합니다. 다음 명령을 실행하여 현재 IP 주소를 가져옵니다.
export MY_IP=$(curl http://whatismyip.akamai.com)
VPN을 사용하도록 설정된 WSL(Linux용 Windows 하위 시스템)에서 작업하는 경우 다음 명령은 잘못된 IPv4 주소를 반환할 수 있습니다. IPv4 주소를 가져오는 한 가지 방법은 whatismyipaddress.com 방문하는 것입니다.
MY_IP
환경 변수를 데이터베이스에 연결하려는 IPv4 주소로 설정합니다.
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}
다음으로, 관리 ID에 대한 데이터베이스 사용자를 만들기 위해 SQL 파일을 준비합니다. 다음 예제에서는 로그인 이름 identity-contoso
사용자를 추가하고 데이터베이스 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
명령 az mysql flexible-server execute
사용하여 SQL 파일을 실행합니다. 명령 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"
다음 출력과 같이 rdbms-connect
확장을 설치하라는 메시지가 표시될 수 있습니다. 계속하려면 y 누릅니다. 사용자와 함께 root
작업하지 않는 경우 사용자 암호를 입력해야 합니다.
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:
SQL 파일이 성공적으로 실행되면 출력은 다음 예제와 유사합니다.
Running *.sql* file 'createuser.sql'...
Successfully executed the file.
Closed the connection to mysql20221201
이제 관리 ID myManagedIdentity
는 사용자 이름으로 identity-contoso
인증할 때 데이터베이스에 액세스할 수 있습니다.
이 IP 주소에서 서버에 더 이상 액세스하지 않으려면 다음 명령을 사용하여 방화벽 규칙을 제거할 수 있습니다.
az mysql flexible-server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--name $MYSQL_NAME \
--rule-name AllowCurrentMachineToConnect \
--yes
마지막으로 다음 명령을 사용하여 다음 섹션에서 사용하는 연결 문자열을 가져옵니다.
export CONNECTION_STRING="jdbc:mysql://${MYSQL_NAME}.mysql.database.azure.com:3306/${DATABASE_NAME}?useSSL=true"
echo ${CONNECTION_STRING}
Azure VM에서 Oracle WebLogic Server에 대한 암호 없는 데이터베이스 연결 구성
이 섹션에서는 Oracle WebLogic Server용 Azure Marketplace 제품을 사용하여 암호 없는 데이터 원본 연결을 구성하는 방법을 보여줍니다.
먼저 제품 배포 프로세스를 시작합니다. 다음은 암호 없는 데이터베이스 연결 지원합니다.
- AKS(Azure Kubernetes Service)의 Oracle WebLogic Server
- VM의 Oracle WebLogic Server 클러스터
- VM에서 관리 서버가 있는 Oracle WebLogic Server
- VM의 Oracle WebLogic Server 동적 클러스터
기능을 사용하도록 설정하려면 기본 창 및 기타 창에 필요한 정보를 입력합니다. 데이터베이스 창에 도달하면 다음 단계에 표시된 대로 암호 없는 구성을 입력합니다.
- 데이터베이스에 연결하려면 [예]를 선택합니다.
- 연결 설정에서, 데이터베이스 유형을 선택하려면 드롭다운 메뉴에서 MySQL(암호 없는 연결 지원)을 선택합니다.
JNDI 이름 대해 testpasswordless 또는 예상 값을입력합니다. - DataSource 연결 문자열필드에 마지막 섹션에서 가져온 연결 문자열을 입력합니다.
-
데이터베이스 사용자 이름에는 관리 ID의 데이터베이스 사용자 이름(
${IDENTITY_LOGIN_NAME}
값)을 입력합니다. 이 예제에서 값은 identity-contoso입니다. - 암호 없는 데이터 원본 연결 사용을 선택합니다.
- 사용자 할당 관리 ID의 경우 이전에 만든 관리 ID를 선택합니다. 이 예제에서 그 이름은 myManagedIdentity입니다.
연결 설정 섹션은 VM에서 Oracle WebLogic Server 클러스터를 예로 사용하는 다음 스크린샷과 같이 표시됩니다.
암호 없는 연결 구성을 완료했습니다. 다음 창을 계속 채우거나 검토 + 만들기를 선택한 다음 만들기를 선택하여 제품을 배포할 수 있습니다.
데이터베이스 연결 확인
제품 배포가 오류 없이 완료된 경우 데이터베이스 연결이 성공적으로 구성됩니다.
배포가 완료된 후 VM 에서 Oracle WebLogic Server 클러스터를 예로 들며 Azure Portal에서 다음 단계에 따라 관리 콘솔 URL을 찾습니다.
- WLS를 배포한 리소스 그룹을 찾습니다.
- 설정에서 배포를 선택합니다.
- 기간이 가장 긴 배포를 선택합니다. 이 배포는 목록의 맨 아래에 있어야 합니다.
- 출력을 선택합니다.
- WebLogic 관리 콘솔의 URL은 adminConsoleUrl 출력의 값입니다.
- adminConsoleUrl
출력 변수의 값을 복사합니다. - 브라우저 주소 표시줄에 값을 붙여넣고 Enter 키를 눌러 WebLogic 관리 콘솔의 로그인 페이지를 엽니다.
다음 단계를 사용하여 데이터베이스 연결을 확인합니다.
기본 창에서 제공한 사용자 이름과 암호를 사용하여 WebLogic 관리 콘솔에 로그인합니다 .
도메인 구조에서 서비스, 데이터 원본을 선택한 다음 testpasswordless를 선택합니다.
모니터링 탭을 선택합니다. 여기에서 데이터 원본의 상태가 실행 중입니다. 다음 스크린샷과 같이:
테스트 탭을 선택한 다음 원하는 서버 옆에 있는 라디오 단추를 선택합니다.
데이터 원본 테스트를 선택합니다. 다음 스크린샷과 같이 성공적인 테스트를 나타내는 메시지가 표시됩니다.
리소스 정리
이러한 리소스가 필요하지 않은 경우 다음 명령을 사용하여 삭제할 수 있습니다.
az group delete --name ${RESOURCE_GROUP_NAME}
az group delete --name <resource-group-name-that-deploys-the-offer>
다음 단계
다음 링크를 따라 AKS 또는 가상 머신에서 WLS를 실행하는 방법에 대해 자세히 알아봅니다.