From 1ed4b974f2a63d2e131f9f7892635f0c50bb3f9e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 12 Sep 2020 16:27:34 -0500 Subject: [PATCH] v2.4 (#206) * form control (#204) Introducing a simple piece of logic that controls the Autodiscover URL Textbox availability. While validation hasn't been introduced here, this results in a noticeable/visible change when toggling the checkbox that should help stand out. * OAuth 2.0 Support (#205) * hyperlink support adding hyperlink support to the General page * Azure Tenant/App fields Adding text box controls to define the Azure Application and Tenant IDs. Still need to bind these to settings within the Settings MP. Also includes URL to wiki for walk through. * stock connector url Updating the URL for stock Microsoft Exchange Connector from v3.1 to v4.0 * DLL updates for MSAL Updating the DLL form with a label, text field for the MSAL DLL path, and a browse button for it. * wrong text field copy and paste of the function. forgot to update to the correct text field. * naming convention typo was using txMSALDLL as opposed to txtMSALDLL * updating class properties Introducing new class properties for Azure Client ID, Azure Tenant ID, and the Microsoft Authentication Library (MSAL) dll path. * control bindings Bindings for MSAL file path, Azure Tenant ID, and Azure Application/Client ID * azure bindings updating azure text fields for Tenant ID and Client ID to bind to AdminSettingsWizardData.cs * wrong bindings missed these two items per the last commit * exchange online property adding a boolean to save whether or not exchange online is used * exchange online bindings creating bindings for the checkbox for whether or not Exchange Online is used * checkbox binding Updating the checkbox control to the code behind data binding * config screen Including a screenshot for the wiki documentation * updated screenshot Took a slightly larger screenshot to provide a better context for the wiki * Delete exchangeOnline.PNG * exchange auth logic Introducing if/else to control how to authenticate to exchange and the MSAL dll file path variable * Exchange Online variable variable to control the if/else for which Exchange based Authentication to use * obtain access token Retrieving an an OAuth token from Azure to use to authenticate against Exchange Online. * remove MSAL setting dropping MSAL dependency * remove MSAL binding dropping MSAL dependency * remove MSAL configuration dropping MSAL dependency * remove MSAL textbox dropping MSAL dependency * removing MSAL button action dropping MSAL dependency * remove MSAL variable dropping MSAL dependency * inline notes updating documentation on how Exchange connectivity/authentication works depending on the type of Exchange environment you connect to * azure properties retrieving Azure client/tenant properties for Exchange Online use * readme thumbnail image for the readme on oauth 2.0 support * updating features adding verbiage for Exchange Online via OAuth 2.0 * inline notes updating inline version changes * updating form title moving version up for the title bar in the UI * next version updating the next build version * formatting trying to fix/understand nature of the diff --- .../ExchangeOnline/exchangeOnline.png | Bin 0 -> 127007 bytes FeatureScreenshots/OAuth.png | Bin 0 -> 11460 bytes .../SMLets.Exchange.Connector.mpproj.user | 2 +- .../SMLets.Exchange.Connector/Settings.mpx | 25 +++++++- .../AdminSettingsWizardData.cs | 57 +++++++++++++++++- .../AdminTaskHandler.cs | 2 +- .../Forms/DLLForm.xaml | 2 +- .../Forms/GeneralSettingsForm.xaml | 36 ++++++++--- .../Forms/GeneralSettingsForm.xaml.cs | 17 ++++++ README.md | 11 +++- smletsExchangeConnector.ps1 | 45 +++++++++++--- 11 files changed, 175 insertions(+), 22 deletions(-) create mode 100644 ConfigurationScreenshots/ExchangeOnline/exchangeOnline.png create mode 100644 FeatureScreenshots/OAuth.png diff --git a/ConfigurationScreenshots/ExchangeOnline/exchangeOnline.png b/ConfigurationScreenshots/ExchangeOnline/exchangeOnline.png new file mode 100644 index 0000000000000000000000000000000000000000..123a83b5d05c904dab2a1e60640d97c96c7ae8f5 GIT binary patch literal 127007 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 z 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 N1fH&bF6*2UngGDb#{d8T literal 0 HcmV?d00001 diff --git a/FeatureScreenshots/OAuth.png b/FeatureScreenshots/OAuth.png new file mode 100644 index 0000000000000000000000000000000000000000..04a644b5535209872a9fde4ec5b4535ac196e993 GIT binary patch literal 11460 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 e`RTam{~rK50I{wJ*c$c#0000 - 2.0.2016.10 + 2.0.2016.11 True None diff --git a/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx b/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx index 1281bbc1..a21f23ba 100644 --- a/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx +++ b/ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx @@ -43,6 +43,29 @@ MaxLength="256" MinLength="0" Required="false" /> + + + + + + - \ No newline at end of file + diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs index 019262b4..311ec0e0 100644 --- a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminSettingsWizardData.cs @@ -25,6 +25,9 @@ class AdminSettingWizardData : WizardData private String strWorkflowEmailAddress = String.Empty; private Boolean boolEnableAutodiscover = false; private String strAutodiscoverURL = String.Empty; + private Boolean boolEnableExchangeOnline = false; + private String strAzureTenantID = String.Empty; + private String strAzureAppID = String.Empty; //paths private String strEWSFilePath = String.Empty; @@ -288,6 +291,51 @@ public String ExchangeAutodiscoverURL } } } + + public Boolean IsExchangeOnline + { + get + { + return this.boolEnableExchangeOnline; + } + set + { + if (this.boolEnableExchangeOnline != value) + { + this.boolEnableExchangeOnline = value; + } + } + } + + public String AzureTenantID + { + get + { + return this.strAzureTenantID; + } + set + { + if (this.strAzureTenantID != value) + { + this.strAzureTenantID = value; + } + } + } + + public String AzureClientID + { + get + { + return this.strAzureAppID; + } + set + { + if (this.strAzureAppID != value) + { + this.strAzureAppID = value; + } + } + } //file attachments public Boolean IsMaxFileSizeAttachmentsEnabled @@ -2321,6 +2369,10 @@ internal AdminSettingWizardData(EnterpriseManagementObject emoAdminSetting) this.SCSMmanagementServer = emoAdminSetting[smletsExchangeConnectorSettingsClass, "SCSMmgmtServer"].ToString(); this.WorkflowEmailAddress = emoAdminSetting[smletsExchangeConnectorSettingsClass, "WorkflowEmailAddress"].ToString(); this.ExchangeAutodiscoverURL = emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExchangeAutodiscoverURL"].ToString(); + try { this.IsExchangeOnline = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseExchangeOnline"].ToString()); } + catch { this.IsExchangeOnline = false; } + this.AzureClientID = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AzureClientID"].ToString(); + this.AzureTenantID = emoAdminSetting[smletsExchangeConnectorSettingsClass, "AzureTenantID"].ToString(); //Autodiscover try { this.IsAutodiscoverEnabled = Boolean.Parse(emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseAutoDiscover"].ToString()); } @@ -3008,6 +3060,9 @@ public override void AcceptChanges(WizardMode wizardMode) emoAdminSetting[smletsExchangeConnectorSettingsClass, "WorkflowEmailAddress"].Value = this.WorkflowEmailAddress; emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseAutoDiscover"].Value = this.IsAutodiscoverEnabled; emoAdminSetting[smletsExchangeConnectorSettingsClass, "ExchangeAutodiscoverURL"].Value = this.ExchangeAutodiscoverURL; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "UseExchangeOnline"].Value = this.IsExchangeOnline; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AzureClientID"].Value = this.AzureClientID; + emoAdminSetting[smletsExchangeConnectorSettingsClass, "AzureTenantID"].Value = this.AzureTenantID; emoAdminSetting[smletsExchangeConnectorSettingsClass, "CreateUsersNotInCMDB"].Value = this.CreateUsersNotFoundtInCMDB; emoAdminSetting[smletsExchangeConnectorSettingsClass, "IncludeWholeEmail"].Value = this.IncludeWholeEmail; emoAdminSetting[smletsExchangeConnectorSettingsClass, "AttachEmailToWorkItem"].Value = this.AttachEmailToWorkItem; @@ -3297,4 +3352,4 @@ SMLets requires the -Force parameter when the object in question does not derive this.WizardResult = WizardResult.Success; } } -} \ No newline at end of file +} diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs index 24202a4c..905bc52a 100644 --- a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/AdminTaskHandler.cs @@ -57,7 +57,7 @@ against the ServiceManager DB to figure out the following strSingletonBaseManage //Create a new "wizard" (also used for property dialogs as in this case), set the title bar, create the data, and add the pages WizardStory wizard = new WizardStory(); - wizard.WizardWindowTitle = "SMLets Exchange Connector Settings v2.3"; + wizard.WizardWindowTitle = "SMLets Exchange Connector Settings v2.4"; WizardData data = new AdminSettingWizardData(emoAdminSetting); wizard.WizardData = data; wizard.AddLast(new WizardStep("General", typeof(GeneralSettingsForm), wizard.WizardData)); diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml index 5b629997..85f0258d 100644 --- a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/DLLForm.xaml @@ -41,4 +41,4 @@ - \ No newline at end of file + diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml index 4d8dee00..b77ad7af 100644 --- a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml @@ -1,10 +1,12 @@ - + xmlns:Custom="http://schemas.microsoft.com/SystemCenter/Common/UI/Wpf" mc:Ignorable="d" Width="551" Height="479" + xmlns:converters="clr-namespace:SMLetsExchangeConnectorSettingsUI.Validation" > @@ -14,17 +16,37 @@ - + + + + - + - + - \ No newline at end of file + diff --git a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml.cs b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml.cs index da743edc..3c850144 100644 --- a/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml.cs +++ b/ManagementPack/2016/SMLetsExchangeConnectorSettingsUI/Forms/GeneralSettingsForm.xaml.cs @@ -36,5 +36,22 @@ private void WizardRegularPageBase_Loaded(object sender, RoutedEventArgs e) { } + + //take the URL defined in the WPF and open a browser to it + private void Hyperlink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e) + { + System.Diagnostics.Process.Start(e.Uri.AbsoluteUri); + } + + //toggle AutoDiscover URL textbox availability + private void chkUseAutoDiscover_Checked(object sender, RoutedEventArgs e) + { + this.txtAutodiscoverURL.IsEnabled = false; + } + + private void chkUseAutoDiscover_Unchecked(object sender, RoutedEventArgs e) + { + this.txtAutodiscoverURL.IsEnabled = true; + } } } diff --git a/README.md b/README.md index 526b6552..ceaa8ae5 100644 --- a/README.md +++ b/README.md @@ -7,12 +7,21 @@ This PowerShell script leverages the [SMlets module](https://www.powershellgalle ## So what is this for? -The stock Exchange Connector is a seperate download that enables SCSM deployments to leverage an Exchange mailbox to process updates to work items. While incredibly useful, some feel limited by its inability to be customized given its nature as a sealed management pack. This PowerShell script replicates all functionality of [Exchange Connector 3.1](https://www.microsoft.com/en-ca/download/details.aspx?id=45291), introduces a host of new features, and most importantly enables SCSM Administrators to customize the solution to their needs. +The stock Exchange Connector is a seperate download that enables SCSM deployments to leverage an Exchange mailbox to process updates to work items. While incredibly useful, some feel limited by its inability to be customized given its nature as a sealed management pack. This PowerShell script replicates all functionality of [Exchange Connector 4.0](https://www.microsoft.com/en-us/download/details.aspx?id=101579), introduces a host of new features, and most importantly enables SCSM Administrators to customize the solution to their needs. ## Who is this for? This is aimed at SCSM administrators looking to further push the automation limits of what their SCSM deployment can do with inbound email processing. As such, you should be comfortable with PowerShell and navigating SCSM via SMlets. ## What new things can it do? + + + + + + + + +
OAuth 2.0 for Exchange Online (v2.4)
The connector supports OAuth 2.0 authentication via Azure AD Application registration to communicate with Exchange Online. Need help getting setup? The wiki has your covered.
diff --git a/smletsExchangeConnector.ps1 b/smletsExchangeConnector.ps1 index e0d1c67b..aca7c74e 100644 --- a/smletsExchangeConnector.ps1 +++ b/smletsExchangeConnector.ps1 @@ -20,6 +20,7 @@ Requires: PowerShell 4+, SMlets, and Exchange Web Services API (already installe Signed/Encrypted option: .NET 4.5 is required to use MimeKit.dll Misc: The Release Record functionality does not exist in this as no out of box (or 3rd party) Type Projection exists to serve this purpose. You would have to create your own Type Projection in order to leverage this. +Version: 2.4.0 = #171 - Optimization, Support for Exchange Online via OAuth 2.0 tokens Version: 2.3.0 = #55 - Feature, Image Analysis (support for png, jpg, jpeg, bmp, and gif) #5 - Feature, Optical Character Recognition (support for png, jpg, jpeg, bmp, and gif) #54 - Feature, Speech to Text for Audio Files (support for wav and ogg) @@ -153,7 +154,7 @@ $scsmMGMTServer = "$($smexcoSettingsMP.SCSMmgmtServer)" $scsmMGMTCreds = $null #define/use SCSM WF credentials -#$exchangeAuthenticationType - "windows" or "impersonation" are valid inputs here. +#$exchangeAuthenticationType - "windows" or "impersonation" are valid inputs here only with a local Exchange server. #Windows will use the credentials that start this script in order to authenticate to Exchange and retrieve messages #choosing this option only requires the $workflowEmailAddress variable to be defined #this is ideal if you'll be using Task Scheduler or SMA to initiate this @@ -161,6 +162,9 @@ $scsmMGMTCreds = $null #choosing this option requires the $workflowEmailAddress, $username, $password, and $domain variables to be defined #UseAutoDiscover = Determines whether ($true) or not ($false) to connect to Exchange using autodiscover. If $false, provide a URL for $ExchangeEndpoint #ExchangeEndpoint = A URL in the format of 'https:///EWS/Exchange.asmx' such as 'https://mail.contoso.com/EWS/Exchange.asmx' +#UseExchangeOnline = When set to true the exchangeAuthenticationType is disregarded. Additionally on the General page in the Settings UI, the following should be set + #Use AutoDiscover should be set to false + #AutoDiscover URL should be set to https://outlook.office365.com/EWS/Exchange.asmx $exchangeAuthenticationType = "windows" $workflowEmailAddress = "$($smexcoSettingsMP.WorkflowEmailAddress)" $username = "" @@ -168,6 +172,9 @@ $password = "" $domain = "" $UseAutodiscover = $smexcoSettingsMP.UseAutoDiscover $ExchangeEndpoint = "$($smexcoSettingsMP.ExchangeAutodiscoverURL)" +$UseExchangeOnline = $smexcoSettingsMP.UseExchangeOnline +$AzureClientID = "$($smexcoSettingsMP.AzureClientID)" +$AzureTenantID = "$($smexcoSettingsMP.AzureTenantID)" #defaultNewWorkItem = set to either "ir", "sr", "pr", or "cr" #default*RTemplate = define the displayname of the template you'll be using based on what you've set for $defaultNewWorkItem @@ -3586,16 +3593,36 @@ if ($ceScripts) { Invoke-BeforeConnect } #define Exchange assembly and connect to EWS [void] [Reflection.Assembly]::LoadFile("$exchangeEWSAPIPath") $exchangeService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService -switch ($exchangeAuthenticationType) +if ($UseExchangeOnline) { - "impersonation" {$exchangeService.Credentials = New-Object Net.NetworkCredential($username, $password, $domain)} - "windows" {$exchangeService.UseDefaultCredentials = $true} -} -if ($UseAutoDiscover -eq $true) { - $exchangeService.AutodiscoverUrl($workflowEmailAddress) -} -else { + #request an access token from Azure + $ReqTokenBody = @{ + Grant_Type = "Password" + client_Id = $AzureClientID + Username = $username + Password = $password + Scope = "https://outlook.office.com/EWS.AccessAsUser.All" + } + $response = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$AzureTenantID/oauth2/v2.0/token" -Method "POST" -Body $ReqTokenBody + + #instead of a username/password, use the OAuth access_token as the means to authenticate to Exchange $exchangeService.Url = [System.Uri]$ExchangeEndpoint + $exchangeService.Credentials = [Microsoft.Exchange.WebServices.Data.OAuthCredentials]($response.Access_Token) +} +else +{ + #local exchange server + switch ($exchangeAuthenticationType) + { + "impersonation" {$exchangeService.Credentials = New-Object Net.NetworkCredential($username, $password, $domain)} + "windows" {$exchangeService.UseDefaultCredentials = $true} + } + if ($UseAutoDiscover -eq $true) { + $exchangeService.AutodiscoverUrl($workflowEmailAddress) + } + else { + $exchangeService.Url = [System.Uri]$ExchangeEndpoint + } } #define search parameters and search on the defined classes
Transcribe Audio Files to Text (v2.3)