Создайте подключение API к Azure KeyVault, используя проверку подлинности субъекта-службы через шаблон ARM

Я пытаюсь развернуть ресурс Microsoft.Web/connections, используя шаблон ARM. Соединение API подключается к Key Vault в другом клиенте, поэтому для аутентификации мне нужно использовать субъект-службу.

Мне удалось развернуть ресурс, но соединение завершается с ошибкой: Unauthorized при попытке доступа к Key Vault в действии моего приложения логики. Я настроил соединение вручную, чтобы обеспечить правильную настройку субъекта-службы, поэтому я знаю, что это, должно быть, ошибка в моем разделе parameterValues в моем шаблоне ARM.

Я использовал этот инструмент, чтобы попытаться выяснить, что нужно в разделе parameterValues, но я не уверен, что все правильно.

Вот мой отредактированный шаблон ARM для подключения:

{
            "type": "Microsoft.Web/connections",
            "apiVersion": "2016-06-01",
            "name": "NAME_OF_CONNECTION,
            "location": "[resourceGroup().location]",
            "properties": {
                "displayName": "NAME_OF_CONNECTION",
                "api": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/keyvault')]"
                },
                "parameterValues": {
                    "vaultName":"NAME_OF_VAULT",
                    "token:clientId" : "GUID_HERE",
                    "token:clientSecret" : "SECRET_HERE",
                    "token:TenantId" : "GUID_HERE",
                    "token:resourceUri": "https://NAME_OF_VAULT.vault.azure.net/",
                    "token:grantType": "client_credentials"
                }
            }
        }

Можно ли сделать это? Я не понимаю, почему бы и нет. Если да, то почему это нигде не описано?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте использовать "token:resourceUri": "https://vault.azure.net" (без NAME_OF_VAULT и без косой черты в конце).

попробуйте "token:resourceUri": "https://vault.azure.net". ссылка здесь явно требует использования этого в заголовке. https://learn.microsoft.com/en-us/azure/key-vault/general/authentication-requests-and-responses#authentication

Если вышеуказанное не работает, попробуйте изменить на "token:resourceUri": "https://management.azure.com/"

https://vault.azure.net — это то, что необходимо для этой работы. Я использовал URI из свойств, отображаемых в моем хранилище ключей Azure. Спасибо
LJsec 03.06.2024 11:36

Другие вопросы по теме

Скопируйте папку вместе с файлами из Azure Blob в SharePoint
Развертывание приложения логики (стандартное) через конвейер DevOps — служба kudu недоступна 503
Как запустить приложение Azure Logic, если файл не загружается в хранилище BLOB-объектов? Когда у вас замена предыдущего файла?
Как перебрать массив JSON и прочитать определенное значение с помощью приложения логики?
Создайте рабочий процесс в текущем спринте DevOps с помощью приложений логики
Использование Terraform для развертывания стандартного приложения логики с картами шаблонов Liquid
VSCode Logic App func.exe Тип транспорта служебной шины
Обеспечение рабочего процесса и подключения API для стандартного приложения логики с помощью шаблонов/скриптов Bicep
Как я могу получить UPN человека, который активирует рабочий процесс управления жизненным циклом идентификации EntraID?
Фабрика данных Azure находит объект JSON по определенной строке/значению, а затем выбирает другое значение