إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ابدأ مع مكتبة عميل Azure Key Vault Certificate لخدمة Java. اتبع الخطوات أدناه لتثبيت الحزمة وجرب مثالاً على رمز للمهام الأساسية.
Tip
إذا كنت تعمل مع موارد شهادات Azure Key Vault في طلب Spring، نوصيك بالنظر في Spring Cloud Azure كبديل. Spring Cloud Azure هو مشروع مفتوح المصدر يوفر تكاملا سلسا مع خدمات Spring مع Azure. للتعرف أكثر على Spring Cloud Azure، ولرؤية مثال باستخدام شهادات Key Vault، راجع تمكين HTTPS في Spring Boot مع Azure Key Vault certificates.
موارد إضافية:
Prerequisites
- اشتراك Azure - create one مجانا.
- Java مجموعة تطوير (JDK) الإصدار 8 أو أعلى
- أباتشي مافن
- واجهة سطر الأوامر Azure (Azure CLI)
هذا البدء السريع يفترض أنك تستخدم Azure CLI و Apache Maven في نافذة طرفية لينكس.
الإعداد
هذه البداية السريعة تستخدم مكتبة Azure Identity مع Azure CLI لتوثيق المستخدم إلى Azure Services. يمكن للمطورين أيضا استخدام Visual Studio أو تعليمة Visual Studio برمجية لمصادقة مكالماتهم، وللمزيد من المعلومات، انظر مصادقة العميل باستخدام مكتبة عملاء Identity Azure.
تسجيل الدخول إلى Azure
تشغيل الأمر
login.az loginإذا كان مؤشر القيادة يستطيع فتح المتصفح الافتراضي، فسيفعل ذلك ويقوم بتحميل صفحة تسجيل دخول Azure.
بخلاف ذلك، افتح صفحة متصفح على https://aka.ms/devicelogin وأدخل رمز التفويض المعروض في جهازك.
قم بتسجيل الدخول باستخدام بيانات اعتماد حسابك في المتصفح.
إنشاء تطبيق Java جديد لجهاز الألعاب
في نافذة الكونسول، استخدم أمر mvn لإنشاء تطبيق Java جديد باسم akv-certificates-java.
mvn archetype:generate -DgroupId=com.keyvault.certificates.quickstart
-DartifactId=akv-certificates-java
-DarchetypeArtifactId=maven-archetype-quickstart
-DarchetypeVersion=1.4
-DinteractiveMode=false
ستبدو المخرجات الناتجة عن إنشاء المشروع كما يلي:
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: packageInPathFormat, Value: com/keyvault/quickstart
[INFO] Parameter: package, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: groupId, Value: com.keyvault.certificates.quickstart
[INFO] Parameter: artifactId, Value: akv-certificates-java
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Project created from Archetype in dir: /home/user/quickstarts/akv-certificates-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 38.124 s
[INFO] Finished at: 2019-11-15T13:19:06-08:00
[INFO] ------------------------------------------------------------------------
تغيير الدليل إلى المجلد akv-certificates-java/ المنشأ حديثاً.
cd akv-certificates-java
تثبيت الحزمة
افتح ملف pom.xml في محرر النص. أضف عناصر التبعية التالية إلى مجموعة التبعيات.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-security-keyvault-certificates</artifactId>
<version>4.8.6</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.2</version>
</dependency>
إنشاء مجموعة موارد ومخزن رئيسي
يستخدم هذا البدء السريع خزنة مفاتيح Azure مسبقا. يمكنك إنشاء مخزن مفاتيح باتباع الخطوات الواردة في هذه قوالب التشغيل السريع:
بدلا من ذلك، يمكنك تشغيل أوامر Azure CLI هذه.
Important
يجب أن يكون لكل مخزن رئيسي اسم فريد. استبدلها <vault-name> باسم خزنة المفاتيح في الأمثلة التالية.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
امنح حق الوصول إلى خزنة المفاتيح الخاصة بك
للحصول على صلاحيات لخزنة المفاتيح الخاصة بك عبر Role-Based Access Control (RBAC)، قم بتعيين دور إلى "اسم المستخدم الرئيسي" (UPN) باستخدام أمر Azure CLI az role assignment create.
az role assignment create --role "Key Vault Certificates Officer" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
استبدل <upn>، <subscription-id>، ومع <vault-name> قيمك الفعلية. إذا استخدمت اسم مجموعة موارد مختلف، استبدل "myResourceGroup" أيضا. سيكون UPN الخاص بك عادة بتنسيق عنوان بريد إلكتروني (على سبيل المثال، username@domain.com).
تعيين متغيرات البيئة
يستخدم هذا التطبيق اسم مخزن البيانات السرية لك كمتغير بيئة يسمى KEY_VAULT_NAME.
Windows
set KEY_VAULT_NAME=<vault-name>
Windows PowerShell
$Env:KEY_VAULT_NAME="<vault-name>"
macOS أو Linux
export KEY_VAULT_NAME=<vault-name>
نموذج الكائن
مكتبة عملاء شهادة Azure Key Vault للعبة Java تتيح لك إدارة الشهادات. يوضح قسم أمثلة التعليمات البرمجية كيفية إنشاء عميل وإنشاء شهادة واسترداد شهادة وحذف شهادة.
يوجد تطبيق وحدة التحكم بالكامل أدناه.
أمثلة على التعليمات البرمجية
إضافة التوجيهات
إضافة التوجيهات التالية إلى أعلى التعليمة البرمجية الخاصة بك:
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
مصادقة عميل وإنشاؤه
يجب أن تكون طلبات التطبيقات إلى معظم خدمات Azure مخولة. استخدام DefaultAzureCredential هو النهج الموصى به لتنفيذ الاتصالات بدون كلمة مرور مع خدمات Azure في الكود الخاص بك. DefaultAzureCredential يدعم أساليب مصادقة متعددة ويحدد الأسلوب الذي يجب استخدامه في وقت التشغيل. يمكن هذا النهج تطبيقك من استخدام أساليب مصادقة مختلفة في بيئات مختلفة (البيئة المحلية مقابل بيئة التشغيل) دون تنفيذ التعليمات البرمجية الخاصة بالبيئة.
في هذا البدء السريع، يقوم DefaultAzureCredential بالتحقق من المصادقة إلى خزنة المفاتيح باستخدام بيانات اعتماد مستخدم التطوير المحلي المسجل الدخول إلى Azure CLI. عند نشر التطبيق على Azure، يمكن لنفس كود DefaultAzureCredential اكتشاف واستخدام هوية مدارة مخصصة لخدمة تطبيقات أو آلة افتراضية أو خدمات أخرى. لمزيد من المعلومات، راجع نظرة عامة على الهوية المُدارة.
في هذا المثال، يتم توسيع اسم مخزن المفاتيح الخاص بك إلى URI لمخزن المفاتيح، بالتنسيق https://<your-key-vault-name>.vault.azure.net. لمزيد من المعلومات حول المصادقة إلى مخزن المفاتيح، راجع دليل المطور.
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
حفظ شهادة
الآن بعد أن تمت مصادقة التطبيق الخاص بك، يمكنك إنشاء شهادة في مخزن المفاتيح الخاص بك باستخدام certificateClient.beginCreateCertificate الأسلوب . يتطلب هذا اسما للشهادة وسياسة شهادة — حيث يتم تعيين القيمة "myCertificate" للمتغير certificateName في هذه العينة ويتم استخدام سياسة افتراضية.
تعد عملية إنشاء الشهادة عملية طويلة الأمد، حيث يمكنك التحقق من مدى تقدمها أو الانتظار حتى تكتمل.
ملحوظة
هذا البدء السريع ينشئ شهادة موقعة ذاتيا لأغراض العرض التوضيحي. بالنسبة لأعباء العمل الإنتاجية، قم بدمج Key Vault مع جهة شهادات موثوقة. انظر تأمين شهادات Azure Key Vault الخاصة بك.
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
يمكنك الحصول على الشهادة بمجرد اكتمال الإنشاء من خلال المكالمة التالية:
KeyVaultCertificate createdCertificate = certificatePoller.getFinalResult();
استرجاع الشهادة
يمكنك الآن استرداد الشهادة التي تم إنشاؤها مسبقا باستخدام certificateClient.getCertificate الأسلوب .
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
يمكنك الآن الوصول إلى تفاصيل الشهادة المستردة مع عمليات مثل retrievedCertificate.getName، retrievedCertificate.getProperties، وما إلى ذلك. بالإضافة إلى محتوياته retrievedCertificate.getCer.
حذف شهادة
وأخيرا، دعنا نحذف الشهادة من مخزن المفاتيح الخاص بك باستخدام certificateClient.beginDeleteCertificate الأسلوب ، وهو أيضا عملية طويلة الأمد.
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
تنظيف الموارد
عندما لا تكون هناك حاجة لذلك، يمكنك استخدام Azure CLI أو Azure PowerShell لإزالة خزنة المفاتيح ومجموعة الموارد المقابلة.
az group delete -g "myResourceGroup"
Remove-AzResourceGroup -Name "myResourceGroup"
التعليمة البرمجية العينة
package com.keyvault.certificates.quickstart;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.certificates.CertificateClient;
import com.azure.security.keyvault.certificates.CertificateClientBuilder;
import com.azure.security.keyvault.certificates.models.CertificateOperation;
import com.azure.security.keyvault.certificates.models.CertificatePolicy;
import com.azure.security.keyvault.certificates.models.DeletedCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificate;
import com.azure.security.keyvault.certificates.models.KeyVaultCertificateWithPolicy;
public class App {
public static void main(String[] args) throws InterruptedException, IllegalArgumentException {
String keyVaultName = System.getenv("KEY_VAULT_NAME");
String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";
System.out.printf("key vault name = %s and kv uri = %s \n", keyVaultName, keyVaultUri);
CertificateClient certificateClient = new CertificateClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
String certificateName = "myCertificate";
System.out.print("Creating a certificate in " + keyVaultName + " called '" + certificateName + " ... ");
SyncPoller<CertificateOperation, KeyVaultCertificateWithPolicy> certificatePoller =
certificateClient.beginCreateCertificate(certificateName, CertificatePolicy.getDefault());
certificatePoller.waitForCompletion();
System.out.print("done.");
System.out.println("Retrieving certificate from " + keyVaultName + ".");
KeyVaultCertificate retrievedCertificate = certificateClient.getCertificate(certificateName);
System.out.println("Your certificate's ID is '" + retrievedCertificate.getId() + "'.");
System.out.println("Deleting your certificate from " + keyVaultName + " ... ");
SyncPoller<DeletedCertificate, Void> deletionPoller = certificateClient.beginDeleteCertificate(certificateName);
deletionPoller.waitForCompletion();
System.out.print("done.");
}
}
الخطوات التالية
في هذه البداية السريعة، قمت بإنشاء مخزن بيانات سرية وإنشاء شهادة واستردادها ثم حذفها. لتعرف المزيد عن Key Vault وكيفية دمجه مع تطبيقاتك، تابع المقالات أدناه.
- اقرأ نظرة عامة على Azure Key Vault
- راجع دليل المطورين Azure Key Vault
- كيفية الوصول الآمن إلى مخزن البيانات السرية
- مراجعة أفضل الممارسات الأمنية الخاصة بالشهادات