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

How to configure an Azure Function to use Azure B2C in an Azure Resource Manager Template?

我有一个 ARM 模板,我正在其中配置一个函数应用程序。

这是我处理函数应用程序的 ARM 模板示例:

{
    "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 Function 配置为使用 Azure B2C 进行授权。我正在关注 existing instructions 但我未能获得预期的结果。例如,在下面的示例中,我只是尝试激活应用服务身份验证:

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

此配置中未指定任何其他内容,因为其他所有内容都是可选的。我只是想看看我是否戳对了地方。这是我 运行 ARM 模板后的授权/身份验证页面:

配置似乎已损坏。

问题

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

基于我的另一个 answer

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

{
                "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 的值,您可以添加来自此 的信息:

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