<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://skynorthsoftware-com.azurewebsites.net/blog/rss/xslt"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>SkyNorth</title>
    <link>https://skynorthsoftware-com.azurewebsites.net/blog/</link>
    <description>Blog</description>
    <generator>Articulate, blogging built on Umbraco</generator>
    <item>
      <guid isPermaLink="false">1236</guid>
      <link>https://skynorthsoftware-com.azurewebsites.net/blog/posts/create-azure-bot-registration-programmatic/</link>
      <category>Azure</category>
      <title>Create Azure Bot Registrations with Azure CLI</title>
      <description>&lt;p&gt;There's a lot to decipher when looking at automating the creation of Bot Channel Registrations within Azure. At the time of this writing, the Azure CLI has the most complete set of automation options and the fastest time to value. This sample deploys a Bot Channel, and then configures it to be used with Microsoft Teams, but can also be used for configuring Facebook, web chat, and other channels.&lt;/p&gt;
&lt;p&gt;Here it is, enjoy! &lt;/p&gt;
&lt;p&gt;https://github.com/SkyNorth/Automation/blob/master/Azure/Bots/New-AzureBotRegistration.ps1&lt;/p&gt;
</description>
      <pubDate>Wed, 02 Jan 2019 20:31:22 Z</pubDate>
      <a10:updated>2019-01-02T20:31:22Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1235</guid>
      <link>https://skynorthsoftware-com.azurewebsites.net/blog/posts/silver-partner-devops-competency/</link>
      <category>Azure</category>
      <category>DevOps</category>
      <title>Silver DevOps Competency</title>
      <description>&lt;p&gt;We are &lt;em&gt;very&lt;/em&gt; excited to announce that we have achieved the Silver competency in DevOps!&lt;/p&gt;
&lt;p&gt;DevOps starts with &lt;strong&gt;culture&lt;/strong&gt; - something we are very passionate about at SkyNorth. We believe it is critical to learn from your failures - to experiment and fail fast. To reduce handoffs and increase autonomy. Let's move away from &amp;quot;if it's not broke, don't fix it&amp;quot; , and adopt a &amp;quot;constant beta/continuous improvement&amp;quot; mindset. Technology evolves so fast, we need to change our way of thinking to keep up and do more with less.&lt;/p&gt;
</description>
      <pubDate>Wed, 07 Nov 2018 19:03:43 Z</pubDate>
      <a10:updated>2018-11-07T19:03:43Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1234</guid>
      <link>https://skynorthsoftware-com.azurewebsites.net/blog/posts/admin-guide-to-securing-your-office-365-data/</link>
      <category>Azure</category>
      <category>SharePoint</category>
      <category>Security</category>
      <title>The Admins guide to securing your Office 365 data</title>
      <description>&lt;p&gt; &lt;/p&gt;
&lt;p&gt;During my time at Microsoft and SkyNorth, one of the hottest cloud migration topics we have with clients, is around &lt;strong&gt;access and data security&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;While most companies believe their on-premises data is secure, we’ve found it is usually at higher risk then data stored in a correctly configured Office 365 tenant.  If you can properly &lt;span style="display: inline !important; float: none; background-color: transparent; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;answer the four primary concerns of the public cloud, &lt;/span&gt;O365 solutions will increase your security and flexibility.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;How do we limit and control access?&lt;/li&gt;
&lt;li&gt;How to ensure it’s the correct person?&lt;/li&gt;
&lt;li&gt;How do we secure our data?&lt;/li&gt;
&lt;li&gt;How do we secure our devices?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Out of the box, O365 cloud identities are accessible everywhere via internet, and secured with only username and password.   This appears sketchy at best, until you start looking at all the built-in features that O365 &amp;amp; Azure Active Directory offer.  When developing your O365 access policies you need to put together a plan that focuses on the 3 core areas.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#a1"&gt;The Who and Where&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a2"&gt;The What&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#a3"&gt;The How&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Please keep in mind, some of these technologies cross boundaries and can be used in conjunction with other features to maximize your cloud security strategy.   If you haven't seen the &lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/microsoft-365/enterprise/microsoft-365-policies-configurations" target="_blank"&gt;Microsoft Identity and Device Access&lt;/a&gt; article. it is a must read (after you finish reading my blog post).&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Who and Where&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Do you know who is accessing your cloud services, and where they are logging in from?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Option 1 - &lt;strong&gt;ADFS Server&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Many people already have this infrastructure in place from past SSO requirements&lt;/li&gt;
&lt;li&gt;Uses Microsoft technologies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Requires a lot of extra infrastructure and setup (ADFS, Proxy, x2 for HA)&lt;/li&gt;
&lt;li&gt;Limited Options&lt;/li&gt;
&lt;li&gt;This has became the 'outdated' way of providing a secured Single Sign-On solution&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://technet.microsoft.com/en-us/library/hh526961(v=ws.10).aspx" target="_blank"&gt;Limiting Access to Office 365 Services Based on the Location of the Client&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 2 - &lt;strong&gt;Conditional Access&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Extremely configurable and stackable rules&lt;/li&gt;
&lt;li&gt;Tied to your cloud login&lt;/li&gt;
&lt;li&gt;Available to all Azure Applications and internal apps that are published via Azure Application Proxy&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Requires &lt;span&gt;&lt;a rel="noopener noreferrer" href="https://azure.microsoft.com/en-us/pricing/details/active-directory/" target="_blank"&gt;Azure AD Premium Plan 1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access-azure-portal" target="_blank"&gt;Limit logins based on the following policies&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Allows you to limited login based on the following
&lt;ul&gt;
&lt;li&gt;Select Users&lt;/li&gt;
&lt;li&gt;Trusted IP Range&lt;/li&gt;
&lt;li&gt;Trusted Applications&lt;/li&gt;
&lt;li&gt;Browser or Client Application&lt;/li&gt;
&lt;li&gt;Device Platforms&lt;/li&gt;
&lt;li&gt;Device Compliance (Requires Intune)&lt;/li&gt;
&lt;li&gt;Login Risk (Requires Azure Active Directory Premium Plan 2)&lt;/li&gt;
&lt;li&gt;Allows SharePointusers to only have READ access via Browser session, and others WRITE/EDIT via controlled Application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;How do we ensure it’s the correct person?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Option 1 - &lt;strong&gt;Multi-Factor Authentication (MFA)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Helps ensure the person is who they say they are&lt;/li&gt;
&lt;li&gt;Easy to use and configure&lt;/li&gt;
&lt;li&gt;Available for on-prem applications, rdp, and VPN via &lt;span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/multi-factor-authentication/multi-factor-authentication-get-started-server" target="_blank"&gt;MFA Server&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Limited to call/text or mobile application&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="/umbraco/%09https:/docs.microsoft.com/en-us/azure/multi-factor-authentication/multi-factor-authentication" target="_blank"&gt;A second form of user identification such as a phone call, email, or mobile app&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Option 2 - &lt;strong&gt;ADFS Server 2016 – MFA First&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Skews attempts to brute-force login attempts&lt;/li&gt;
&lt;li&gt;Validates the users device before the username/password&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Requires a lot of extra infrastructure and setup (ADFS, Proxy, x2 for HA)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="/umbraco/%09https:/blogs.technet.microsoft.com/ausoemteam/2016/08/19/whats-new-in-windows-server-2016-standard-edition-part-2-identity/" target="_blank"&gt;ADFS 2016 allows you to prompt for device MFA first, ensuring no password is passed to the session until the first factor has been passed&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 3 - &lt;strong&gt;&lt;span style="text-align: left; color: #000000; text-transform: none; line-height: 21px; text-indent: 0px; letter-spacing: normal; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; text-decoration: none; word-spacing: 0px; display: inline !important; white-space: normal; orphans: 2; float: none; -webkit-text-stroke-width: 0px; background-color: transparent;"&gt;Password-free Login&lt;/span&gt;&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Very secure&lt;/li&gt;
&lt;li&gt;Easy to use&lt;/li&gt;
&lt;li&gt;No passwords to remember&lt;/li&gt;
&lt;li&gt;&lt;span style="display: inline !important; float: none; background-color: transparent; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;Corporate Credentials are not passed through the session&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="display: inline !important; float: none; background-color: transparent; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;Only devices with an approved certificate/key will be allowed access&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;&lt;span style="display: inline !important; float: none; background-color: transparent; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;Certificate Based requires infrastructure and setup (ADFS, Proxy, x2 for HA)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Authenticator/Hardware Key have limited support at this time&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://blogs.msdn.microsoft.com/samueld/2016/07/19/adfs-certauth-aad-o365/" target="_blank"&gt;ADFS: Certificate Authentication with Azure AD &amp;amp; Office 365&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li style="list-style-type: none;"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-overview" target="_blank"&gt;Windows Hello for Business&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-why-pin-is-better-than-password" target="_blank"&gt;Why a PIN is better than a password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-biometrics-in-enterprise" target="_blank"&gt;&lt;span&gt;Can Use Biometrics as a form of PC Authentication&lt;/span&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Fingerprint&lt;/li&gt;
&lt;li&gt;Facial recognition&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Microsoft Authenticator App
&lt;ul&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-authentication-phone-sign-in" target="_blank"&gt;Password-less phone sign-in with the Microsoft Authenticator app (public preview)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li style="list-style-type: none;"&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://myignite.techcommunity.microsoft.com/sessions/64557" target="_blank"&gt;Hardware Key w/ FIDO2 Support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The What?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What data are people accessing and how do we secure it?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Option 1 - &lt;strong&gt;SharePoint Site Permissions&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Highly customizable at different SharePoint levels (Site/Web/Library/Item)&lt;/li&gt;
&lt;li&gt;Have remained the same with all versions of SharePoint&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Can get complicated with breaking inheritance&lt;/li&gt;
&lt;li&gt;Auditing/Ensuring users are correctly setting permissions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Understanding-permission-levels-in-SharePoint-87ecbb0e-6550-491a-8826-c075e4859848" target="_blank"&gt;Understanding permission levels in SharePoint&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 2 - &lt;strong&gt;External Sharing Settings&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Allow or prevent external users from accessing your SPO data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;A misconfigured policy could mean bad news for your company&lt;/li&gt;
&lt;li&gt;It's not meant for every type of business or scenario&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Manage-external-sharing-for-your-SharePoint-Online-environment-C8A462EB-0723-4B0B-8D0A-70FEAFE4BE85" target="_blank"&gt;Manage external sharing for your SharePoint Online environment.&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 3 - &lt;strong&gt;Tenant Restrictions&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Increased security&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Makes external collaboration difficult&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-tenant-restrictions" target="_blank"&gt;Use Tenant Restrictions to manage access to SaaS cloud applications&lt;/a&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;span style="display: inline !important; float: none; background-color: transparent; color: #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 21px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;Prevent your users from accessing other data&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;This is handled via proxy server and HTTP Headers that identify and prevent external access&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 4 - &lt;strong&gt;Azure Rights Management / Azure Information Protection&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Increased data security&lt;/li&gt;
&lt;li&gt;Available to many data formats&lt;/li&gt;
&lt;li&gt;Set up on the SPO library or global rules via Azure&lt;/li&gt;
&lt;li&gt;Labeling Support for O365 Data Classification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Multiple setup/config areas that do not span a broad spectrum of services&lt;/li&gt;
&lt;li&gt;Typically requires an internet connection to pass ACL validation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/office365/securitycompliance/set-up-irm-in-sp-admin-center" target="_blank"&gt;Protect SharePoint libraries to prevent read/write/edit/print/etc.&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Enabled on the document library or list level.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;"&gt;&lt;span style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;"&gt;&lt;a style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;" rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/microsoft-365/enterprise/protect-files-with-aip" target="_blank"&gt;Protect files with Azure Information Protection&lt;/a&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;"&gt;Gives you the option to classify, encrypt, and secure your data at a local level
&lt;ul&gt;
&lt;li style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;"&gt;For use with O365 documents, as well as on-prem file storage&lt;/li&gt;
&lt;li style="background-color: transparent; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px; min-height: 0px;"&gt;Uses Azure RMS to encrypt and secure access&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 5 - &lt;strong&gt;Data Loss Prevention&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Easy to configure rules&lt;/li&gt;
&lt;li&gt;Used for SharePoint/OneDrive/Exchange&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Other similar methods make it confusing to determine the best use
&lt;ul&gt;
&lt;li&gt;AIP / Transport Rules / Classification &amp;amp; Labels&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Overview-of-data-loss-prevention-policies-1966b2a7-d1e2-4d92-ab61-42efbb137f5e" target="_blank"&gt;&lt;/a&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Overview-of-data-loss-prevention-policies-1966b2a7-d1e2-4d92-ab61-42efbb137f5e" target="_blank"&gt;Overview of data loss prevention policies&lt;/a&gt;&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;Searches through your existing data to find matches that may need protection&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li style="list-style-type: none;"&gt;
&lt;ul&gt;
&lt;li style="list-style-type: none;"&gt;
&lt;ul&gt;
&lt;li&gt;Create a DLP query to identify what sensitive information now exists in your site collections.&lt;/li&gt;
&lt;li&gt;Create a DLP policy to monitor and automatically protect sensitive information in your site collections.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The How?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;How are people accessing cloud services, and how do we secure it?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Option 1 - &lt;strong&gt;Azure AD Device Registration / Workplace Join&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Identifies what users and devices are using cloud services&lt;/li&gt;
&lt;li&gt;Configure MFA for first-time registration&lt;/li&gt;
&lt;li&gt;Allows easy SSO access to all of your apps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;There isn't much security you can place around the device without extras&lt;/li&gt;
&lt;li&gt;MFA Conditional Access rules are met with registered devices so you will not receive a call/text&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span style="color: #000120;"&gt;&lt;/span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-device-registration-on-premises-setup" target="_blank"&gt;Azure AD Device Registration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 2 - &lt;strong&gt;Azure AD Joined Device&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Same as Option 1&lt;/li&gt;
&lt;li&gt;Azure AD Bitlocker Recovery&lt;/li&gt;
&lt;li&gt;PIN Sign-In&lt;/li&gt;
&lt;li&gt;Enterprise State Roaming Features&lt;/li&gt;
&lt;li&gt;Automatic MDM Enrollment (With AAD Premium P1)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;On-premises domain access would typically require VPN client&lt;/li&gt;
&lt;li&gt;There isn't much security you can place around the device without extras&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 3 - &lt;strong&gt;O365 Mobile Device Management (MDM)&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Comes with O365 E3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Limited control&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Capabilities-of-built-in-Mobile-Device-Management-for-Office-365-a1da44e5-7475-4992-be91-9ccec25905b0" target="_blank"&gt;Provides Selective Wipe and removal of certain data&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://support.office.com/en-us/article/Set-up-Mobile-Device-Management-MDM-in-Office-365-dd892318-bc44-4eb1-af00-9db5430be3cd" target="_blank"&gt;Set up O365 MDM&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Option 4 - &lt;strong&gt;Microsoft Intune&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Pros
&lt;ul&gt;
&lt;li&gt;Highly configurable&lt;/li&gt;
&lt;li&gt;Tied with your cloud identity and your device&lt;/li&gt;
&lt;li&gt;Can manage Windows/iOS/Android Devices (limited MAC OSx Support)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cons
&lt;ul&gt;
&lt;li&gt;Requires &lt;span&gt;&lt;a rel="noopener noreferrer" href="https://www.microsoft.com/en-us/cloud-platform/microsoft-intune-pricing" target="_blank"&gt;Intune or EM+S subscription&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Extras
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/intune/introduction-intune" target="_blank"&gt;What is Intune?&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Contains Mobile Application Management policies (MAM)
&lt;ul&gt;
&lt;li&gt;Prevent Cut/Copy/Paste&lt;/li&gt;
&lt;li&gt;Prevent SaveAs&lt;/li&gt;
&lt;li&gt;Require a PIN for specific Mobile Apps&lt;/li&gt;
&lt;li&gt;*With or without device enrollment*&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Selective or Full Wipes of the device&lt;/li&gt;
&lt;li&gt;Manages device compliance settings
&lt;ul&gt;
&lt;li&gt;Encryption/Password Rules/Etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Manages device configuration settings
&lt;ul&gt;
&lt;li&gt;Blocks to cameras, screen shots, USB ports, and tons more&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;a rel="noopener noreferrer" href="https://docs.microsoft.com/en-us/intune/conditional-access-intune-common-ways-use" target="_blank"&gt;Conditional Access&lt;/a&gt;&lt;/span&gt; via Compliance Policy and Device Registration
&lt;ul&gt;
&lt;li&gt;Allow only ‘domain joined’ devices to access cloud data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I hope I've made an extremely complex topic a little easier for everyone to understand.   Like I mentioned above, there isn't a single solution that you should decide on for all business &amp;amp; security scenarios.  You may need to mix-and-match and you may also need to use features I didn't even mention here.   If you find yourself in a confusing situation and need help finding the best approach please feel free to reach out to &lt;a href="mailto:info@skynorthsoftware.com"&gt;SkyNorth&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Need Help?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Be sure to contact SkyNorth Software today for an &lt;span&gt;&lt;a rel="noopener noreferrer" href="/Offerings/O365-Data-Security" target="_blank"&gt;O365 Data Security Assessment&lt;/a&gt;&lt;/span&gt; or any of your data security needs! &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is our Data Security Assessment?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It’s a comprehensive technology and process review for how you handle data security within your organization. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How much does it cost?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;It’s FREE!&lt;/strong&gt;    Out introductory package is completely free and includes a 1-hour finding call with self-help documentation.  If you’d like to have a more comprehensive review or added support, you can look at our &lt;strong&gt;&lt;em&gt;PREMIUM&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;PREMIUM – WITH SUPPORT&lt;/em&gt;&lt;/strong&gt; options on &lt;a rel="noopener noreferrer" href="/Offerings/O365-Data-Security" target="_blank"&gt;our website.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description>
      <pubDate>Wed, 17 Oct 2018 02:05:06 Z</pubDate>
      <a10:updated>2018-10-17T02:05:06Z</a10:updated>
    </item>
    <item>
      <guid isPermaLink="false">1220</guid>
      <link>https://skynorthsoftware-com.azurewebsites.net/blog/posts/copy-blob-event-trigger/</link>
      <category>Azure</category>
      <title>Copy Azure Blobs with Data Factory Event Trigger</title>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt;  This article applies to version 2 of Data Factory. The integration described in this article depends on &lt;a href="https://azure.microsoft.com/services/event-grid/"&gt;Azure Event Grid&lt;/a&gt;. Make sure that your subscription is registered with the Event Grid resource provider. For more info, see &lt;a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-supported-services#portal"&gt;Resource providers and types&lt;/a&gt;.  
&lt;/p&gt;
&lt;h3&gt;Overview&lt;/h3&gt;
&lt;p&gt;This article builds on the concepts described in &lt;a href="https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview"&gt;Copy Activity in Azure Data Factory&lt;/a&gt;. We will be using an &lt;a href="https://docs.microsoft.com/en-us/azure/data-factory/how-to-create-event-trigger"&gt;event trigger&lt;/a&gt; to copy blobs between Azure Storage accounts. &lt;/p&gt;
&lt;p&gt;There are scenarios where you need to copy blobs between storage accounts. It could be for another layer of redundancy, or simple to move to a lower tiered storage account for cost optimization. In this article, we will show you how to copy blobs immediately after they are created using Data Factory event triggers.&lt;/p&gt;
&lt;h3&gt;Prerequisites&lt;/h3&gt;
&lt;p&gt;1.) Azure Data Factory version&lt;br /&gt;
2.) Azure storage accounts for source and destination. Each storage  has a container called &lt;code&gt;backups&lt;/code&gt;&lt;br /&gt;
3.) Event Grid enabled as a resource provider on your Azure subscription  
&lt;/p&gt;
&lt;p&gt;This is what our resource group looks like:&lt;br /&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt;
The storage accounts are in the same location to prevent egress charges  
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1025/resource-group-setup.png" alt="Resource Group" /&gt;&lt;/p&gt;
&lt;h3&gt;Create Linked Storage Accounts&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Datasets and linked services are described in depth at &lt;a href="https://docs.microsoft.com/en-us/azure/data-factory/concepts-datasets-linked-services"&gt;Datasets and linked services in Azure Data Factory&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this demo we will use two storage accounts named &lt;code&gt;dfcopyeventsource&lt;/code&gt; and &lt;code&gt;dfcopyeventdestination&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Create linked services for both storage accounts in Data Factory under the connections tab. For simplicity we will just use the storage account account key for authentication. We will just add a &lt;code&gt;_ls&lt;/code&gt; suffix to these so we they are linked services later.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1016/create-linked-service-storage.png" alt="Create linked service menu" /&gt;&lt;/p&gt;
&lt;p&gt;Select &amp;quot;Use account key&amp;quot; for authentication method&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1017/create-linked-service-storage-source.png" alt="Create linked storage" /&gt;&lt;/p&gt;
&lt;p&gt;Both storage accounts are now linked.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1015/create-linked-service-finished.png" alt="Create linked storage" /&gt;&lt;/p&gt;
&lt;h3&gt;Create Datasets&lt;/h3&gt;
&lt;p&gt;Now we will create a Dataset for each storage account with &lt;code&gt;_ds&lt;/code&gt; as a suffix. For simplicity, use binary copy. Be sure to add the path &lt;code&gt;backups&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1013/create-dataset-storage.png" alt="Create Dataset Storage" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1014/create-dataset-storage-name.png" alt="Create Dataset Storage Name" /&gt;&lt;/p&gt;
&lt;p&gt;Publish the Datasets&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1024/publish-resources.png" alt="Publish Datasets" /&gt;&lt;/p&gt;
&lt;h3&gt;Create Pipeline&lt;/h3&gt;
&lt;p&gt;Now we will create a Pipeline and add the Copy Data activity. Our pipeline is called &lt;code&gt;copy_blob_pipeline&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1018/create-pipeline.png" alt="Create Pipeline" /&gt;&lt;/p&gt;
&lt;p&gt;Drag the &lt;code&gt;Copy Data&lt;/code&gt; activity onto the canvas.&lt;br /&gt;
1.) Name it Copy Data Activity&lt;br /&gt;
2.) Select source Dataset&lt;br /&gt;
3.) Select destination Dataset (sink)  
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1019/create-pipeline-add-copy-data-activity.png" alt="Copy Data" /&gt;
&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1012/copy-data-activity-set-sink.png" alt="Copy Data Sink" /&gt;&lt;/p&gt;
&lt;h3&gt;Testing Pipeline&lt;/h3&gt;
&lt;p&gt;Publish all resources and your Pipeline should be ready to test. We will add event triggers after confirming the copy data activity works as expected.&lt;/p&gt;
&lt;p&gt;Take the following steps to test the Pipeline&lt;/p&gt;
&lt;p&gt;1.) Upload test data to source storage account&lt;br /&gt;
2.) In Data Factory, click the &lt;code&gt;Debug&lt;/code&gt; button&lt;br /&gt;
3.) Verify the pipeline finishes without error and the data was moved to the destination  
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1021/pipeline-test-before.png" alt="Before" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1022/pipeline-test-debug.png" alt="Debug" /&gt;
&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1023/pipeline-test-results.png" alt="Results" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1020/pipeline-test-after.png" alt="After" /&gt;&lt;/p&gt;
&lt;h3&gt;Adding Event Trigger&lt;/h3&gt;
&lt;p&gt;We will be adding a &lt;code&gt;Blob Created&lt;/code&gt; event trigger to the &lt;code&gt;copy_blob_pipeline&lt;/code&gt;. It will watch the source storage account under the &lt;code&gt;backups&lt;/code&gt; container for new blobs, and then copy only the &lt;em&gt;new&lt;/em&gt; blobs to the destination storage account. To accomplish this, we need to parameterize our Pipeline and source Dataset. The event trigger will inject information about the blob into our parameters at runtime.&lt;/p&gt;
&lt;h4&gt;Parameterize Pipeline&lt;/h4&gt;
&lt;p&gt;Edit the &lt;code&gt;copy_blob_pipeline&lt;/code&gt; and add two parameters:&lt;br /&gt;
1.) &lt;code&gt;sourceFolder&lt;/code&gt;&lt;br /&gt;
2.) &lt;code&gt;sourceFile&lt;/code&gt;  
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1009/blob-event-trigger-pipeline-parameters.png" alt="Pipeline Parameters" /&gt;&lt;/p&gt;
&lt;h4&gt;Add Event Trigger with Parameters&lt;/h4&gt;
&lt;p&gt;We'll create the event trigger and configure it to inject the new blob &lt;code&gt;sourceFolder&lt;/code&gt; and &lt;code&gt;sourceFile&lt;/code&gt; into the pipeline parameters we just created.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1026/blob-event-trigger.png" alt="Trigger" /&gt;
&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1008/blob-event-trigger-parameters.png" alt="Trigger Pamaeters" /&gt;&lt;/p&gt;
&lt;h4&gt;Parameterize Source Dataset&lt;/h4&gt;
&lt;p&gt;The final step is to parameterize the source Dataset &lt;code&gt;dfcopyeventsource_ds&lt;/code&gt;. On the Connection tab, add &lt;code&gt;@pipeline().parameters.sourceFolder&lt;/code&gt; and &lt;code&gt;@pipeline().parameters.sourceFile&lt;/code&gt; to their respective input boxes.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1007/blob-event-trigger-dataset-parameters.png" alt="Pipeline Parameters" /&gt;&lt;/p&gt;
&lt;h4&gt;Testing Trigger&lt;/h4&gt;
&lt;p&gt;Publish All and the Event Trigger will be live and watching the source storage account. Upload a file to the source and then view the monitoring tab to validate the pipeline executed without issues. If all is configured correctly, the blob will be copied to the destination storage account.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1011/blob-event-trigger-test-monitor-tab.png" alt="Test Trigger" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://skynorthsoftwarecomstor.blob.core.windows.net/media/1010/blob-event-trigger-test.png" alt="Test Trigger" /&gt;&lt;/p&gt;
</description>
      <pubDate>Fri, 05 Oct 2018 16:11:11 Z</pubDate>
      <a10:updated>2018-10-05T16:11:11Z</a10:updated>
    </item>
  </channel>
</rss>