Freigeben über


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:

  1. Erstellen Sie eine Kopie der datei java.security in Ihrer JVM-Installation, und benennen 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. Beispielsweise sollte security.provider.13security.provider.14werden.

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

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

  2. Fügen Sie -Djava.security.properties==my.java.security der Befehlszeile hinzu.

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

  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-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, passwordund tenantzu 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.

Nächste Schritte