Пример #1
0
        private object SetFunctionAppAuthenticationAsync(OperationRunner context)
        {
            AzureClient client = new AzureClient(WizardContext.TokenProvider);

            client.SetLogger(context.Logger);

            AppServiceAuthSettings authSettings = client.GetAppServiceAuthSettingsAsync(
                DataModel.InstallationConfiguration.Azure.SelectedSubscription.Id,
                DataModel.InstallationConfiguration.Azure.ResourceGroupName,
                DataModel.InstallationConfiguration.Azure.FunctionApp.AppName).Result;

            if (authSettings == null)
            {
                throw new Exception("Could not obtain authentication settings for Azure Function App!");
            }

            authSettings.Enabled              = "true";
            authSettings.DefaultProvider      = "AzureActiveDirectory";
            authSettings.IsAadAutoProvisioned = "false";
            authSettings.ClientId             = DataModel.InstallationConfiguration.Azure.FunctionApp.ApplicationId;
            authSettings.Issuer           = "https://sts.windows.net/" + WizardContext.TokenProvider.GetTenantId() + "/";
            authSettings.AllowedAudiences = new string[] { DataModel.InstallationConfiguration.Azure.FunctionApp.ApplicationId };

            return(client.UpdateAppServiceAuthSettingsAsync(
                       DataModel.InstallationConfiguration.Azure.SelectedSubscription.Id,
                       DataModel.InstallationConfiguration.Azure.ResourceGroupName,
                       DataModel.InstallationConfiguration.Azure.FunctionApp.AppName,
                       authSettings).Result);
        }