#azure #azure-service-fabric #azure-resource-manager
Вопрос:
Есть ли способ получить идентификатор участника службы Azure AD с помощью встроенной функции шаблона ARM? Я ищу эквивалент РУКИ Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
и рисую пробел.
Контекст: Я следую руководству по развертыванию управляемого кластера Service Fabric с использованием существующего балансировщика нагрузки, и в этом руководстве запрашивается, чтобы вы выполнили команду powershell, чтобы получить идентификатор участника службы поставщика ресурсов, а затем жестко запрограммировали указанный идентификатор в шаблоне ARM. Ожидается, что этот идентификатор будет отличаться в зависимости от арендатора, и один и тот же шаблон будет развернут для нескольких арендаторов.
Комментарии:
1. Нет, вы не можете получить объект AAD из РУКИ. Это разные API. Лучший вариант для вас-передать идентификатор SP в качестве параметра шаблона ARM.
Ответ №1:
Для некоторых ресурсов Azure можно использовать reference
функцию шаблона с full
параметром для получения свойств идентификации.
Однако общего способа получения идентификатора субъекта-службы в ARM нет. Командлет Get-AzADServicePrincipal
powershell требует разрешений на диаграмму Azure AD, которые в настоящее время не могут быть предоставлены назначенным пользователем службам MSIS в шаблонах ARM.
Ответ №2:
Мы можем использовать пространство имен поставщика ресурсов в качестве Microsoft.Компонент обслуживания
Также, можно использовать приведенный ниже способ получения идентификатора принципа, просто нужно передать несколько параметров.
[reference(concat(resourceId('Microsoft.Web/sites', variables('uniqueResourceNameBase')), '/providers/Microsoft.ManagedIdentity/Identities/default'), '2015-08-31-PREVIEW').principalId]
Шаблон ссылки, как показано ниже:
{
"type": "Microsoft.KeyVault/vaults",
"name": "[variables('uniqueResourceNameBase')]",
"apiVersion": "2016-10-01",
"location": "[resourceGroup().location]",
"properties": {
"sku": {
"family": "A",
"name": "standard"
},
"tenantId": "[subscription().tenantid]",
"accessPolicies": [
{
"tenantId": "[subscription().tenantid]",
"objectId": "[reference(concat(resourceId('Microsoft.Web/sites', variables('uniqueResourceNameBase')), '/providers/Microsoft.ManagedIdentity/Identities/default'), '2015-08-31-PREVIEW').principalId]",
"permissions": {
"keys": [],
"secrets": [
"get"
],
"certificates": []
}
}
],
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('uniqueResourceNameBase'))]"
]
}
Примечание.Измените пространство имен поставщика ресурсов и параметры в соответствии с вашими требованиями.