1

La fonctionnalité "Authentification et autorisation simplifiées" d'Azure App Service fonctionne dans mon application Azure Function si je la configure manuellement. Cela ne fonctionne pas lorsque j'utilise un modèle ARM.Authentification et autorisation simplifiées dans l'application Azure Function à l'aide du modèle ARM

J'ai utilisé ce site pour déterminer les valeurs de configuration: https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.websites.models.siteauthsettings?view=azuremgmtwebsites-1.6.0-preview

C'est ce qu'il ressemble, des idées?

EDIT: après avoir vérifié la configuration obtenue à https://resources.azure.com je vois que « siteAuthEnabled » et « siteAuthSettings » ne sont pas appliquées du tout. Devraient-ils être spécifiés ailleurs?

{ 
    "apiVersion": "2016-08-01", 
    "type": "Microsoft.Web/sites", 
    "name": "[parameters('webApiFunctionAppName')]", 
    "location": "[resourceGroup().location]", 
    "kind": "functionapp", 
    "dependsOn": [ 
    "[resourceId('Microsoft.Web/serverfarms', variables('webApiFunctionAppHostingPlanName'))]", 
    "[resourceId('Microsoft.Storage/storageAccounts', variables('azFunctionsAppStorageAccountName'))]" 
    ], 
    "resources": [{ 
    "apiVersion": "2016-08-01", 
    "name": "[concat(parameters('webApiFunctionAppName'), '/authsettings')]", 
    "type": "Microsoft.Web/sites/config", 
    "dependsOn": [ 
     "[concat('Microsoft.Web/sites/', parameters('webApiFunctionAppName'))]" 
    ], 
    "properties": { 
     "netFrameworkVersion": "v4.0", 
     "managedPipelineMode": "Integrated", 
     "siteAuthEnabled": true, 
     "siteAuthSettings": { 
     "enabled": true, 
     "unauthenticatedClientAction": "RedirectToLoginPage", 
     "tokenStoreEnabled": true, 
     "allowedExternalRedirectUrls": null, 
     "defaultProvider": "AzureActiveDirectory", 
     "clientId": "[parameters('aadClientId')]", 
     "clientSecret": null, 
     "issuer": "[concat('https://sts.windows.net/', parameters('aadTenant'), '/')]", 
     "allowedAudiences": null, 
     "isAadAutoProvisioned": false 
     } 
    } 
    }], 
    "properties": { 
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('webApiFunctionAppHostingPlanName'))]", 
    "hostNameSslStates": [{ 
     "name": "[concat(parameters('webApiFunctionAppName'),'.azurewebsites.net')]", 
     "sslState": "Disabled", 
     "virtualIP": null, 
     "thumbprint": null, 
     "toUpdate": null, 
     "hostType": "Standard" 
     }, 
     { 
     "name": "[concat(parameters('webApiFunctionAppName'),'.scm.azurewebsites.net')]", 
     "sslState": "Disabled", 
     "virtualIP": null, 
     "thumbprint": null, 
     "toUpdate": null, 
     "hostType": "Repository" 
     } 
    ], 
    "siteConfig": { 
     "appSettings": [{ 
      "name": "AzureWebJobsDashboard", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "AzureWebJobsStorage", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "FUNCTIONS_EXTENSION_VERSION", 
      "value": "~1" 
     }, 
     { 
      "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "WEBSITE_CONTENTSHARE", 
      "value": "[toLower(parameters('webApiFunctionAppName'))]" 
     } 
     ] 
    } 
    } 
} 
+1

Dans les situations où une configuration fonctionne, mais pas l'autre, je vais à https://resources.azure.com pour voir les configurations de chacun. Cela me permet de voir comment chaque ressource est configurée et de voir où ils diffèrent. –

+0

@ AndrésNava-.NET merci pour l'indice. S'il vous plaît voir mon EDIT – Helikaon

Répondre

3

Ok AVEZ OBTENU. Ce modèle fonctionne.

{ 
    "apiVersion": "2016-08-01", 
    "type": "Microsoft.Web/sites", 
    "name": "[parameters('webApiFunctionAppName')]", 
    "location": "[resourceGroup().location]", 
    "kind": "functionapp", 
    "dependsOn": [ 
    "[resourceId('Microsoft.Web/serverfarms', variables('webApiFunctionAppHostingPlanName'))]", 
    "[resourceId('Microsoft.Storage/storageAccounts', variables('azFunctionsAppStorageAccountName'))]" 
    ], 
    "resources": [{ 
    "name": "[concat(parameters('webApiFunctionAppName'), '/authsettings')]", 
    "apiVersion": "2016-08-01", 
    "type": "Microsoft.Web/sites/config", 
    "location": "[resourceGroup().location]", 
    "dependsOn": [ 
     "[resourceId('Microsoft.Web/sites', parameters('webApiFunctionAppName'))]" 
    ], 
    "properties": { 
     "enabled": true, 
     "unauthenticatedClientAction": "RedirectToLoginPage", 
     "tokenStoreEnabled": true, 
     "defaultProvider": "AzureActiveDirectory", 
     "clientId": "[parameters('aadClientId')]", 
     "issuer": "[concat('https://sts.windows.net/', parameters('aadTenant'), '/')]" 
    } 
    }], 
    "properties": { 
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('webApiFunctionAppHostingPlanName'))]", 
    "hostNameSslStates": [{ 
     "name": "[concat(parameters('webApiFunctionAppName'),'.azurewebsites.net')]", 
     "sslState": "Disabled", 
     "virtualIP": null, 
     "thumbprint": null, 
     "toUpdate": null, 
     "hostType": "Standard" 
     }, 
     { 
     "name": "[concat(parameters('webApiFunctionAppName'),'.scm.azurewebsites.net')]", 
     "sslState": "Disabled", 
     "virtualIP": null, 
     "thumbprint": null, 
     "toUpdate": null, 
     "hostType": "Repository" 
     } 
    ], 
    "siteConfig": { 
     "appSettings": [{ 
      "name": "AzureWebJobsDashboard", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "AzureWebJobsStorage", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "FUNCTIONS_EXTENSION_VERSION", 
      "value": "~1" 
     }, 
     { 
      "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING", 
      "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('azFunctionsAppStorageAccountName'), ';AccountKey=', listKeys(variables('azFunctionAppStorageAccountid'),'2015-05-01-preview').key1)]" 
     }, 
     { 
      "name": "WEBSITE_CONTENTSHARE", 
      "value": "[toLower(parameters('webApiFunctionAppName'))]" 
     } 
     ] 
    } 
    } 
}