Verwenden von Azure Key Vault zum Übermitteln von TLS/SSL-Zertifikaten an den JVM
In diesem Artikel wird beschrieben, wie Sie Azure Key Vault in das JVM integrieren, um TLS/SSL-Zertifikate bereitzustellen.
Fügen Sie den JCA-Anbieter zur java.security-Datei hinzu
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 datei java.security in Ihrer JVM-Installation, und benennen 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. Beispielsweise sollte
security.provider.13
security.provider.14
werden.Fügen Sie die folgende Zeile hinzu:
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
Anmerkung
Achten Sie darauf, dass jeder security.provider.<X>
-Eintrag einen anderen Zahlenwert für <X>
hat und inkrementell geordnet sind, 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 azure-security-keyvault-jca-X.Y.Z.jar-Datei zum Klassenpfad hinzu. Wenn Sie beispielsweise in Tomcat 9 integriert werden möchten, sollten Sie den vollständigen Pfad der Datei azure-security-keyvault-jca-X.Y.Z.jar mithilfe von tomcat9w.exe zum Java-Klassenpfad hinzufügen.
Fügen Sie
-Djava.security.properties==my.java.security
der Befehlszeile hinzu.Fügen Sie der Befehlszeile
-Dazure.keyvault.uri=<your-keyvault-uri>
hinzu, um anzugeben, welchen 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-Computernfunktionieren.
Verwenden eines Dienstprinzipals
Um eine Azure-Client-ID und ein Azure-Client-Secret zu erstellen, verwenden Sie den folgenden Befehl und ersetzen Sie die Platzhalter <...>
durch Ihre eigenen Werte. Achten Sie darauf, die zurückgegebenen Werte wie appId
, password
und tenant
zu speichern.
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 von CLIENT_ID
angegebene Client auf den Zielschlüsseltresor zugreifen kann. Verwenden Sie, um Zugriff zu gewähren, 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 mithilfe von 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
Anmerkung
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 clientseitiges und serverseitiges TLS/SSL finden Sie im Abschnitt Beispiele der Azure Key Vault JCA-Clientbibliothek für Java.