Skip to content

Commit

Permalink
v3.1 (#226)
Browse files Browse the repository at this point in the history
* signing/encryption logic (#219)

* signing/encryption logic

updating the logic for how messages that are digitally signed and/or encrypted are processed. Message body now can be successfully extracted from the mime message

* Mimekit v2.9.2

Upgrading the version of Mimekit used by the connector

* property change

updating property used for To and Cc

* mimekit logging (#220)

Adding logging event for MimeKit/cryptography

* logging change (#221)

didn't remove the original decryption call that existed outside of logging

* Mimekit & BouncyCastle (#222)

* mimekit + bouncycastle

introduction of bouncycastle crypto for C# v1.8.5.50 as MimeKit requires/builds with it

* dll load for BouncyCastle

loads BouncyCastle crypto dll based on the directory that MimeKit is located in

* Digital Signature Custom Actions (#225)

* digital signature enhancements

introducing logic that checks the validity of the digital signature. If the signature can't be validated and custom actions are enabled, a new custom action can be triggered. If the signature can be validated and the new PowerShell keyword exists - trigger a custom action. $ignoreValidSig and $pwshKeyword will eventually be defined in the Settings MP as a bool and string respectively.

* property - Ignore Invalid Digital Signature

adding a new bool property to the settings mp that allows the connector skip or process digitally signed email with an invalid digital signature

* bind - Ignore Invalid Digital Signature

Variables and bindings for the UI to save the checkbox value (true/false) to the property

* UI - Ignore Invalid Digital Signature

Adding checkbox to the UI that allows control of processing or ignoring digitally signed emails whose signature is not valid

* pwsh - Ignore Invalid Digital Signature

Updating PowerShell logic to pull the stored true/false value from the MP to process accordingly

* property - pwsh keyword

adding a new string keyword to the settings mp that allows the connector to invoke custom actions if the digital signature can be verified

* bind - pwsh keyword

Variables and bindings for the UI to save the new powershell keyword

* UI - pwsh keyword

Adding textbox to the UI that allows you to set the powershell (custom action) keyword to be used when a digital signature can be verified

* pwsh - keyword for powershell

Updating PowerShell logic to pull/reference the PowerShell keyword value if it's featured in the subject, custom actions are enabled, and the email's digital signature can be verified

* digital signature events

Updating custom events with new optional functions that can be invoked

* logging options

Introducing logging for digital signature validity

* phrasing

The grammar used here is misleading and now better aligns with the choices above it. Also indenting the checkbox here.

* new icon

adding graphic for readme

* pwsh keyword

adding verbiage for powershell keyword functionality

* Regional decimal formatting (#227)

* dropping regex validation

Since decimal points can vary between regions, either the regex needs to be expanded or solved in the code behind.

* globalization reference

adding System.Globalization to provide region specific settings as they pertain to the Settings UI

* culture and region declarations

adding the current region and allowed number formats as variables to use during various parsing operations in the Settings UI during the save/commit action i.e. when the "OK" button is pushed

* culture - Min File Size

Updating the logic used to commit the Minimum File Size decimal value. First, an attempt is made to parse the value entered per the current user's Windows Region. Assuming it's valid, the value becomes culture invariant so the decimal delimiter stored in the MP/database is a period.

* culture - Min ACS to Create SR

Updating the logic used to commit the Minimum ACS score that creates an SR

* culture - Announcement Expiration

Updating the logic used to commit the time in hours that Announcements expire

* culture - Azure Machine Learning

Updating the logic used to commit the min confidence percent used by AML

* inline notes

updating inline notes in prep for #226

* readme graphic transparent background (#230)

updating readme graphic to have use a transparent background

* incrementing build number (#232)

upping version numbers for files
  • Loading branch information
AdhocAdam authored Dec 13, 2020
1 parent 10113aa commit 4428506
Show file tree
Hide file tree
Showing 14 changed files with 251 additions and 55 deletions.
Binary file added BouncyCastle.Crypto.dll
Binary file not shown.
Binary file added FeatureScreenshots/pwshKeyword.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.0.0.0")]
[assembly: AssemblyFileVersion("3.0.0.28")]
[assembly: AssemblyVersion("3.1.0.0")]
[assembly: AssemblyFileVersion("3.1.0.9")]
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DeploymentNextVersion>3.0.0.28</DeploymentNextVersion>
<DeploymentNextVersion>3.1.0.9</DeploymentNextVersion>
<DeploymentAutoIncrementVersion>True</DeploymentAutoIncrementVersion>
<DeploymentStartAction>None</DeploymentStartAction>
<DeploymentWebConsoleUrl />
Expand Down
14 changes: 14 additions & 0 deletions ManagementPack/2016/SMLets.Exchange.Connector/Settings.mpx
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,11 @@
Type="bool"
Key="false"
Required="false" />

<Property ID="IgnoreInvalidDigitalSignature"
Type="bool"
Key="false"
Required="false" />

<Property ID="CertificateStore"
Type="string"
Expand Down Expand Up @@ -560,6 +565,15 @@
MaxLength="256"
MinLength="0"
Required="false" />

<Property ID="KeywordPowerShell"
Type="string"
AutoIncrement="false"
Key="false"
CaseSensitive="false"
MaxLength="256"
MinLength="0"
Required="false" />

<!--Cireson Integration-->
<Property ID="EnableCiresonIntegration"
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@
<!-- configuration -->
<StackPanel Name="stackPanel" Orientation="Vertical" Margin="10,82,155,10">
<TextBlock Name="txtblkMinFileSizeInKB" Text="Minimum File Size in KB before File Attached (e.g. 21.45)" Margin="10,5,0,0" />
<TextBox x:Name="txtMinFileSizeInKB" Height="23" TextWrapping="Wrap" Margin="10,0,176.5,0" Text="{Binding MinFileAttachmentSize, Mode=TwoWay}" Custom:Validation.RegexPattern="^^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$" />
<TextBox x:Name="txtMinFileSizeInKB" Height="23" TextWrapping="Wrap" Margin="10,0,176.5,0" Text="{Binding MinFileAttachmentSize, Mode=TwoWay}" />
<CheckBox Name="chkMaxFileSize" FlowDirection="LeftToRight" IsChecked="{Binding Path=IsMaxFileSizeAttachmentsEnabled, Mode=TwoWay}" Margin="10,5,0,0" >
<TextBlock FlowDirection="LeftToRight" Text="Enforce Maximum Attachment Size per individually defined Work Item Settings" TextWrapping="Wrap" />
</CheckBox>
</StackPanel>
</Grid>
</wpfwiz:WizardRegularPageBase>
</wpfwiz:WizardRegularPageBase>
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@
<TextBox Height="25" Margin="0,-8,10,10" x:Name="txtSCOMHealthKeyword" Text="{Binding KeywordHealth, FallbackValue='', Mode=TwoWay}" Custom:Validation.RegexPattern="^[a-zA-Z0-9]*$" />
<Label Height="25" Padding="0" Margin="0,0,0,0" x:Name="lblAddWatchlistKeyword" Content="[watch] - requires Cireson Portal"/>
<TextBox Height="25" Margin="0,-8,10,10" x:Name="txtAddWatchlistKeyword" Text="{Binding KeywordAddWatchlist, FallbackValue='', Mode=TwoWay}" Custom:Validation.RegexPattern="^[a-zA-Z0-9]*$" />
<Label Height="25" Padding="0" Margin="0,0,0,0" x:Name="lblPowerShellKeyword" Content="[pwsh] - requires Digital Email Signatures"/>
<TextBox Height="25" Margin="0,-8,10,10" x:Name="txtPowerShellKeyword" Text="{Binding KeywordPowerShell, FallbackValue='', Mode=TwoWay}" Custom:Validation.RegexPattern="^[a-zA-Z0-9]*$" />
</StackPanel>
</StackPanel>
</Grid>
</wpfwiz:WizardRegularPageBase>
</wpfwiz:WizardRegularPageBase>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
xmlns:wpfwiz="clr-namespace:Microsoft.EnterpriseManagement.UI.WpfWizardFramework;assembly=Microsoft.EnterpriseManagement.UI.WpfWizardFramework"
xmlns:smcontrols="clr-namespace:Microsoft.EnterpriseManagement.UI.WpfControls;assembly=Microsoft.EnterpriseManagement.UI.SmControls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:Custom="http://schemas.microsoft.com/SystemCenter/Common/UI/Wpf" mc:Ignorable="d" Width="551" Height="1085.8"
xmlns:Custom="http://schemas.microsoft.com/SystemCenter/Common/UI/Wpf" mc:Ignorable="d" Width="551" Height="1115.8"
xmlns:local="clr-namespace:SMLetsExchangeConnectorSettingsUI.Validation" >

<Grid Name="ConfigurationGrid" Margin="15,10,10,10">
Expand Down Expand Up @@ -158,6 +158,7 @@
<TextBlock x:Name="CryptoProcessing" Text="Digital Signatures/Encryption" FontWeight="Bold" Margin="0,8,0,0"/>
<CheckBox x:Name="chkProcessEncryptedMessages" Margin="5,0,0,0" Content="Process Encrypted Emails (requires MimeKit)" IsChecked="{Binding Path=ProcessEncryptedEmails, Mode=TwoWay}"/>
<CheckBox x:Name="chkProcessDigitallySignedMessages" Margin="5,8,0,0" Content="Process Digitally Signed Emails (requires MimeKit)" IsChecked="{Binding Path=ProcessDigitallySignedEmails, Mode=TwoWay}" />
<CheckBox x:Name="chkIgnoreInvalidDigSig" Margin="25,8,0,0" Content="Process Digitally Signed emails that have certificate errors (expired, invalid, etc.)" IsChecked="{Binding Path=IgnoreInvalidDigitalSignature, Mode=TwoWay}" />

<StackPanel Orientation="Horizontal">
<Label Content="Decrypting certificate store:" Margin="0,8,0,0"/>
Expand Down
Binary file modified MimeKit.dll
Binary file not shown.
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@ The stock Exchange Connector is a seperate download that enables SCSM deployment
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?
<table border="0">
<tr>
<td colspan="3"><i>[pwsh] Keyword (v3.1)</i></td>
</tr>
<tr>
<td align="center" width="200"><img src ="/FeatureScreenshots/pwshKeyword.png" /></td>
<td width="auto">It's now possible with digital signatures and custom events to call Rest APIs, invoke Webhooks, and execute PowerShell <i>directly</i> from email. This feature makes use of Mimekit to verify the sender and then calls your CustomEvents file to take further action. Looking for ideas to get started? Head over to the <a href="https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Custom-Events-Examples#invoke-validdigitalsignatureaction">wiki</a>.</td>
</tr>
</table>
<table border="0">
<tr>
<td colspan="3"><i>Workflow Engine (v3.0)</i></td>
Expand Down
Binary file modified psExchIconReadme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 4428506

Please sign in to comment.