如何在Azure资源管理器模板中配置Azure功能以使用Azure B2C?

问题描述

我有一个用于配置Function App的ARM模板。

这是我的ARM模板的示例,该模板处理Function App:

{
    "apiVersion": "2015-08-01","type": "Microsoft.Web/sites","name": "MyAzureFunctionName","location": "[resourceGroup().location]","kind": "functionapp","dependsOn": [
         "[resourceId('Microsoft.Web/serverfarms',variables('nameWithDashes'))]","[resourceId('Microsoft.Storage/storageAccounts',variables('storageName'))]"
    ],"properties": {
         "serverFarmId": "[resourceId('Microsoft.Web/serverfarms','MyAzureFunctionName')]","httpsOnly": true,"siteConfig": {
             "appSettings": [
                 {
                     ...
                 }]
         }
     }
}

我正在尝试将Azure功能配置为使用Azure B2C进行授权。我正在关注existing instructions,但无法获得预期的结果。例如,在下面的示例中,我只是尝试激活App Service身份验证:

{
     "apiVersion": "2020-06-01","name": "[concat('MyAzureFunctionName','/authsettingsV2')]","type": "Microsoft.Web/sites/config","dependsOn": [
         "[resourceId('Microsoft.Web/sites/','MyAzureFunctionName')]"
     ],"properties": {
         "enabled": "true"
     }
}

此配置中未指定其他任何内容,因为其他所有内容均为可选。我只是想看看我是否在选择正确的东西。运行ARM模板后,这是“授权/身份验证”页面

enter image description here

配置似乎已损坏。

问题

如何将我的Function App配置为在Azure资源管理器模板中使用Azure B2C?

解决方法

基于我的其他answer

此示例适用于我的应用程序(包括Azure功能):

{
                "apiVersion": "2015-08-01","name": "web","type": "config","dependsOn": [
                    "[resourceId('Microsoft.Web/Sites',parameters('webAppName'))]"
                ],"properties": {
                    "siteAuthEnabled": "[parameters('enableAadAuthentication')]","siteAuthSettings": {
                      "clientId": "[parameters('aadClientId')]","issuer": "[parameters('aadIssuerUrl')]","isAadAutoProvisioned": false
                    }
                }
            }

对于B2C的值,您可以添加来自此answer的信息:

  • aadClientId:您的applicationId
  • enableAadAuthentication:是
  • aadIssuerUrl:元数据端点URL。如果查看Azure门户中的登录策略,则可以找到它。例如:https://yourtenant.b2clogin.com/yourtenant.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_signup_signin