تمرين - تأمين تطبيق Java من منظور مطور Java
في هذه الوحدة، يمكنك تكوين تطبيق Spring Boot الحالي لاستخدام الأسرار المخزنة في Azure Key Vault.
يمكنك أخذ دور مطور Java، الذي يقوم بتكوين مشروعه لقراءة تلك الأسرار.
تكوين مشروع Java
يقوم بادئ Azure Spring Boot لـ Key Vault بأتمتة استخدام عدة تطوير برامج Key Vault Java لمطوري Spring Boot.
في القسم السابق، أضفنا متغيرين للبيئة باستخدام Azure CLI: AZURE_KEYVAULT_ENABLED وAZURE_KEYVAULT_URI.
يقرأ Spring Boot متغيرات البيئة هذه ويستخدمها للمصادقة على Azure Key Vault، باستخدام أسفل Java SDK ل Key Vault.
لإضافة دعم لبادئ Azure Spring Boot لـ Key Vault، أضف التبعية التالية في ملف pom.xml للتطبيق:
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
</dependency>
عندما أنشأنا مشروع Java، أجرينا ترميزًا مضمنًا لاسم قاعدة البيانات وكلمة المرور في ملف src/main/resources/application.properties. تأكد من إعادته إلى هذا الإصدار، الذي يستخدم المتغيرات التي يوفرها Azure Key Vault:
logging.level.org.springframework.jdbc.core=DEBUG
spring.datasource.url=jdbc:postgresql://${azureDatabaseName}.postgres.database.azure.com:5432/demo
spring.datasource.username=${azureDatabaseUsername}@${azureDatabaseName}
spring.datasource.password=${azureDatabasePassword}
spring.sql.init.mode=always
مع هذا التغيير، لا تحتوي التعليمات البرمجية المصدر للتطبيق على أي أسرار، ويتم الحصول عليها من مثيل Azure Key Vault الذي قمنا بتكوينه في القسم السابق.
توزيع تطبيق Java إلى Azure
كما هو الحال في الوحدة السابقة، لنشر التطبيق، تحتاج أولا إلى حزمه كملف Jar:
./mvnw clean package
ثم انشره باستخدام Azure CLI. قد يستغرق تشغيل هذا الأمر عدة دقائق.
az spring app deploy \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application \
--artifact-path target/*.jar
إذا واجهت حالات فشل، يمكنك إلقاء نظرة على سجلات التطبيق عن طريق كتابة الأمر التالي:
az spring app logs \
--resource-group $AZ_RESOURCE_GROUP \
--service $AZ_SPRING_CLOUD \
--name application
يتوفر التطبيق الآن في السحابة، ويمكنك الوصول إلى بياناته باستخدام أمر cURL:
curl https://$AZ_SPRING_CLOUD-application.azuremicroservices.io
تهانينا، لقد نجحت في إنشاء تطبيق Java ثقة معدومة يستخدم Azure Key Vault لتخزين الأسرار.