Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как интегрировать Azure Key Vault в JVM для доставки TLS/SSL-сертификатов.
Добавление поставщика JCA в файл java.security
Чтобы зарегистрировать поставщика JCA, JVM должен знать об этом. Чтобы выполнить эту задачу, выполните следующие действия.
Создайте копию файла java.security
в установке JVM и присвойте файлу my.java.security .В файле найдите строку
security.provider.<maximum-value>. Замените заполнитель<maximum-value>максимальным значением в этой позиции среди всех записей. Например,security.provider.13=SunPKCS11.Увеличьте число этой записи на 1. Например,
security.provider.13должен статьsecurity.provider.14.Добавьте следующую строку:
security.provider.14=com.azure.security.keyvault.jca.KeyVaultJcaProvider
Заметка
Убедитесь, что каждая запись security.provider.<X> имеет разное числовое значение для <X>и сохраните их в возрастающем порядке, начиная с 1.
Запуск приложения
Чтобы запустить приложение, выполните следующие действия и замените заполнители <...> собственными значениями:
Добавьте файл azure-security-keyvault-jca-X.Y.Z.jar в класспас. Например, если вы хотите выполнить интеграцию с Tomcat 9, добавьте полный путь к файлу azure-security-keyvault-jca-X.Y.Z.jar в classpath Java с помощью tomcat9w.exe.
Добавьте
-Djava.security.properties==my.java.securityв командную строку.Добавьте
-Dazure.keyvault.uri=<your-keyvault-uri>в командную строку, чтобы указать, какой azure Key Vault следует использовать. Например,-Dazure.keyvault.uri=https://some.vault.azure.net/.Добавьте аргументы, указанные в следующем списке, в зависимости от сценария:
Если вы проходите проверку подлинности с помощью субъекта-службы, добавьте следующие аргументы:
-Dazure.keyvault.tenant-id=<your-tenant-id>-Dazure.keyvault.client-id=<your-client-id>-Dazure.keyvault.client-secret=<your-client-secret>
Если вы выполняете аутентификацию с помощью управляемого идентификатора, назначенного системой, не добавляйте никаких дополнительных аргументов.
Если вы проходите аутентификацию с помощью управляемого удостоверения, назначаемого пользователем, добавьте следующий аргумент:
-Dazure.keyvault.managed-identity=<object-id-of-your-user-managed-identity>
Дополнительные сведения об этих сценариях проверки подлинности см. в статьях Объекты приложений и сервис-принципалов в Microsoft Entra ID и Как управляемые удостоверения для ресурсов Azure работают с виртуальными машинами Azure.
Использование служебного принципала
Чтобы создать идентификатор клиента Azure и секрет клиента Azure, выполните следующую команду. Замените заполнители <...> своими значениями. Не забудьте сохранить возвращаемые значения, например 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}
Сохраните возвращаемые значения, чтобы использовать их позже.
Убедитесь, что клиент, указанный CLIENT_ID, может получить доступ к целевому хранилищу ключей. Чтобы предоставить доступ, используйте следующую команду, заменив заполнитель <your-key-vault-name>:
az keyvault set-policy \
--name <your-key-vault-name> \
--spn ${CLIENT_ID} \
--secret-permissions get list \
--certificate-permissions get list \
--key-permissions get list
Используйте управляемое удостоверение
Чтобы включить управляемое удостоверение, назначаемое системой, или создать управляемое удостоверение, назначаемое пользователем, следуйте инструкциям по адресу Назначаемые системой управляемые удостоверения для Azure ресурсов на виртуальной машине Azure с помощью Azure CLI.
После получения идентификатора объекта управляемого удостоверения используйте следующую команду, чтобы создать политику доступа к Key Vault для управляемого удостоверения:
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
Заметка
Идентификатор объекта управляемого удостоверения также называется основным идентификатором при использовании управляемого удостоверения, назначенного пользователем.
Примеры TLS/SSL на стороне клиента или сервера
Примеры протокола TLS/SSL на стороне клиента и сервера см. в разделе примеров клиентской библиотеки JCA Azure Key Vault для Java.