Używanie usługi Azure Key Vault do dostarczania certyfikatów TLS/SSL do maszyny wirtualnej JVM
W tym artykule opisano sposób integrowania usługi Azure Key Vault z maszyną wirtualną JVM w celu dostarczania certyfikatów TLS/SSL.
Dodawanie dostawcy JCA do pliku java.security
Aby zarejestrować dostawcę JCA, należy wiedzieć o nim maszynę JVM. Aby wykonać to zadanie, wykonaj następujące czynności:
Utwórz kopię pliku java.security w instalacji JVM i nadaj plikowi nazwę my.java.security.
Wewnątrz pliku wyszukaj wiersz
security.provider.<maximum-value>
.<maximum-value>
Zastąp symbol zastępczy wartością maksymalną na tej pozycji we wszystkich pozycjach. Na przykład:security.provider.13=SunPKCS11
.Zwiększa liczbę tego wpisu o 1. Na przykład
security.provider.13
powinna stać się .security.provider.14
Dodaj następujący wiersz:
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
Uwaga
Upewnij się, że każdy security.provider.<X>
wpis ma inną wartość liczbową dla <X>
elementu i zachowaj je przyrostowo uporządkowane, zaczynając od 1.
Jak uruchomić aplikację
Aby uruchomić aplikację, wykonaj następujące kroki i zastąp <...>
symbole zastępcze własnymi wartościami:
Dodaj plik azure-security-keyvault-jca-X.Y.Z.jar do ścieżki klasy. Jeśli na przykład chcesz zintegrować z serwerem Tomcat 9, dodaj pełną ścieżkę pliku azure-security-keyvault-jca-X.Y.Z.jar do ścieżki klasy Java przy użyciu pliku tomcat9w.exe.
Dodaj
-Djava.security.properties==my.java.security
do wiersza polecenia.Dodaj
-Dazure.keyvault.uri=<your-keyvault-uri>
do wiersza polecenia, aby wskazać, którego usługi Azure Key Vault użyć. Na przykład:-Dazure.keyvault.uri=https://some.vault.azure.net/
.Dodaj argumenty wskazane na poniższej liście w zależności od scenariusza:
W przypadku uwierzytelniania przy użyciu jednostki usługi dodaj następujące argumenty:
-Dazure.keyvault.tenant-id=<your-tenant-id>
-Dazure.keyvault.client-id=<your-client-id>
-Dazure.keyvault.client-secret=<your-client-secret>
W przypadku uwierzytelniania przy użyciu tożsamości zarządzanej przypisanej przez system nie są wymagane żadne argumenty.
W przypadku uwierzytelniania przy użyciu tożsamości zarządzanej przypisanej przez użytkownika dodaj następujący argument:
-Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>
Aby uzyskać więcej informacji na temat tych scenariuszy uwierzytelniania, zobacz Application and service principal objects in Microsoft Entra ID and How managed identities for Azure resources work with Azure virtual machines (Jak tożsamości zarządzane dla zasobów platformy Azure działają z maszynami wirtualnymi platformy Azure).
Korzystanie z jednostki usługi
Aby utworzyć identyfikator klienta platformy Azure i wpis tajny klienta platformy Azure, użyj następującego polecenia, zastępując <...>
symbole zastępcze własnymi wartościami. Pamiętaj, aby przechowywać zwrócone wartości, takie jak appId
, 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}
Zapisz zwrócone wartości, aby można było ich użyć później.
Upewnij się, że klient określony przez program CLIENT_ID
może uzyskać dostęp do docelowego magazynu kluczy. Aby udzielić dostępu, użyj następującego polecenia, zastępując <your-key-vault-name>
symbol zastępczy:
az keyvault set-policy \
--name <your-key-vault-name> \
--spn ${CLIENT_ID} \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Korzystanie z tożsamości zarządzanej
Aby włączyć tożsamość zarządzaną przypisaną przez system lub utworzyć tożsamość zarządzaną przypisaną przez użytkownika, postępuj zgodnie z instrukcjami w temacie Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure
Po otrzymaniu identyfikatora obiektu tożsamości zarządzanej użyj następującego polecenia, aby utworzyć zasady dostępu usługi Key Vault dla tożsamości zarządzanej:
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
Uwaga
Identyfikator obiektu tożsamości zarządzanej jest również nazywany identyfikatorem podmiotu zabezpieczeń podczas korzystania z tożsamości zarządzanej przypisanej przez użytkownika.
Przykłady protokołu TLS/SSL po stronie klienta/serwera
Przykłady protokołu TLS/SSL po stronie klienta/serwera można znaleźć w sekcji Przykłady biblioteki klienta JCA usługi Azure Key Vault dla języka Java.
Następne kroki
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla