Aracılığıyla paylaş


Red Hat JBoss EAP'de Java uygulamaları için parolasız veritabanı bağlantılarını yapılandırma

Bu makalede, Azure portalı ile Red Hat JBoss EAP tekliflerinde Java uygulamaları için parolasız veritabanı bağlantılarını yapılandırma adımları gösterilmektedir.

Bu kılavuzda aşağıdaki görevleri yerine getirebilirsiniz:

  • Azure CLI kullanarak veritabanı kaynakları sağlama.
  • Veritabanında Microsoft Entra yöneticisini etkinleştirin.
  • Kullanıcı tarafından atanan bir yönetilen kimlik sağlayın ve bunun için bir veritabanı kullanıcısı oluşturun.
  • Azure portalı ile Red Hat JBoss EAP tekliflerinde parolasız veritabanı bağlantısı yapılandırın.
  • Veritabanı bağlantısını doğrulayın.

, PostgreSQL için Azure veritabanı ve Azure SQL veritabanları için parolasız bağlantıları destekler.

Önkoşullar

Dağıtım için bir bölge seçin

İstediğiniz veritabanı için kullanılabilir SKU'ları olan bir bölge seçin. Aşağıdaki Azure CLI komutu, belirli bir bölgedeki kullanılabilir SKU'ları listeler. Bazı sonuçlara sahip bir bölge bulana kadar farklı bölgeleri denemeye devam edin.

az mysql flexible-server list-skus --location "$REGION" --output table

Bir kaynak grubu oluşturun

az group createile bir kaynak grubu oluşturun. Kaynak gruplarının bir abonelik içinde benzersiz olması gerektiğinden, benzersiz bir ad seçin. Benzersiz adlar kullanmanın kolay bir yolu, baş harflerinizin, bugünün tarihinin ve bazı tanımlayıcıların (örneğin, abc1228rg) bir bileşimini kullanmaktır. Bu örnek, konumunda adlı abc1228rgeastus bir kaynak grubu oluşturur.

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

Veritabanı sunucusu ve veritabanı oluşturma

az mysql flexible-server create komutuyla esnek bir sunucu oluşturun. Bu örnek, yönetici kullanıcı mysql20221201 ve yönetici parolası azureuserile adlı Secret123456 esnek bir sunucu oluşturur. Parolayı sizinkiyle değiştirin. Daha fazla bilgi için bkz. Azure CLI kullanarak MySQL için Azure Veritabanı Esnek Sunucu Oluşturma.

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 ${REGION} \
    --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 createile veritabanı oluşturun.

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

Komut tamamlandığında aşağıdaki örneğe benzer bir çıktı görmeniz gerekir:

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

Veritabanınız için bir Microsoft Entra yöneticisi yapılandırma

Veritabanını oluşturduğunuza göre artık parolasız bağlantıları desteklemeye hazır hale getirmeniz gerekir. Parolasız bağlantı, Azure kaynakları ve Microsoft Entra kimlik doğrulaması için yönetilen kimliklerin bir bileşimini gerektirir. Azure kaynakları için yönetilen kimliklere genel bakış için bkz . Azure kaynakları için yönetilen kimlikler nelerdir?

MySQL Esnek Sunucusunun yönetilen kimliklerle nasıl etkileşime geçtiğini öğrenmek içinMySQL için Azure Veritabanı belgelerine bakın.

Aşağıdaki örnek, geçerli Azure CLI kullanıcısını bir Microsoft Entra yönetici hesabı olarak yapılandırıyor. Azure kimlik doğrulamasını etkinleştirmek için MySQL Esnek Sunucusuna kimlik atamak gerekir.

İlk olarak, az identity create ile yönetilen bir kimlik oluşturun ve kimliği az mysql flexible-server identity assignile MySQL sunucusuna atayın.

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

Ardından, geçerli Azure CLI kullanıcısını az mysql flexible-server ad-admin createile Microsoft Entra yönetici hesabı olarak ayarlayın.

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

Kullanıcının atadığı yönetilen kimliği oluşturun

Ardından Azure CLI'da az identity create komutunu kullanarak aboneliğinizde bir kimlik oluşturun. Veritabanınıza bağlanmak için bu yönetilen kimliği kullanırsınız.

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

Aşağıdaki adımlarda kimliği yapılandırmak için az identity show komutunu kullanarak kimliğin istemci kimliğini bir kabuk değişkeninde depolayın.

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

Yönetilen kimliğiniz için veritabanı kullanıcısı oluşturma

İlk olarak, CLI istemcinizden veritabanı sunucusuna erişmek için bir güvenlik duvarı kuralı oluşturmanız gerekir. Geçerli IP adresinizi almak için aşağıdaki komutları çalıştırın:

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

VPN etkin linux için Windows Alt Sistemi (WSL) üzerinde çalışıyorsanız, aşağıdaki komut yanlış bir IPv4 adresi döndürebilir. IPv4 adresinizi alma yollarından biri whatismyipaddress.com ziyaret etmektir. MY_IP ortam değişkenini veritabanına bağlanmak istediğiniz IPv4 adresi olarak ayarlayın. Veritabanı güvenlik duvarını daha sonra bu IP adresiyle yapılandıracaksınız.

Microsoft Entra yönetici kullanıcısı olarak MySQL veritabanınıza bağlanın ve yönetilen kimliğiniz için bir MySQL kullanıcısı oluşturun.

az mysql flexible-server firewall-rule createile geçici bir güvenlik duvarı kuralı oluşturun.

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}

Ardından, yönetilen kimlik için veritabanı kullanıcısı oluşturmak üzere bir SQL dosyası hazırlayın. Aşağıdaki örnek, oturum açma adı identity-contoso olan bir kullanıcıyı ekler ve kullanıcıya veritabanı contosoerişme ayrıcalıkları verir:

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

sql dosyasını az mysql flexible-server executekomutuyla yürütür. erişim belirtecinizi az account get-access-tokenkomutuyla alabilirsiniz.

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"

Aşağıdaki çıkışta gösterildiği gibi rdbms-connect uzantısını yüklemeniz istenebilir. Devam etmek için y basın. root kullanıcısıyla çalışmıyorsanız, o kullanıcının parolasını girmeniz gerekir.

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 dosyası başarıyla yürütülürse, çıkışınız aşağıdaki örneğe benzer:

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

Yönetilen kimlik myManagedIdentity, identity-contoso kullanıcı adıyla kimlik doğrulaması yaparken artık veritabanına erişime sahiptir.

Sunucuya artık bu IP adresinden erişmek istemiyorsanız, aşağıdaki komutu kullanarak güvenlik duvarı kuralını kaldırabilirsiniz:

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

Son olarak, sonraki bölümde kullandığınız bağlantı dizesini almak için aşağıdaki komutu kullanın:

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

Azure VM'lerinde Red Hat JBoss EAP için parolasız veritabanı bağlantısı yapılandırma

Devam etmeden önce, oturum açmak ve bu makaleyi tamamlamak için kullandığınız Azure kimliğinin geçerli abonelikte Sahip rolüne veya geçerli abonelikteki Katkıda Bulunan ve Kullanıcı Erişimi Yöneticisi rollerine sahip olduğundan emin olun. Azure rollerine genel bakış için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) nedir? Red Hat JBoss EAP market teklifinin gerektirdiği belirli roller hakkında ayrıntılı bilgi için bkz. Azure yerleşik rolleri.

Bu bölümde, Red Hat JBoss EAP için Azure Market tekliflerini kullanarak parolasız veri kaynağı bağlantısını yapılandırma işlemi gösterilmektedir.

İlk olarak, bir teklif dağıtma işlemine başlayın. Aşağıdakiler parolasız veritabanı bağlantılarını destekler:

Özellikleri etkinleştirmek istiyorsanız Temel bilgiler bölmesine ve diğer bölmelere gerekli bilgileri girin. Veritabanı bölmesine ulaştığınızda, aşağıdaki adımlarda gösterildiği gibi parolasız yapılandırmayı girin:

  1. Veritabanına bağlanın mı? için Evet'i seçin.
  2. Bağlantı ayarları'nın altında Veritabanı türünü seçin için açılan menüyü açın ve ardından Azure SQL (parolasız bağlantıyı destekler)'i seçin.
  3. JNDI Adıiçin testpasswordless veya beklenen değerinizi girin.
  4. DataSource Bağlantı Dizesi için, son bölümde elde ettiğiniz bağlantı dizesi girin.
  5. Parolasız veri kaynağı bağlantısını kullan seçin.
  6. Kullanıcı tarafından atanan yönetilen kimlik için önceki adımda oluşturduğunuz yönetilen kimliği seçin. Bu örnekte adı myManagedIdentity.
  7. Add (Ekle) seçeneğini belirleyin.

Bağlantı ayarları bölümü aşağıdaki ekran görüntüsüne benzer olmalıdır:

Veritabanı türünü seçin sayfasını gösteren Azure portalının ekran görüntüsü.

Veritabanı bağlantısını doğrulama

Teklif dağıtımı hatasız tamamlanırsa veritabanı bağlantısı başarıyla yapılandırılır.

Dağıtım tamamlandıktan sonra, Yönetici konsolu URL'sini bulmak için Azure portalında bu adımları izleyin.

  1. JBoss EAP'yi dağıtmış olduğunuz kaynak grubunu bulun.
  2. Ayarlar'ın altında Dağıtımlar'ı seçin.
  3. En uzun Süreye sahip dağıtımı seçin. Bu dağıtım listenin en altında olmalıdır.
  4. Çıkışlar’ı seçin.
  5. Yönetici konsolunun URL'si adminConsole çıkışının değeridir.
  6. adminConsole çıkış değişkeninin değerini kopyalayın.
  7. Değeri tarayıcı adres çubuğuna yapıştırın ve Tümleşik Çözümler Konsolu'nun oturum açma sayfasını açmak için Enter tuşuna basın.

Veritabanı bağlantısını doğrulamak için aşağıdaki adımları kullanın:

  1. Temel bilgiler bölmesinde sağladığınız kullanıcı adı ve parolayla yönetici konsolunda oturum açın.

    Yönetici konsolu oturum açma ekranının ekran görüntüsü.

  2. Oturum açtığınızda ana menüden Yapılandırma'yı seçin.

  3. Sütun tarayıcısında Alt Sistemler, Veri Kaynakları ve Sürücüler, Veri Kaynakları, dataSource-mssqlserver öğesini seçin.

  4. Açılan menüde Bağlantıyı test et'i seçin

  5. Şuna benzer bir şey belirten bir ileti görmeniz gerekir: Successfully tested connection for data source dataSource-mssqlserver.

Aşağıdaki ekran görüntüsünde ilgili kullanıcı arabirimi öğeleri vurgulanır:

Test veritabanı sayfasını gösteren yönetici konsolunun ekran görüntüsü.

Kaynakları temizle

Bu kaynaklara ihtiyacınız yoksa, aşağıdaki komutları kullanarak bunları silebilirsiniz:

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

Sonraki Adımlar

Aşağıdaki bağlantıları izleyerek Azure RedHat OpenShift ve sanal makinelerde JBoss EAP çalıştırma hakkında daha fazla bilgi edinin: