Verwenden von Azure Key Vault zum Bereitstellen von TLS/SSL-Zertifikaten an die JVM-
In diesem Artikel wird beschrieben, wie Sie Azure Key Vault in das JVM integrieren, um TLS/SSL-Zertifikate bereitzustellen.
Hinzufügen des JCA-Anbieters zur Java.security-Datei
Um den JCA-Anbieter zu registrieren, muss der JVM darüber wissen. Führen Sie zum Ausführen dieser Aufgabe die folgenden Schritte aus:
Erstellen Sie eine Kopie der Java.security-Datei in Ihrer JVM-Installation, und nennen Sie die Datei "my.java.security".
Suchen Sie in der Datei nach der Zeile
security.provider.<maximum-value>
. Ersetzen Sie den<maximum-value>
Platzhalter durch den Maximalwert an dieser Position unter allen Einträgen. Beispiel:security.provider.13=SunPKCS11
Erhöhen Sie die Anzahl dieses Eintrags um 1. Beispiel:
security.provider.13
sollte .security.provider.14
Fügen Sie die folgende Zeile hinzu:
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
Hinweis
Achten Sie darauf, dass jeder security.provider.<X>
Eintrag einen anderen Zahlenwert hat <X>
, und halten Sie sie inkrementell sortiert, beginnend mit 1.
So führen Sie Ihre Anwendung aus
Um Ihre Anwendung auszuführen, führen Sie die folgenden Schritte aus, und ersetzen Sie die <...>
Platzhalter durch Ihre eigenen Werte:
Fügen Sie die Datei "azure-security-keyvault-jca-X.Y.Z.jar " zum Klassenpfad hinzu. Wenn Sie beispielsweise in Tomcat 9 integrieren möchten, sollten Sie den vollständigen Pfad der Datei azure-security-keyvault-jca-X.Y.Z.jar zum Java-Klassenpfad hinzufügen, indem Sie tomcat9w.exe verwenden.
Zur Befehlszeile hinzufügen
-Djava.security.properties==my.java.security
.Fügen Sie
-Dazure.keyvault.uri=<your-keyvault-uri>
der Befehlszeile hinzu, um anzugeben, welche Azure Key Vault verwendet werden soll. Beispiel:-Dazure.keyvault.uri=https://some.vault.azure.net/
Fügen Sie je nach Szenario die in der folgenden Liste angegebenen Argumente hinzu:
Wenn Sie sich mit einem Dienstprinzipal authentifizieren, fügen Sie die folgenden Argumente hinzu:
-Dazure.keyvault.tenant-id=<your-tenant-id>
-Dazure.keyvault.client-id=<your-client-id>
-Dazure.keyvault.client-secret=<your-client-secret>
Wenn Sie sich mit einer vom System zugewiesenen verwalteten Identität authentifizieren, sind keine weiteren Argumente erforderlich.
Wenn Sie sich mit einer vom Benutzer zugewiesenen verwalteten Identität authentifizieren, fügen Sie das folgende Argument hinzu:
-Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>
Weitere Informationen zu diesen Authentifizierungsszenarien finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID und wie verwaltete Identitäten für Azure-Ressourcen mit virtuellen Azure-Computern funktionieren.
Verwenden eines Dienstprinzipals
Um eine Azure-Client-ID und einen geheimen Azure-Clientschlüssel zu erstellen, verwenden Sie den folgenden Befehl, und ersetzen Sie die <...>
Platzhalter durch Ihre eigenen Werte. Achten Sie darauf, die zurückgegebenen Werte zu speichern, zappId
. B. , password
. tenant
export CLIENT_NAME=<your-client-name>
az ad sp create-for-rbac --skip-assignment --name ${CLIENT_NAME}
export CLIENT_ID=$(az ad sp list --display-name ${CLIENT_NAME} | jq -r '.[0].appId')
az ad app credential reset --id ${CLIENT_ID}
Speichern Sie die zurückgegebenen Werte, damit Sie sie später verwenden können.
Stellen Sie sicher, dass der angegebene CLIENT_ID
Client auf den Zielschlüsseltresor zugreifen kann. Verwenden Sie zum Gewähren des Zugriffs den folgenden Befehl, und ersetzen Sie den <your-key-vault-name>
Platzhalter:
az keyvault set-policy \
--name <your-key-vault-name> \
--spn ${CLIENT_ID} \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Verwenden einer verwalteten Identität
Um eine vom System zugewiesene verwaltete Identität zu aktivieren oder eine vom Benutzer zugewiesene verwaltete Identität zu erstellen, befolgen Sie die Anweisungen unter Konfigurieren verwalteter Identitäten für Azure-Ressourcen auf einer Azure-VM mit Azure CLI
Verwenden Sie nach dem Abrufen der Objekt-ID der verwalteten Identität den folgenden Befehl, um die Zugriffsrichtlinie Ihres Key Vaults für Ihre verwaltete Identität zu erstellen:
az keyvault set-policy \
--name <your-key-vault-name> \
--object-id <object-id-of-your-managed-identity> \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Hinweis
Die Objekt-ID der verwalteten Identität wird auch als Prinzipal-ID bezeichnet, wenn eine vom Benutzer zugewiesene verwaltete Identität verwendet wird.
Client-/serverseitige TLS/SSL-Beispiele
Beispiele für client-/serverseitiges TLS/SSL finden Sie im Abschnitt "Beispiele " der Azure Key Vault JCA-Clientbibliothek für Java.