首页 > 解决方案 > 使用 ARM 模板创建用户管理的身份和服务器管理员

问题描述

我想将用户管理的身份作为管理员添加到 azure 中的 sql server 资源。我可以使用这样的 ARM 模板创建用户身份:

{
    "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
    "name": "[variables('identityName')]",
    "apiVersion": "2018-11-30",
    "location": "[resourceGroup().location]"
},

我也可以从 ARM 模板创建管理员资源。但是如何在管理员资源中引用上面创建的身份呢?:

{
    "name": "[concat(variables('serverName'),'/ActiveDirectory')]",
    "type": "Microsoft.Sql/servers/administrators",
    "dependsOn": [
        "[resourceId('Microsoft.Sql/servers', variables('serverName'))]"
    ],
    "apiVersion": "2019-06-01-preview",
    "properties": {
        "administratorType": "ActiveDirectory",
        "login": "[parameters('identityName')]",
        "sid": "<How do I add reference here>",
        "tenantId": "<How do I add reference here>"
    }
}

标签: azureazure-resource-managerazure-sql-server

解决方案


我尝试了一些东西,以下似乎工作正常:

{
            "name": "[concat(variables('serverName'),'/ActiveDirectory')]",
            "type": "Microsoft.Sql/servers/administrators",
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', variables('serverName'))]",
                "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
            ],
            "apiVersion": "2019-06-01-preview",
            "properties": {
                "administratorType": "ActiveDirectory",
                "login": "[variables('identityName')]",
                "sid": "[reference(concat('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('identityName'))).clientId]",
                "tenantId": "[reference(concat('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('identityName'))).tenantId]"
            }
        },

推荐阅读