تمرين - تأمين تطبيق 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 لتخزين الأسرار.