<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Kevin Kirkpatrick’s Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/kekirkpa/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/kekirkpa/feed.xml</link>
    <description>The blog of Kevin Kirkpatrick on SharePoint/Office365 related scenarios I have learned as a Premier Field Engineer</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:24:51 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Enforcing Multi-Factor Authentication for External Users on SharePoint Online</title>
      <link>https://docs.microsoft.com/archive/blogs/kekirkpa/enforcing-multi-factor-authentication-for-external-users-on-sharepoint-online</link>
      <pubDate>Fri, 13 Oct 2017 19:45:14 GMT</pubDate>
      <dc:creator><![CDATA[Kevin Kirkpatrick]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/kekirkpa/?p=26</guid>
      <description><![CDATA[Many of my customers have often asked if there is a way to require Multi-Factor Authentication (MFA)...]]></description>
      <content:encoded><![CDATA[Many of my customers have often asked if there is a way to require Multi-Factor Authentication (MFA) when external users connect to SharePoint Online or OneDrive for Business.  If you are interested in requiring MFA for internal users, please read our <a href="https://support.office.com/en-us/article/Set-up-multi-factor-authentication-for-Office-365-users-8f0454b2-f51a-4d9c-bcde-2c48e41621c6">existing support articles</a>. Below I will outline a way to achieve this today for external users.

Using the AzureAD subscription associated with the Office365 tenant, we can accomplish this through creating a Dynamic Group for the "External Users", and then using this with a new Conditional Access policy which we can apply to SharePoint Online.
<h4>Create a Dynamic Access Group of "External User" accounts</h4>
<ol>
 	<li>Login to <a href="https://aad.portal.azure.com">AzureAD Portal</a>, and navigate to <strong>Azure Active Directory</strong> -&gt; <strong>Users and Groups</strong> -&gt; <strong>All groups</strong> and click on <strong>New Group</strong><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image1.png" alt="" width="764" height="315" class="alignnone size-full wp-image-215" /></li>
 	<li>Give your group a friendly name, description, and select <strong>Membership type</strong> of <strong>Dynamic User</strong>.  If you do not see this <strong>Membership type</strong>, it may be that you do not have AzureAD Premium licenses in your subscription.  (See licensing requirements below)</li>
 	<li>Select<strong> Add dynamic query</strong>, and create a <strong>Simple Rule</strong> in which you add users where<strong> </strong> <strong>userType</strong> <strong>Equals</strong> <strong>Guest</strong><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image2.png" alt="" width="1105" height="487" class="alignnone size-full wp-image-216" /></li>
 	<li>Click <strong>Add query </strong>-&gt; <strong>Create</strong> in order to make the dynamic group</li>
</ol>
For more advanced group targeting scenarios, please see here: <a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-groups-dynamic-membership-azure-portal">https://docs.microsoft.com/en-us/azure/active-directory/active-directory-groups-dynamic-membership-azure-portal</a>

It will take some time for the group to populate, so take advantage and brew up a fresh batch of coffee because the fun hasn't ended yet.

To confirm the dynamic group has external members, search for the friendly group name under <strong>Users and Groups</strong> -&gt; <strong>All Groups</strong> and click on it to open it and review.  Look at all those wonderful blue globe things representing the external users in the group!
<p style="padding-left: 30px"><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image3.png" alt="" width="1040" height="483" class="alignnone size-full wp-image-225" /></p>
&nbsp;
<h4>Create a Conditional Access Policy for SharePoint Online</h4>
<ol>
 	<li>Login to <a href="https://aad.portal.azure.com">AzureAD Portal</a>, and navigate to <strong>Enterprise applications</strong> -&gt; <strong>Conditional access</strong> to show all Conditional access policies, and then click on <strong>New Policy</strong><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image4.png" alt="" width="468" height="384" class="alignnone size-full wp-image-235" /></li>
 	<li>On the <strong>New</strong> blade, in the name text box, type a friendly name for the policy</li>
 	<li>On the <strong>Users and Groups</strong> blade, select <strong>Include</strong> -&gt; <strong>Select users and group</strong> -&gt; <strong>Select</strong></li>
 	<li>Search for the External Users group you created in the previous step and select that group<img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image5.png" alt="" width="1016" height="672" class="alignnone size-full wp-image-236" /></li>
 	<li>Click <strong>Select</strong> and then click <strong>Done</strong> to ensure you are including the External Users group that you previously created</li>
 	<li>On the <strong>Cloud Apps</strong> blade, click the options for <strong>Include</strong> -&gt; <strong>Select apps</strong> -&gt; <strong>Select</strong></li>
 	<li>Under <strong>Applications</strong> search for SharePoint and select <strong>Office 365 SharePoint Online</strong>.   Apply this by clicking on <strong>Select</strong> and <strong>Done</strong><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image6.png" alt="" width="1022" height="671" class="alignnone size-full wp-image-245" /></li>
 	<li>On the <strong>Conditions</strong> blade, select <strong>Locations</strong>.  Select <strong>Yes</strong> for Configure.  Include <strong>Any Location</strong>.<img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image7.png" alt="" width="927" height="623" class="alignnone size-full wp-image-246" /></li>
 	<li>Apply these by selecting the <strong>Done</strong> buttons</li>
 	<li>On the Grant Blade, select <strong>Grant Access</strong> and <strong>Require Multi-Factor Authentication</strong>.  Click <strong>Select</strong> to apply the <strong>Grant</strong> restrictions.
<ul>
 	<li><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image8.png" alt="" width="543" height="546" class="alignnone wp-image-255" /></li>
</ul>
</li>
 	<li>Finally, toggle the <strong>Enable policy</strong> button to <strong>On</strong>, and then <strong>Create</strong> the policy</li>
</ol>
<p style="padding-left: 60px"> <img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image91.png" alt="" width="306" height="645" class="alignnone wp-image-307" /></p>
To verify the policy was created successfully you should now see it under the Conditional Access Policies

<img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image10.png" alt="" width="941" height="168" class="alignnone size-full wp-image-275" />

&nbsp;

In a few minutes, when external users attempt to access a resource in SharePoint Online or OneDrive for Business, they should be prompted to set up MFA upon sign-in.  Using MFA, external users would be required to acknowledge a phone call, text message, or app notification on their phone after completing their initial authentication process.
<p style="padding-left: 30px"><img src="https://msdnshared.blob.core.windows.net/media/2017/10/Image11.png" alt="" width="511" height="370" class="alignnone size-full wp-image-276" /></p>
I am hoping this helps provide some guidance to enforcing MultiFactor Authentication for External Users
<h4></h4>
<h4>Licensing Notes*</h4>
<p style="padding-left: 30px">One reason people use SharePoint Online is that you do not have to give an external user a license to use Office365.  The approach I am outlining here will utilize some Azure AD Premium features, so there is the potential for licensing impact.  However if your organization already leverages AzureAD Premium, this may be covered already in <a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-b2b-licensing">AzureAD B2B licensing</a>..</p>
<p style="padding-left: 30px">Azure AD Premium features are used in two areas throughout this approach:</p>

<ul>
 	<li style="padding-left: 30px">AzureAD Dynamic Groups were used to group "all external users"</li>
 	<li style="padding-left: 30px">AzureAD Conditional Access Policies</li>
</ul>
<p style="padding-left: 30px">At the time of this writing, an inviting tenant with an Azure AD paid license has B2B collaboration use rights to an additional five B2B guest users invited to the tenant.  So as an example, if you have 10,000 Azure AD Premium P1 licenses, you can leverage B2B collaboration features with up to 50,000 external guest users.</p>
*This blog is absolutely not an official source for Microsoft's Licensing.   If you have an official licensing query, please contact your Microsoft Licensing Specialist.
<h4>Additional References:</h4>
<a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access-azure-portal">https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access-azure-portal</a>

<a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-accessmanagement-groups-with-advanced-rules">https://docs.microsoft.com/en-us/azure/active-directory/active-directory-accessmanagement-groups-with-advanced-rules</a>

&nbsp;

&nbsp;

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>