You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求完善可实现Azure AD应用注册与客户端密钥创建的ARM模板

求完善可实现Azure AD应用注册与客户端密钥创建的ARM模板

我来帮你完善这个ARM模板,让它能同时完成Azure AD应用注册和客户端密钥的创建。你的现有模板已经实现了AD应用创建和订阅级Contributor角色分配,但缺少客户端密钥(Client Secret)的生成逻辑,下面是补充后的完整模板:

完整修改后的ARM模板

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "appName": {
            "type": "string",
            "metadata": {
                "description": "The name of the application."
            }
        },
        "clientSecretDisplayName": {
            "type": "string",
            "defaultValue": "Auto-Generated-Secret",
            "metadata": {
                "description": "Display name for the client secret to identify it in Azure AD."
            }
        },
        "clientSecretEndDate": {
            "type": "string",
            "defaultValue": "2029-12-31T23:59:59Z",
            "metadata": {
                "description": "Expiration date of the client secret (format: yyyy-MM-ddTHH:mm:ssZ)."
            }
        }
    },
    "resources": [
        {
            "type": "Microsoft.AzureAD/applications",
            "apiVersion": "2021-07-01",
            "name": "[parameters('appName')]",
            "location": "westus",
            "properties": {
                "displayName": "[parameters('appName')]"
            }
        },
        {
            "type": "Microsoft.AzureAD/applications/passwordCredentials",
            "apiVersion": "2021-07-01",
            "name": "[concat(parameters('appName'), '/', guid(parameters('appName')))]",
            "dependsOn": [
                "[resourceId('Microsoft.AzureAD/applications', parameters('appName'))]"
            ],
            "properties": {
                "displayName": "[parameters('clientSecretDisplayName')]",
                "startDateTime": "[utcNow()]",
                "endDateTime": "[parameters('clientSecretEndDate')]"
            }
        },
        {
            "type": "Microsoft.Authorization/roleAssignments",
            "apiVersion": "2020-04-01-preview",
            "name": "[guid(concat('Microsoft.Authorization/roleAssignments/', parameters('appName')))]",
            "dependsOn": [
                "[resourceId('Microsoft.AzureAD/applications', parameters('appName'))]"
            ],
            "properties": {
                "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '1f3afdf9-d0c9-4c3d-847f-89da613e70a8')]",
                "principalId": "[reference(concat('Microsoft.AzureAD/applications/', parameters('appName')), '2021-07-01', 'Full').objectId]",
                "scope": "[subscription().id]"
            }
        }
    ],
    "outputs": {
        "applicationId": {
            "type": "string",
            "value": "[reference(concat('Microsoft.AzureAD/applications/', parameters('appName')), '2021-07-01').appId]"
        },
        "tenantId": {
            "type": "string",
            "value": "[subscription().tenantId]"
        },
        "clientSecretId": {
            "type": "string",
            "value": "[reference(concat('Microsoft.AzureAD/applications/', parameters('appName'), '/', guid(parameters('appName'))), '2021-07-01').keyId]"
        }
    }
}

关键修改说明

  • 新增客户端密钥参数:添加了clientSecretDisplayName(密钥显示名)和clientSecretEndDate(密钥过期时间)两个参数,让你可以灵活配置密钥的标识和有效期。
  • 添加客户端密钥资源:新增Microsoft.AzureAD/applications/passwordCredentials类型的子资源,作为AD应用的附属资源,确保密钥和应用关联。
  • 依赖关系调整:给角色分配和密钥资源都添加了对AD应用资源的依赖,保证资源创建顺序正确(先有应用,再创建密钥和分配角色)。
  • 输出扩展:新增clientSecretId输出,方便后续引用密钥的唯一标识。

重要注意事项

ARM模板无法直接输出客户端密钥的明文,因为Azure在创建密钥后不会存储明文内容,仅在创建时返回一次。如果你需要自动化获取明文密钥,可以在模板部署完成后,使用Azure CLI执行以下命令:

az ad app credential list --id [你的应用ID] --query "[?keyId=='[输出的clientSecretId]'].secretText" -o tsv

或者在Azure门户的应用注册→证书和机密中查看(仅能查看一次,之后会隐藏)。

备注:内容来源于stack exchange,提问作者DAK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:14:52