diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-02-25 16:25:40 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-02-25 16:25:40 +0200 |
| commit | 0523d927f31acc3be070fa6281c3108aaefe65c2 (patch) | |
| tree | 3467788bf39bd919977d2a6fa42d62ceda03dc70 /Software/Visual_Studio | |
| parent | 1d2a8fcc28a69b87f8deb3f08323c9a80e3631e2 (diff) | |
| download | Tango-0523d927f31acc3be070fa6281c3108aaefe65c2.tar.gz Tango-0523d927f31acc3be070fa6281c3108aaefe65c2.zip | |
Azure Utils: Added Tango WebApp user creation and permission on database for token authentication.
Also added to Azure notes.
Diffstat (limited to 'Software/Visual_Studio')
5 files changed, 36 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentCreationView.xaml b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentCreationView.xaml index 05f917e5b..54fe2f7be 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentCreationView.xaml +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils.UI/Views/EnvironmentCreationView.xaml @@ -40,6 +40,7 @@ <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.CreateDatabase}" >Create Database</CheckBox> <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.AddDatabasePermissionsForEnvironmentGroup}" >Add Database Permissions for Environment Group</CheckBox> <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.CreateDatabaseBackupUser}" >Create Database Backup User</CheckBox> + <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.CreateDatabaseTangoWebApplicationUser}" >Create Database Tango WebApp User</CheckBox> <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.SynchronizeDatabaseSchema}">Synchronize Database Schema</CheckBox> <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.SynchronizeDatabaseData}">Synchronize Database Static Collections</CheckBox> <CheckBox Margin="0 5 0 0" IsChecked="{Binding Config.CreateStorageContainers}">Create MS and PPC Storage Containers</CheckBox> diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs index cb1a608a8..75a7f321b 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Database/DatabaseManager.cs @@ -198,6 +198,18 @@ namespace Tango.AzureUtils.Database } } + public async Task AddTangoWebAppUser(String address, String databaseName, String userName, String password) + { + OnProgress(AzureUtilsStage.Database, $"Adding Tango WebApp permissions on '{databaseName}'..."); + + using (DbManager db = DbManager.FromCredentials(address, databaseName, userName, password)) + { + await db.ExecuteCommandAsync("CREATE USER [Tango] FOR LOGIN [BackupUser] WITH DEFAULT_SCHEMA=[dbo]"); + await db.ExecuteCommandAsync("EXEC sp_addrolemember N'db_datareader', N'Tango'"); + await db.ExecuteCommandAsync("EXEC sp_addrolemember N'db_datawriter', N'Tango'"); + } + } + #endregion #region Versions diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/CreateEnvironmentConfiguration.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/CreateEnvironmentConfiguration.cs index e8162e4c0..e538f3094 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/CreateEnvironmentConfiguration.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/CreateEnvironmentConfiguration.cs @@ -18,6 +18,7 @@ namespace Tango.AzureUtils.Environment public bool CreateDatabase { get; set; } = true; public bool AddDatabasePermissionsForEnvironmentGroup { get; set; } = true; public bool CreateDatabaseBackupUser { get; set; } = true; + public bool CreateDatabaseTangoWebApplicationUser { get; set; } = true; public bool SynchronizeDatabaseSchema { get; set; } = true; public bool SynchronizeDatabaseData { get; set; } = true; public bool CreateStorageContainers { get; set; } = true; diff --git a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs index 53665a73d..19ccb8f92 100644 --- a/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs +++ b/Software/Visual_Studio/Azure/Tango.AzureUtils/Environment/EnvironmentManager.cs @@ -138,6 +138,20 @@ namespace Tango.AzureUtils.Environment } } + //Create Tango web application user + if (config.CreateDatabaseTangoWebApplicationUser) + { + try + { + await _databaseManager.AddTangoWebAppUser(sourceSettings.DB_ADDRESS, targetSettings.DB_CATALOG, sourceSettings.DB_USER_NAME, sourceSettings.DB_PASSWORD); + } + catch (Exception ex) + { + + await RequestConfirmation($"Error creating/adding permissions for Tango web application on database.\n{ex.FlattenMessage()}\n\nDo you wish to continue?"); + } + } + //Synchronize Schema if (config.SynchronizeDatabaseSchema) { diff --git a/Software/Visual_Studio/Notes/Tango.Notes/Azure/New Environment.txt b/Software/Visual_Studio/Notes/Tango.Notes/Azure/New Environment.txt index dd0e4174e..710cdcb2d 100644 --- a/Software/Visual_Studio/Notes/Tango.Notes/Azure/New Environment.txt +++ b/Software/Visual_Studio/Notes/Tango.Notes/Azure/New Environment.txt @@ -36,6 +36,14 @@ EXEC sp_addrolemember N'db_backupoperator', N'BackupUser' EXEC sp_addrolemember N'db_datareader', N'BackupUser' EXEC sp_addrolemember N'db_datawriter', N'BackupUser' +8.2 Create the Tango web application user (for token based authentication) + +CREATE USER [Tango] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA=[dbo] +GO + +EXEC sp_addrolemember N'db_datareader', N'BackupUser' +EXEC sp_addrolemember N'db_datawriter', N'BackupUser' + 9. Create a new storage blob container for the machine studio versions. 10. Create a new storage blob container for the PPC versions. |
