Share via


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:

  1. Erstellen Sie eine Kopie der Java.security-Datei in Ihrer JVM-Installation, und nennen Sie die Datei "my.java.security".

  2. 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

  3. Erhöhen Sie die Anzahl dieses Eintrags um 1. Beispiel: security.provider.13 sollte .security.provider.14

  4. 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:

  1. 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.

  2. Zur Befehlszeile hinzufügen -Djava.security.properties==my.java.security .

  3. 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/

  4. 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.

Nächste Schritte