<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>OnCloud</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/oncloud/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/oncloud/feed.xml</link>
    <description>My personal views and experiences with Microsoft Cloud Identity...</description>
    <lastBuildDate>Tue, 16 Apr 2019 05:23:10 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Using Azure AD B2B collaboration support for Google IDs and Conditional Access</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/using-azure-ad-b2b-collaboration-support-for-google-ids-and-conditional-access</link>
      <pubDate>Thu, 30 Aug 2018 13:16:25 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=1185</guid>
      <description><![CDATA[Hi,

Alex Simons announced the public preview of Azure AD B2B Collaboration support for Google...]]></description>
      <content:encoded><![CDATA[Hi,

Alex Simons <a href="https://cloudblogs.microsoft.com/enterprisemobility/2018/08/28/azure-ad-b2b-collaboration-support-for-google-ids-is-now-in-public-preview/">announced</a> the public preview of Azure AD B2B Collaboration support for Google IDs, so i thought I'd share my findings on configuration, user experience and bring Azure AD Conditional Access into the mix.

The first step to setting this up is to add Google as an identity provider in your Azure AD tenant. This has been beautifully documented by the Azure AD team <a href="https://docs.microsoft.com/en-us/azure/active-directory/b2b/google-federation">here</a>.

Once you have followed those steps then you are ready to roll...

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/0.jpg"><img width="1024" height="459" class="alignnone size-large wp-image-1195" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/0-1024x459.jpg" /></a>

&nbsp;

Now it's time to add a guest user. There are numerous ways to invite guest users but for the purposes of this post I'm inviting from the Azure AD Portal.

<strong>NOTE</strong>: At the time of writing this document it's only @gmail.com users that are supported.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/113.jpg"><img width="695" height="463" class="wp-image-1205 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/113-1024x682.jpg" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/113.jpg"> </a>

&nbsp;

Once invited the user then the user receives an invitation.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/28.jpg"><img width="363" height="645" class="wp-image-1215 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/28-576x1024.jpg" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/08/43.jpg"></a>

&nbsp;

The user then clicks "Get Started" and then they are prompted to authenticate with their GoogleID.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/36.jpg"><img width="543" height="596" class="wp-image-1225 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/36-933x1024.jpg" /></a>

&nbsp;

Once successfully authenticated the user then has to review the permissions and "Accept".

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/43.jpg"><img width="540" height="680" class="wp-image-1235 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/43-813x1024.jpg" /></a>

&nbsp;

Access is then provisioned.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/57.jpg"><img width="543" height="477" class="wp-image-1245 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/57.jpg" /></a>

&nbsp;

The user is now logged on using their Google ID! Now lets have a look at what that account looks like in Azure AD.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/65.jpg"><img width="1024" height="268" class="size-large wp-image-1255 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/65-1024x268.jpg" /></a>

&nbsp;

The user is now provisioned in Azure AD as a "Guest" user and the "Source" is Google.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/73.jpg"><img width="479" height="384" class="wp-image-1265 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/73-1024x821.jpg" /></a>

&nbsp;

You may be aware of a recent public preview which enables you to target Conditional Access policies at "guest users". This is a great feature and allows you to target all guest users (including GoogleID's) to provide additional protection when they are accessing your organisations resources. Let's set up a Conditional Access Policy which will enforce Azure Multi-Factor Authentication for all guest users.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/83.jpg"><img width="734" height="344" class="alignnone wp-image-1275" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/83-1024x480.jpg" /></a>

&nbsp;

Create a new Conditional Access Policy and select "All guest users (preview)", make the relevant "Cloud app" assignments and any additional conditions you would like to test.

<strong>NOTE: </strong>This will apply to all users with the userType attribute set to guest<em></em>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/92.jpg"><img width="742" height="519" class="alignnone wp-image-1285" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/92-1024x716.jpg" /></a>

&nbsp;

Now select "Require multi-factor authentication" as a control to enforce when granting access. As always with Conditional Access make sure you understand the impact of the policy and always test before enabling in production.

Let's have a look at the user experience. Access the resource (At this stage the URL must include the tenant context e.g. <span>https://myapps.microsoft.com/?tenantid=&lt;tenant id&gt;</span>) and the user is prompted for authentication.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/101.jpg"><img width="739" height="483" class="alignnone wp-image-1295" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/101-1024x670.jpg" /></a>

&nbsp;

Once the user has entered their GoogleID credentials they are prompted with the following.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/122.jpg"><img width="444" height="381" class="alignnone size-full wp-image-1305" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/122.jpg" /></a>

&nbsp;

The user is now forced to register their MFA details, undergo verification and then they get access to the resource.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/132.jpg"><img width="735" height="435" class="alignnone wp-image-1315" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/132.jpg" /></a>

&nbsp;

Subsequent authentications the user is prompted for MFA.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/08/152.jpg"><img width="446" height="433" class="alignnone size-full wp-image-1325" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/08/152.jpg" /></a>

&nbsp;

In summary, invited users can now use their GoogleID to access Azure AD integrated resources. Your organisation also has the ability to enforce a stronger level of authentication with Conditional Access to ensure a higher level of protection for your companies resources.

Thanks for reading!!

MD

<a href="https://twitter.com/Dudders1">Follow me on Twitter for future posts.</a>]]></content:encoded>
    </item>
    <item>
      <title>Deploying Azure AD Password protection for Windows Server Active Directory</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/deploying-azure-ad-password-protection-for-windows-server-active-directory</link>
      <pubDate>Thu, 21 Jun 2018 15:02:24 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=965</guid>
      <description><![CDATA[Hi,

As you will have seen from Alex Simon's announcement yet another great Azure AD public...]]></description>
      <content:encoded><![CDATA[Hi,

As you will have seen from Alex Simon's <a href="https://cloudblogs.microsoft.com/enterprisemobility/2018/06/19/azure-ad-password-protection-and-smart-lockout-are-now-in-public-preview/">announcement</a> yet another great Azure AD public preview has landed!

"Azure AD Password Protection and Smart Lockout" will provide further protection to your organisation from weak passwords and bad actors. Despite organisations setting stringent password complexity rules, users are still setting passwords that are relatively weak but do satisfy password complexity requirements. For example:
<ul>
 	<li>Predictable combinations: e.g. "June2018!" &amp; "CompanyName12!"</li>
 	<li>Common passwords with predictable formats: e.g. "Password12!"</li>
 	<li>Common character substitutions: e.g. "Pa$$w0rd12!"</li>
</ul>
"Azure AD Password Protection and Smart Lockout" protects by preventing users from setting their passwords to common, weak and risky ones and by preventing bad actors from trying to brute force those accounts.

This post will focus on the "Password Protection for Windows Server Active Directory" components that allow you to extend the password protection you get in Azure AD to your on-premises Active Directory. I will walk through the key features, example deployment and user experience.

To use this feature an agent is installed on to your domain controllers and a proxy agent is also installed (on the AAD Connect server in my example). The "Password Protection Proxy" proxies password policy requests from the DC's "Password Protection Agents" so your DC's aren't connecting to the internet. Link to the preview agents <a href="https://www.microsoft.com/en-us/download/details.aspx?id=57071">here</a>.
<h3><strong>Key Features</strong></h3>
The key features this component provides are:
<ul>
 	<li><span>Protect all password set and reset operations in Azure and Windows Server Active Directory by ensuring they do not contain weak or leaked password strings.</span></li>
 	<li><span>Control Azure AD password protection for both Azure AD and on-premises Windows Server Active Directory from a unified control panel in Azure AD portal.</span></li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2018/06/azure-ad-password-protection.png"><img width="611" height="514" class="alignnone size-full wp-image-1145" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/azure-ad-password-protection.png" /></a>

&nbsp;
<h3><strong>Deployment</strong></h3>
<strong>Domain Controller(s)</strong>: I execute the AzureADPasswordProtectionDCAgent.msi on each of my domain controllers (can be deployed with SCCM and installed silently).

<strong>NOTE:</strong> this agent doesn't connect to the internet, all updates are done via the Password Protection Proxy.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/BPL1.jpg"><img width="496" height="386" class="alignnone size-full wp-image-1005" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/BPL1.jpg" /></a>

&nbsp;

Click "Next" and select all the defaults to complete the install.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/BPL4.jpg"><img width="367" height="166" class="alignnone size-full wp-image-1035" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/BPL4.jpg" /></a>

&nbsp;

A restart is required so plan carefully to ensure no disruption. We now move on to the installation of the Password Protection Proxy.

<strong>Password Protection Proxy</strong>: On my AAD Connect server I install the AzureADPasswordProtectionProxy.msi.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/BPLP2.jpg"><img width="494" height="382" class="alignnone size-full wp-image-985" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/BPLP2.jpg" /></a>

&nbsp;

Select all the defaults to complete the install.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/BPLP3.jpg"><img width="491" height="384" class="alignnone size-full wp-image-995" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/BPLP3.jpg" /></a>

&nbsp;

That's all the installations completed so its time to run a couple of PowerShell cmdlets. The cmdlets you need to run are detailed below and they are required to register the Forest and Password Protection Proxy with Azure AD\Active Directory. Some things to note:
<ul>
 	<li>For each cmdlet I was prompted for a credential for the Azure AD instance (this needs to be Global Adminstrator).</li>
 	<li>You also need to be logged in as a domain admin to run these cmdlets (Root Domain).</li>
 	<li>I ran these cmdlets from the server the Password Protection Proxy was installed on.</li>
</ul>
&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Powershell.jpg"><img width="552" height="172" class="alignnone size-full wp-image-1135" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Powershell.jpg" /></a>

&nbsp;

Lets have a look at the portal and enable Azure AD Password Protection for Windows Server Active Directory. Navigate to the Azure AD blade in the Azure Portal &gt; Authentication methods &gt; Password protection (Preview) and you will see the below.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Portal11.jpg"><img width="821" height="492" class="alignnone wp-image-1155" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Portal11-1024x614.jpg" /></a>

&nbsp;

I click "Yes" for "Custom banned passwords. ("Dudders2018!" is the example I will be using)

I click "Yes" for "Enable password protection on Windows Server Active Directory"

I select a mode. "Enforced" will <strong>prevent</strong> banned\custom passwords from being set. "Audit" will <strong>log</strong> when a banned\custom password has been set.
<h3><strong>User Experience</strong></h3>
We are going to test 2 scenarios with the Mode set to "Enforced".
<ul>
 	<li>Trying to set a password that we have defined on the "Custom banned password list"</li>
 	<li>Trying to set a password that Azure AD has detected as weak\risky.</li>
</ul>
<strong>NOTE</strong>: When deploying it is strongly recommended to start Password Protection in "Audit" mode. This will help you gauge the level of weak passwords being set and plan education for users accordingly.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Password5.jpg"><img width="372" height="437" class="alignnone wp-image-1165" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Password5.jpg" /></a>

&nbsp;

Let's try and reset my password to "Dudders2018!"

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Password1.jpg"><img width="840" height="395" class="alignnone wp-image-1095" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Password1-1024x482.jpg" /></a>

&nbsp;

It fails to set, displays the standard password complexity message and logs the following events in the authenticating DC.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/event-1.jpg"><img width="842" height="88" class="alignnone wp-image-1105" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/event-1-1024x107.jpg" /></a> <a href="https://msdnshared.blob.core.windows.net/media/2018/06/event.jpg"><img width="843" height="93" class="alignnone wp-image-1115" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/event-1024x113.jpg" /></a>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Password2.jpg"><img width="361" height="360" class="alignnone wp-image-1055" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Password2.jpg" /></a>

&nbsp;

Let's try and reset my password to "Password12!"

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Password3.jpg"><img width="839" height="263" class="alignnone wp-image-1065" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Password3-1024x321.jpg" /></a>

&nbsp;

It also fails to set, displays the standard password complexity message and logs the following events in the authenticating DC.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/event-1.jpg"><img width="842" height="88" class="alignnone wp-image-1105" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/event-1-1024x107.jpg" /></a> <a href="https://msdnshared.blob.core.windows.net/media/2018/06/event.jpg"><img width="842" height="93" class="alignnone wp-image-1115" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/event-1024x113.jpg" /></a>

&nbsp;

I tried to set "June2018!" (which isn't in the custom list) as a password and that also failed as Azure AD has already defined this pattern of passwords as weak\risky.

Just to prove that this is working, I change the mode to "Audit", wait for the DC's to update the local policy and then try and reset the password to "Dudders2018!" &amp; "June2018!". It lets the banned\weak passwords get set but the following event log is set. This could be useful when you're considering rolling out this feature to see how many users are using passwords that are considered weak or at risk.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/Event-2.jpg"><img width="850" height="93" class="alignnone wp-image-1125" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/Event-2-1024x112.jpg" /></a>

&nbsp;

Hope thats useful!

MD

<a href="https://twitter.com/Dudders1">@Dudders1</a>]]></content:encoded>
    </item>
    <item>
      <title>Blocking Legacy Clients with Azure AD Conditional Access</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/blocking-legacy-clients-with-azure-ad-conditional-access</link>
      <pubDate>Wed, 06 Jun 2018 13:47:37 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=885</guid>
      <description><![CDATA[Hi,

A great new feature has been added to Azure AD Conditional Access that provides the ability...]]></description>
      <content:encoded><![CDATA[Hi,

A great new feature has been added to Azure AD Conditional Access that provides the ability to block access from legacy clients (<strong>In preview at the time of writing this post</strong>). I've had many customers ask for this capability so I thought I'd put together a quick run though on how to configure it and the user experience for a legacy client (Outlook 2010).

The "legacy clients" we are referring to are the <strong>non</strong> ADAL\Modern-Auth clients that are using legacy authentication methods (more information <a href="https://www.microsoft.com/en-us/microsoft-365/blog/2015/11/19/updated-office-365-modern-authentication-public-preview/">here</a>)  A good example being Basic Auth over SSL used with Outlook 2010 and below. This presented a challenge for some customers as they would configure Conditional Access Policies and they wouldn't apply to users using these older clients (and therefore have to use more clunky methods to block these clients).

Below is an example of a Conditional Access Policy that blocks access from all legacy clients to all Microsoft Cloud Applications. I have created a Conditional Access Policy that is targeted to group of users and all cloud applications. (<strong>please target Conditional Access Policies carefully and always test on a small subset of users\applications before rolling out!</strong>).

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA1.jpg"><img width="801" height="563" class="alignnone size-full wp-image-895" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA1.jpg" /></a>

&nbsp;

Within the "Conditions" &gt; "Client apps (preview)" blade there is now a "Other clients" checkbox.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA2.jpg"><img width="799" height="599" class="alignnone wp-image-905" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA2.jpg" /></a>

&nbsp;

As this is a "Condition" it allows you to target all "other clients" aka legacy clients and apply a "Block" without affecting your more modern ADAL clients (e.g. Office 2016).

NOTE: There is also a "Modern authentication clients" condition which allows you to target a policy at ADAL\Modern Auth clients.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA3.jpg"><img width="800" height="845" class="alignnone wp-image-915" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/LegCA3.jpg" /></a>

Before enabling the policy you need to be aware of a couple of things (more info <a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-conditional-access-conditions#legacy-authentication">here</a>).
<ul>
 	<li><b>Once enabled this policy could take up to 24 hours to apply.</b></li>
 	<li><strong>Configuring this policy for “Other clients” will apply to all clients that are using legacy authentication methods. You should use this to test on a small subset of users\apps and once you are clear on what impact the policy will have then consider rolling it out to a wider scope.</strong></li>
</ul>
Now enabled, the next day I open Outlook 2010 and I'm prompted for credentials. Despite entering correct credentials the authentication is denied and user is re-prompted. I would recommend communications to helpdesk and users in advance so that users don't mistakenly think there password is incorrect. Outlook 2016 and other Modern Authentication Clients continue to work as expected.

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/06/OUT2010.png"><img width="1024" height="538" class="alignnone size-large wp-image-925" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/06/OUT2010-1024x538.png" /></a>

&nbsp;

Hope thats useful!

MD

<a href="https://twitter.com/dudders1">@Dudders1</a>

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Getting the best out of Azure AD</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/getting-the-best-out-of-azure-ad</link>
      <pubDate>Fri, 27 Oct 2017 09:19:14 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=835</guid>
      <description><![CDATA[Hi,

I spent some time with a customer yesterday who had a particular requirement around securing...]]></description>
      <content:encoded><![CDATA[Hi,

I spent some time with a customer yesterday who had a particular requirement around securing access to Office 365.  After a quick discussion it emerged they had paid for Azure AD Premium (via EMS licensing) but weren't using key features that would help address their requirement.  After 10 mins of walking through Azure AD features we looked at Conditional Access and discussed what policy to deploy to meet their requirement. This got me thinking...what "no brainer" Azure AD features would I recommend customers deploy\use straight away?

This is my top 5 list. (some features only require a single Azure AD Premium License, some require all users to be licensed and some require a small number of licenses.)

<strong>1.Enable Azure AD Privileged Identity Management (PIM)</strong> - You only need Azure AD P2 licenses assigned to administrators to use this. PIM will add a change control\approval process to the use of Azure AD\Azure admin accounts to provide "Just in Time" access. It achieves this by converting the type of your Azure AD admin roles from "permanent" to "eligible". This allows your organisation to approve (or deny) requests for administration rights for "eligible" administrators as and when they are needed. A very important tool to further protect the most important accounts in Azure AD. PIM controls the who, when and for how long...you still need to control the what. The principles of "least privilege" still apply and regular reviews of Administrators access need to be performed. Azure\Office 365\Azure AD have extensive RBAC models but it is easy to create custom roles to ensure that the bare minimum is granted to an administrator. PIM and "<a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-privileged-identity-management-how-to-start-security-review">Access Reviews</a>" helps you determine what administration roles have access to, when the access has been used and you should perform regular reviews as to what administration rights an individual should have.

<a href="https://msdnshared.blob.core.windows.net/media/2017/10/pim_add_pra.png"><img width="1024" height="484" class="alignnone size-large wp-image-845" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/pim_add_pra-1024x484.png" /></a>

<strong>2.Configure Azure AD Conditional Access</strong> -<b> </b>This functionality is included with Azure AD Premium and licensed on a per user basis (if you have EMS licensing then you likely are covered for those users). Conditional Access works by providing you the ability to allow\deny access or potentially step up authentication based on the following parameters. (In my customers scenario we were able to set up a policy and apply to test users within minutes)
<ul>
 	<li><b>Group membership - </b>Allow users to access a resource if they are a member of a group.</li>
 	<li><strong>Location -</strong> Allow, Deny users based on the location from which they are trying to access resources (IP\Country Based).</li>
 	<li><strong>Device Platform -</strong> Allow or Deny users to access a resource based on the OS of the device they are trying to access from.</li>
 	<li><strong>Device State -</strong> The ability to enable\disable a device and include the state of the device in the authorisation decision. i.e. require that users accessing Exchange from a browser on an unknown device perform MFA.</li>
 	<li><strong>Sign-in and user risk -</strong> Advanced protection to determine the risk of the access request. I.e. user is attempting to logon from USA and had previously logged on from UK 5 mins earlier (Available with Azure Identity Protection - P2).</li>
</ul>
<strong>3.Enable Azure MFA</strong> - Having MFA enabled is obviously a good idea. If you have Azure AD Premium for your users then you are able to enable them for MFA and use Conditional Access to determine when it should be invoked. i.e user is on an unknown device, location based, risk level etc. In particular I would recommend the following as a minimum.
<ul>
 	<li>MFA for administrators is a must have. If you don't have Azure AD Premium for your users but do have Office 365 E3 licencing then you do have <a href="https://cloudblogs.microsoft.com/enterprisemobility/2014/02/11/mfa-for-office-365-and-mfa-for-azure/">MFA licences for Azure administrators.</a></li>
 	<li>Enroll your users in MFA (<a href="https://blogs.technet.microsoft.com/janketil/2016/03/09/azure-ad-identity-protection-mfa-registration-policy/">MFA Registration Policy</a> provided with Azure AD Identity Protection - P2) even if you don't plan to enforce MFA yet. Reason being if you need to react to an event then MFA is a great tool to step up security. Having users enrolled in MFA means that you can do this quickly.</li>
</ul>
<strong>4.Enable Azure Connect Health </strong>- AADConnect is an integral part of an organisations identity management. Azure AD is the identity platform for Azure, Office 365 and potentially lots of your 3rd party SaaS applications. The health of these services are very important and when it comes to identity its important that users are provisioned, de-provisioned and able to log on in a secure and reliable fashion. <a href="https://cloudblogs.microsoft.com/enterprisemobility/2017/08/30/todays-identity-news-improvements-to-azure-ad-connect-health-sync-error-reporting/">Azure Connect Health</a> monitors your AADConnect and AD FS services and reports errors to you.  Accessing the Sync Error Report <strong>doesn't</strong> require an Azure AD Premium license but you do need AAD Premium Licenses for the Azure Connect Health agents you <a href="https://docs.microsoft.com/en-us/azure/active-directory/connect-health/active-directory-aadconnect-health-faq">deploy</a>. It's a great tool to provide visibility of a key part of your identity management infrastructure.

<strong>5.Use Azure AD Reporting</strong> - Reporting comes with all editions of Azure AD and its a valuable feature to gain insight into what is happening with Azure AD users and a place to review the Security\Auditing that is provided with the service. The levels of security reporting depend on the licencing you have. Its broken down in to 3 types:
<!-- [if gte IE 9]&gt;&gt;-->
<ul>
 	<li><strong>Azure Active Directory Free and Basic editions</strong>, you already get a list of users flagged for risk and risky sign-ins.</li>
 	<li><strong>Azure Active Directory Premium 1</strong> edition extends this model by also enabling you to examine some of the underlying risk events that have been detected for each report.</li>
 	<li><strong>Azure Active Directory Premium 2</strong> edition provides you with the most detailed information about the underlying risk events and it also enables you to configure security policies that automatically respond to configured risk levels.</li>
</ul>
Hope this helps and if you have Azure AD Premium licensing then make use of these great features, its good stuff :)

MD (@Dudders1)

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure AD - Ignite 2017 Announcement Summary</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/azure-ad-ignite-2017-announcement-summary</link>
      <pubDate>Mon, 02 Oct 2017 16:07:44 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=825</guid>
      <description><![CDATA[Hi,

With the masses of information coming out of Ignite 2017 last week, I thought i'd throw...]]></description>
      <content:encoded><![CDATA[Hi,

With the masses of information coming out of Ignite 2017 last week, I thought i'd throw together a quick summary of the key Azure AD announcements for your perusal. Some really great announcements and major enhancements in Conditional Access.

<strong>Pass Through Authentication (PTA) is now generally available</strong> -  This feature has been in preview for a while and is now GA including the S-SSO scenarios provided with PTA and Password Hash Synchronisation. More information <a href="https://azure.microsoft.com/en-gb/roadmap/azure-active-directory-pass-through-authentication/">here</a>

<strong>Conditional Access Enhancements </strong> - Conditional Access has taken a big step forward with the announcements of the following functionality.
<ul>
 	<li><strong>Azure Information Protection Integration (Preview)</strong> - For me this is the big one and customers have been waiting for this!. It was announced that Conditional Access now has integration with Azure Information Protection (AIP). So this means you can protect documents with AIP and use conditional access policies to control access to these files. Whereas before, access to AIP protected documents relied on only user authentication, now with conditional access integration you can factor in User, Device state, Location, Risk into the authentication process. More information <a href="https://blogs.technet.microsoft.com/enterprisemobility/2017/09/27/whats-new-in-azure-information-protection-ignite-2017/">here</a>.</li>
 	<li><strong>Support for macOS device based conditional access (Preview) - </strong>Now you can configure conditional access policies for Intune managed macOS devices, More information <a href="https://blogs.technet.microsoft.com/enterprisemobility/2017/08/23/azure-ad-and-intune-now-support-macos-in-conditional-access/">here</a>.</li>
 	<li><strong>New IP based Conditional Access Conditions (Preview)</strong> -  historically, when defining IP ranges to allow\block with conditional access you only had the option to manually add IP ranges. Now you will also be able to select country\region based IP ranges that allow you to allow\block based on country\region. Can save quite a bit of work!</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/10/IPs.jpg"><img width="255" height="437" class="alignnone wp-image-826" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/10/IPs.jpg" /></a>
<ul>
 	<li><strong>3rd Party MFA Providers</strong> -  So we all love Azure MFA... but feedback from customers highlighted they would like the option to use 3rd party MFA providers with Azure AD. @Ignite it was announced that Microsoft have formed partnerships with Duo, RSA and Trusona to provide MFA with Azure AD. Having had a quick look at each option they all look very good. All integrate easily and you can select an MFA provider that suits your needs.</li>
 	<li><strong>Terms of Use Controls (Preview)</strong> - This feature allows you present a "Terms of Use" policy to a user which they will need to accept before they get access to an application(s). More information <a href="https://docs.microsoft.com/en-us/azure/active-directory/active-directory-tou">here</a>.</li>
 	<li><strong>Session Control (Preview) - </strong>There has been a session control preview available for SharePoint Online for some time. Essentially its the ability to grant access to an application but provide reduced functionality in that session. e.g. The user is logging in from a unknown location, allow log on but restrict the session so the user cannot download data. @Ignite it was announced that Azure AD Conditional Access will integrate with Microsoft Cloud App Security to extend this capability to many more SaaS applications. The Microsoft Cloud App Security Integration is currently in private preview but will bring some seriously great control to SaaS apps secured using Azure AD. See <a href="https://blogs.technet.microsoft.com/enterprisemobility/2017/09/27/whats-new-in-microsoft-cloud-app-security-ignite-2017/">here </a>for details.</li>
</ul>
<strong>Azure AD Privileged Identity Management (PIM) - </strong>Has been extended to the Azure platform to enable you to do "Just in Time" administration for Azure workloads. i.e. provide time limited access to Azure RBAC roles to manage VM's etc.

<b>Additional Identity types</b><strong> for B2B - </strong>@Ignite it was announced that additional identity providers would be added to the current Azure B2B platform. This will provide the ability for additional identities e.g. Google to be used for B2B scenarios.

Hope that's helpful and I'll blog about some of these new capabilities soon!

MD <a href="https://twitter.com/Dudders1">@Dudders1</a>

&nbsp;

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Azure AD B2C - Part 3 - User Experience</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/azure-ad-b2c-part-3-user-experience</link>
      <pubDate>Thu, 27 Jul 2017 10:45:27 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=657</guid>
      <description><![CDATA[In this final post of the series we will test the Azure B2C applications we have set up in the...]]></description>
      <content:encoded><![CDATA[In this final post of the series we will test the Azure B2C applications we have set up in the previous posts (link <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/27/azure-ad-b2c-part-1-overviewrosoft.com/oncloud/2017/07/26/azure-ad-b2c-part-1-overview">here</a>). We will show the user experience with Azure AD B2C using different B2C policies and using email\social identities for signup\logon. Just to recap we have 2 applications:
<ol>
 	<li><span style="font-size: 11pt"><em><span style="font-family: Calibri"><span> </span></span></em></span><em>A Job Portal that requires users to log in so relevant jobs are surfaced to those users and to simplify job application. This application must provide email and a social identity provider as authentication types and no MFA is to be enforced.</em></li>
 	<li><em> </em><em>A Payroll Portal that requires stronger authentication to allow users to view payslips, manage bank details etc. This application must provide email and a social identity provider as authentication types and MFA <strong>is</strong> to be enforced.</em></li>
</ol>
Let's test the Contoso Jobs Portal first. I navigate to the Contoso Jobs Portal and I'm a new user (Joe Bloggs) who needs a job!

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/110.jpg"><img width="680" height="304" class="alignnone wp-image-785" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/110-1024x458.jpg" /></a>

So Joe clicks "Sign up/Sign in" and is re-directed to the Azure AD B2C page.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/241.jpg"><img width="687" height="386" class="alignnone wp-image-675" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/241-1024x575.jpg" /></a>

Joe doesn't want to use social login so decides to "Sign up now" and is presented with the following sign-up page.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/252.jpg"><img width="696" height="533" class="alignnone wp-image-676" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/252-1024x785.jpg" /></a>

Joe enters the required information (as defined in the sign-up policy) and has to verify that the email address is valid and belongs to Joe. Joe now clicks "Create".

<span style="font-size: 11pt"><span style="font-family: Calibri"> <a href="https://msdnshared.blob.core.windows.net/media/2017/07/26.jpg"><img width="671" height="311" class="alignnone wp-image-677" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/26-1024x475.jpg" /></a></span></span>

Joe is now logged in and her account is provisioned in the Azure B2C directory. From this point Joe can log on and use the Job Portal with those credentials. However Joe has now moved house and needs to change her Postal code\Zip code. To do this Joe clicks on her name and selects "Edit Profile" (<strong>Note:</strong> "Reset Password" so Joe can reset her password inline with the policy you have defined.)

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/27.jpg"><img width="680" height="78" class="alignnone wp-image-686" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/27-1024x117.jpg" /></a>

Joe is then presented with the "update profile" page which shows the information that Joe is allowed to edit.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/28.jpg"><img width="686" height="372" class="alignnone wp-image-696" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/28-1024x555.jpg" /></a>

Joe changes the Postal code\Zip Code, clicks "Continue" and is returned to the application.

Joe now gets a job! She has worked her first week and now it's time to view her payslip on the Contoso Pay Portal.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/29.jpg"><img width="698" height="378" class="alignnone wp-image-705" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/29-1024x554.jpg" /></a>

She already has an account in the Azure B2C directory so no need to sign up but will it seamlessly sign in??? Joe enters her credentials and is presented with the following:

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/30.jpg"><img width="740" height="353" class="alignnone wp-image-715" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/30-1024x488.jpg" /></a>

No, she isn't seamlessly signed in....but remember this is the behaviour we want. A single factor of authentication for the Contoso Jobs Portal but we wanted a stronger level of authentication for the Contoso Pay Portal. Joe now enters a phone number and clicks "Send Code". Joe enters the code she has received and is logged into to the Pay Portal!

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/311.jpg"><img width="718" height="333" class="alignnone wp-image-716" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/311-1024x474.jpg" /></a>

Another person has decided to look for a Job. Mike Smith is a little more adventurous and would like to use his Facebook credentials for log on to the Contoso Jobs Portal. Mike connects to the portal and clicks on "Sign up/Sign in". He is then presented with the Azure AD B2C page.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/321.jpg"><img width="701" height="331" class="alignnone wp-image-725" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/321-1024x483.jpg" /></a>

Mike clicks on the "sign in with your social account" button and is presented with the following

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/332.jpg"><img width="652" height="437" class="alignnone wp-image-756" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/332-1024x686.jpg" /></a>

Mike enters his credentials and clicks "Log in" and is presented with this:

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/341.jpg"><img width="452" height="371" class="alignnone wp-image-745" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/341-1024x842.jpg" /></a>

Mike accepts the terms and then is presented with the Azure AD B2C sign in page to ensure all the required attributes are populated. These will be auto populated if the information is present in your Facebook profile. If not it will prompt you to enter the additional information. Mike will need to verify the email address and then click continue.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/361.jpg"><img width="687" height="395" class="alignnone wp-image-755" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/361-1024x589.jpg" /></a>

Now Mike is logged into the Contoso Jobs Portal with Facebook, his social identity provider!

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/371.jpg"><img width="678" height="311" class="alignnone wp-image-775" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/371-1024x469.jpg" /></a>

So to wrap up. Contoso Recruitment wanted to provide a simple, secure and consistent authentication experience for consumers to access their public facing applications. Each application has differing security\authentication requirements but Contoso Recruitment wanted to achieve this with a single identity to access all of their public facing applications. I hope this series of posts has shown how this is easily achieved using Azure AD B2C.

That's the last post in the series. Follow me if you would like to see future posts. Thanks for reading.

MD]]></content:encoded>
    </item>
    <item>
      <title>Azure AD B2C - Part 2 - B2C Policies</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/azure-ad-b2c-part-2-b2c-policies</link>
      <pubDate>Thu, 27 Jul 2017 10:44:56 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=555</guid>
      <description><![CDATA[Azure AD B2C provides the ability to set up policies to control how users can logon, sign up, edit...]]></description>
      <content:encoded><![CDATA[Azure AD B2C provides the ability to set up policies to control how users can logon, sign up, edit profile information and reset passwords. These polices can be used on a per application basis. The policy assignment is performed by defining the policy name within the application itself.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/202.jpg"><img width="750" height="137" class="alignnone wp-image-635" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/202-1024x187.jpg" /></a>

The policies we will discuss are the:
<ol>
 	<li>"Sign-up policy" - the policy to allow users to self-provision\sign up for the service.</li>
 	<li>"Sign-in policy" - the policy that defines the authentication types, strength of authentication and application claims to send.</li>
 	<li>"Profile editing policy" - the policy to define what users can edit within their Azure AD B2C User Profile.</li>
 	<li>"Password reset policy" - the policy to define password reset options for users.</li>
</ol>
<a href="https://msdnshared.blob.core.windows.net/media/2017/07/1115.png"><img width="256" height="270" class="alignnone wp-image-557" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/1115.png" /></a>

As you can see from the above we can actually have a combined "sign-up or sign-in" policy which is handy as we have 2 applications so we can just create one for each application. Let's create the policy for the Contoso Job Portal and then I'll show you what is different for the Contoso Pay Portal. Click "sign-up or sign-in policies" and click "Add".

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/1212.png"><img width="701" height="359" class="alignnone wp-image-565" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/1212-1024x525.png" /></a>

<span style="font-weight: bold">Identity Providers</span> - select the Identity options you wish to use with this policy\application. For the Contoso Job and Pay Portal we will select "Email signup" and "Facebook".

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/132.jpg"><img width="702" height="383" class="alignnone wp-image-575" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/132-1024x559.jpg" /></a>

<span style="font-weight: bold">Sign-up attributes</span> - select the information you wish to collect from the user during sign up (include the ability to select any additional attributes you have added from <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/27/azure-ad-b2c-part-1-overview">Part 1</a>).  For the Contoso Job and Pay Portal we have selected 5 attributes.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/142.jpg"><img width="696" height="478" class="alignnone wp-image-585" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/142-1024x704.jpg" /></a>

<span style="font-weight: bold">Application claims</span> - select claims you wish to pass back to the application after successful authentication. For the Contoso Job and Pay Portal we have selected "Display Name" (which is required by the application) and "Identity Provider" (which if not selected now will be automatically added once the policy is created as we have added Facebook as an identity provider).

<span style="font-weight: bold">Multifactor authentication (MFA)</span> - do you need to enforce Multifactor authentication for these users? For the Contoso Job Portal policy we have left "Multifactor authentication" as disabled but for the Contoso Pay Portal we will enable it to meet the requirements set out in <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/27/azure-ad-b2c-part-1-overview">Part 1</a> of this series.

<span style="font-weight: bold">Page UI customization</span> - this provides the ability to customise the UI for your users. We will leave as default but feel free to customise.

So that's the policy for the Contoso Job Portal taken care of.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/211.jpg"><img width="330" height="452" class="alignnone wp-image-636" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/211.jpg" /></a>

The Contoso Pay Portal will be exactly the same apart from the fact that we will enforce MFA.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/223.jpg"><img width="330" height="453" class="alignnone wp-image-656" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/223.jpg" /></a>

So now we have defined the "sign-up or sign-in" policy for both applications.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/165.png"><img width="634" height="461" class="alignnone wp-image-605" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/165.png" /></a>

Select each policy, click "Run now" to test and show the Azure AD B2C page your users will see.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/173.png"><img width="645" height="499" class="alignnone wp-image-606" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/173-1024x792.png" /></a>

As you can see Facebook and email address are presented as sign-in options and there is also the "Sign up now" link defined.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/182.png"><img width="837" height="502" class="alignnone wp-image-615" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/182-1024x614.png" /></a>

Now you have to define the Profile Editing and Password Reset Policy. I won't step though these in detail as the run through above should mean they will make sense to you. Key things to consider are:
<ol>
 	<li>what attributes you will allow users to edit in their profile?</li>
 	<li>what identity providers you will allow "password reset" to occur with?</li>
 	<li>whether you will enforce MFA for a password reset?</li>
</ol>
So that's the set up completed! In the next post we will test the user experience with the different applications. Next post located <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/27/azure-ad-b2c-part-3-user-experience"><strong>here</strong></a>]]></content:encoded>
    </item>
    <item>
      <title>Azure AD B2C - Part 1 - Overview</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/azure-ad-b2c-part-1-overview</link>
      <pubDate>Thu, 27 Jul 2017 10:44:24 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=455</guid>
      <description><![CDATA[Hi,

Azure AD B2C has been generally available for a while now and I'm seeing real interest from...]]></description>
      <content:encoded><![CDATA[Hi,

Azure AD B2C has been generally available for a while now and I'm seeing real interest from customers on this topic. I have lots of customers that have public facing applications and have real headaches managing the identity\security aspects. This is exactly the problem that Azure AD B2C is looking to address by providing:
<ol>
 	<li>A single identity platform that supports your customer facing applications (OpenID Connect and OAuth 2.0 capable applications).</li>
 	<li>Seamless authentication and provisioning with Azure AD B2C or consumer identities.</li>
 	<li>Granular authentication control on a per application basis.</li>
 	<li>Resilience, performance and scale.</li>
</ol>
In this series of posts we will look at B2C features, deployment and the consumer experience, but first let's define an example scenario<em>.</em>

<em>Contoso Recruitment has 2 customer facing websites that both require authentication. Contoso Recruitment wants their customers to be able to use consumer identities for a better experience and to reduce the amount of management required to support customer facing applications. Applications are:</em>
<ol>
 	<li><em> </em><em>A Job Portal that requires users to log in so relevant jobs are surfaced to those users and to simplify job application.</em></li>
 	<li><em> </em><em>A Payroll Portal that requires stronger authentication to allow users to view payslips, manage bank details etc.</em></li>
</ol>
So it makes sense for both sites to use the same authentication platform (as job seekers will hopefully become employees and vice versa) but obviously the payroll site has a need for a greater level of security. So how does Azure AD B2C address this requirement? Let's take a look...

I have 2 web applications (Contoso Jobs Portal and Contoso Pay Portal) which I have set up with Visual Studio using the sample applications located <a href="https://azure.microsoft.com/en-gb/resources/samples/active-directory-b2c-dotnet-webapp-and-webapi/">here</a>.

The first step is to set up the applications in Azure AD B2C. In the Azure Portal navigate to the "Azure AD B2C" Blade.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/140.png"><img width="890" height="502" class="alignnone wp-image-467" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/140-1024x577.png" /></a>

Within the "Azure AD B2C" Blade select "Applications" and click "Add". Enter a name for the application and select the type of application you are integrating. In my case it's a "Web App/Web API" so I need to add a "Reply URL" which is the location that Azure AD needs to send the authentication token\response to. (<a href="https://localhost:44316/">https://localhost:44316/</a> in my example as I'm running the application locally).

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/24.jpg"><img width="519" height="534" class="alignnone wp-image-476" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/24-995x1024.jpg" /></a>

Click "Create" and you should see that it has successfully provisioned with the "Application ID" populated

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/34.jpg"><img width="765" height="158" class="alignnone wp-image-485" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/34-1024x211.jpg" /></a>

You'll need The "Application ID" for your application integration and you'll need a "Client Secret\Key" which is generated in the settings of the application you have just created.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/43.jpg"><img width="510" height="193" class="alignnone wp-image-495" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/43-1024x387.jpg" /></a>

Now let's move on to the next step which is to configure the "Identity Providers". By default "Local Accounts - Email" is provided which allows users to provision\log on with an email address (which under the hood is provisioned as a Azure AD B2C account) but you have many options to select here including Consumer\Social Identities. I'm going to add Facebook as an Identity Provider.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/69.png"><img width="507" height="484" class="alignnone wp-image-505" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/69.png" /></a>

<span style="font-weight: bold">Note:</span> the ever increasing list of Social Identity providers. So the next step (Facebook in this example) is to register the application with the Social Identity Provider. I have done this with Facebook and it has provided me a "AppID" and "App Secret" which I will use in the next step (see <a href="https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-setup-fb-app">here </a>for more information on Facebook app integration).

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/513.png"><img width="720" height="169" class="alignnone wp-image-507" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/513-1024x240.png" /></a>

With this "AppID" and "App Secret" I can complete the addition of the Social Identity Provider in Azure AD B2C. (AppID = Client ID and App Secret = Client Secret)

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/711.png"><img width="513" height="227" class="alignnone wp-image-515" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/711.png" /></a>

Now click "Create" and we now have "Local Accounts" and "Facebook" as Identity Providers that we can use for our applications.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/83.jpg"><img width="514" height="303" class="alignnone wp-image-526" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/83-1024x603.jpg" /></a>

The next step is to review the "User Attributes". This is a list of user attributes that you will hold within the B2C directory. I will stick to default but feel free to add more if you need to collect more information about your users or you have specific information you will use in authentication claims.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/92.jpg"><img width="529" height="541" class="alignnone wp-image-535" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/92-1002x1024.jpg" /></a>

Next is the "User and Groups" Blade. Within this Blade you can add, remove, view, edit users that are present in the directory, create groups, configure authentication options and define what users are able to do.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/102.jpg"><img width="792" height="614" class="alignnone wp-image-545" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/102-1024x793.jpg" /></a>

So to summarise what we have done so far...We have added our applications into Azure AD B2C, added a social identity provider, defined the attributes we use within the directory and had a look at how you manage users and groups in Azure AD B2C. In the next post we will set up the B2C policies that we will use to provide the granular control we need for this scenario, located <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/27/azure-ad-b2c-part-2-b2c-policies"><strong>here</strong></a>.

MD]]></content:encoded>
    </item>
    <item>
      <title>Getting Ready for Microsoft Cloud Identity - AAD Connect</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/getting-ready-for-microsoft-cloud-identity-aad-connect</link>
      <pubDate>Fri, 14 Jul 2017 14:14:57 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=236</guid>
      <description><![CDATA[Hi,

The process to deploy AADConnect is a well-trodden path and there is lots of installation...]]></description>
      <content:encoded><![CDATA[Hi,

The process to deploy AADConnect is a well-trodden path and there is lots of installation guidance out there.  This post is going to go into to a little more detail on deployment considerations and the options you are presented with during the installation.

<b>Build Number</b> - AADConnect is regularly updated with new features. At the time of writing this post I am working with build 1.1.557.0. To see the latest version of AAD Connect look <a href="https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-version-history">here</a>.

<b>Server Specs - </b>The hardware requirements for the AADConnect server are documented <a href="https://docs.microsoft.com/en-us/azure/active-directory/connect/active-directory-aadconnect-prerequisites#hardware-requirements-for-azure-ad-connect">here</a>. AADConnect can be deployed on a virtual server (including Azure IaaS) providing the ability to re-size the VM should the need arise.

<b>Database Choice - </b>For a majority of customers this isn't relevant but is good to know as who knows what will happen in the future. AADConnect by default installs a free version of SQL (SQLExpress) and as long as the total number of AD Objects stays below 100,000 objects then you don't have anything to think about. But if your close too or exceed 100,000 AD objects then you will need to purchase and deploy a full SQL Server instance (or use an existing one). The AADConnect "custom" installation provides and option to "Use an existing SQL Server" which will allow you to use a full SQL instance.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/fullSQL.png"><img width="648" height="342" class="alignnone wp-image-245" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/fullSQL-1024x541.png" /></a>

<b>AADConnect Installation</b>

The Installation of AADConnect is a simple one. You download the latest version from <a href="https://www.microsoft.com/en-us/download/details.aspx?id=47594">here</a>, run it and now we'll walk through the key options.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/UserSignIn.png"><img width="635" height="357" class="alignnone wp-image-255" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/UserSignIn-1024x575.png" /></a>

<b>User sign in</b> - asks you to select an Authentication type. As you may remember I have a previous <a href="https://blogs.msdn.microsoft.com/oncloud/2017/06/22/cloud-identity-overview-part-1-authentication/">post</a> that walks through the options and how they work.
<ol>
 	<li><b>Password Synchronisation</b> - Select this option to synchronise a "hash of hash" of users passwords to Azure AD (You can also select the "Enable single sign on" checkbox with this option).</li>
 	<li><b>Pass-through Authentication</b> - Select this option to authenticate users with your on-premises AD  (You can also select the "Enable single sign on" checkbox with this option).</li>
 	<li><b>Federation with AD FS - </b>Select this option to authenticate users with your on-premises AD FS Farm (The wizard will assist with the set up the AD FS farm or utilise an existing one).</li>
</ol>
<a href="https://msdnshared.blob.core.windows.net/media/2017/07/sign-in-config.png"><img width="694" height="357" class="alignnone wp-image-265" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/sign-in-config-1024x527.png" /></a>

<b>Azure AD Sign-in configuration</b> - shows the Active Directory UPN domains and domains that you have registered in Azure AD. You are required to select an attribute to use as the username. I would personally recommend that you stick with UPN as it is the most user friendly option (as UPN can match email address in many cases). If you note from the diagram you will see that I have a domain that is showing as "Not Added". This is because I have used additional UPN suffixes to change what UPNs users will have (instead of using the implicit UPN of dudders.com)

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/Domain-and-OU.png"><img width="684" height="462" class="alignnone wp-image-275" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/Domain-and-OU-1024x692.png" /></a>

<b>Domain and OU filtering</b> - This is where you configure what objects are in scope of synchronisation to Azure AD. As I have mentioned in a number of previous posts only do so if there is a clear security\policy reason to do so. Typically customers only filter things like service, disabled accounts as there is generally no value to having them in Azure AD.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/Identify.png"><img width="737" height="427" class="alignnone wp-image-285" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/Identify-1024x593.png" /></a>

<b>Uniquely identifying your users - </b>This page is trying to answer 2 questions.
<ol>
 	<li>Do I have to deal with duplicate users across multiple directories, if so then how do I match them? (Avoiding issues/duplicates in Azure AD)</li>
 	<li>What do you want the Source Anchor (the attribute that links the on-premises AD object to the Azure AD Object) to be?</li>
</ol>
Hopefully you don't have duplicate users across directories but if you do then select the attribute that will best allow a match to occur. On the Source Anchor attribute, unless you have a very specific reason for not doing so I would recommend that you remain with the Default option "Let Azure manage the source anchor for me" This is actually using an attribute called msDS-ConsistencyGuid which is the best future proof option. See my previous ramblings on source anchor (ImmutableID) considerations <a href="https://blogs.msdn.microsoft.com/oncloud/2017/07/04/aadconnect-multi-forest-synchronisation-planning/">here</a>.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/Optional.png"><img width="599" height="444" class="alignnone wp-image-286" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/Optional-1024x759.png" /></a>

<b>Optional features</b> - Please review these features as they contain workload specific features. So depending on what licensing you have and what services you are looking to use in the Microsoft Cloud you may need to enable features here. A common example being "Exchange Hybrid Deployment". AADConnect plays a pivotal part in all of these features.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/Ready.png"><img width="632" height="387" class="alignnone wp-image-295" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/Ready-1024x627.png" /></a>

That's the primary options covered. On the last page it provides a summary of the configuration and you can decide whether to start syncing straight away. Note the "enable staging mode" option. This is the checkbox you would enable if this server is the "staging server" which I covered briefly <a href="https://blogs.msdn.microsoft.com/oncloud/2017/06/22/cloud-identity-overview-part-3-synchronisation/">here</a>.

MD]]></content:encoded>
    </item>
    <item>
      <title>Azure Site Recovery Overview (Azure to Azure)</title>
      <link>https://docs.microsoft.com/archive/blogs/oncloud/azure-site-recovery-overview-azure-to-azure</link>
      <pubDate>Fri, 14 Jul 2017 13:53:06 GMT</pubDate>
      <dc:creator><![CDATA[Mike Duddington]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/oncloud/?p=305</guid>
      <description><![CDATA[Hi,

I'm temporarily deviating from Cloud Identity topics to show you a new Azure feature (that is...]]></description>
      <content:encoded><![CDATA[Hi,

I'm temporarily deviating from Cloud Identity topics to show you a new Azure feature (that is in preview at the time of writing this post). Azure to Azure Site Recovery allows you to replicate\failover virtual machines from one Azure region to another. Azure Site Recovery has been around for a while and until recently only provided the ability to failover to Azure from On-Premises and between On-Premises datacentres. Now you can do Azure to Azure as well. Let's set it up and have a look.

Firstly, lets set up a "Recovery Services Vault"

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/120.png"><img width="553" height="426" class="alignnone wp-image-315" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/120.png" /></a>

Make sure you create the Recovery Services Vault in a different region to the Source Virtual Machines. In this example we will be failing VM's over from East US to West US 2 (with the Recovery Vault being located in West US 2).

Once the Recovery Services Vault is created, open it, then click on "Site Recovery" then "Prepare Infrastructure".

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/219.png"><img width="1024" height="364" class="alignnone size-large wp-image-325" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/219-1024x364.png" /></a>

Select "Azure - Preview" for the Source and "To Azure" as the Target, click OK.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/38.png"><img width="1024" height="360" class="alignnone size-large wp-image-335" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/38-1024x360.png" /></a>

Then Click "Step 1:Replicate Application" In "Source" configure the source locations details. (Source Region, and Source Resource Group), click OK.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/48.png"><img width="1024" height="356" class="alignnone size-large wp-image-345" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/48-1024x356.png" /></a>

Select the Virtual Machine(s) you wish to replicate\failover. (Note: look at this <a href="https://docs.microsoft.com/en-us/azure/site-recovery/site-recovery-support-matrix-azure-to-azure">link</a> for supported VM types\configurations and verify that your subscription allows for creation of VM's in the Target ), click OK.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/55.png"><img width="1024" height="323" class="alignnone size-large wp-image-355" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/55-1024x323.png" /></a>

On the "Settings" blade you need to provide the information on Target Resource Group, Network, Storage and Availability sets. Click "Customize" to select existing ones or ASR will automatically create new ones in the Target for you. Also configure the "Replication Policy" you want which will need to be changed in line with your RPO objectives.

When all information is entered click "Create target resources". When they are created click "Enable Replication" and watch the magic happen...After a few minutes you will see in the "Overview" blade that "Site Recovery Jobs" has job's in progress.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/66.png"><img width="1024" height="486" class="alignnone size-large wp-image-365" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/66-1024x486.png" /></a>

It will take some time for your VM(s) to replicate but once they do you will see the VM(s) in the "Replicated Items" icon.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/76.png"><img width="201" height="208" class="alignnone size-full wp-image-375" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/76.png" /></a>

Now the VM(s) are replicated now it's time to define what happens in the event of the very, very, very slim chance of you needing to failover. This is done by creating a "Recovery Plan".

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/84.png"><img width="1024" height="485" class="alignnone size-large wp-image-376" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/84-1024x485.png" /></a>

Within the Site Recovery Portal select "Recovery Plan (Site Recovery)" and add a new Recovery Plan with the source, target and VM(s) selected. Click OK to provision the plan. Once provisioned open the "Recovery Plan" and you should see the following.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/95.png"><img width="1024" height="289" class="alignnone size-large wp-image-385" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/95-1024x289.png" /></a>

Note the "Test Failover" button.

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/105.png"><img width="1024" height="455" class="alignnone size-large wp-image-395" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/105-1024x455.png" /></a>

You can customise the Recovery Plan" and incorporate Azure Automation Runbooks to do pre/post actions. e.g. running PowerShell to change DNS entries, restarting services etc etc. More info <a href="https://docs.microsoft.com/en-us/azure/site-recovery/site-recovery-runbook-automation">here</a>

Finally lets failover...click the dots and select "Failover" (you should do a test failover first to verify all is working correctly, also Note "Failover Direction" so you now know how to fail back).

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/1110.png"><img width="1024" height="306" class="alignnone size-large wp-image-405" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/1110-1024x306.png" /></a>

&nbsp;

Drum Roll...

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/124.png"><img width="1024" height="146" class="alignnone size-large wp-image-415" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/124-1024x146.png" /></a>

And a few minutes later...

<a href="https://msdnshared.blob.core.windows.net/media/2017/07/134.png"><img width="1024" height="145" class="alignnone size-large wp-image-425" alt="" src="https://msdnshared.blob.core.windows.net/media/2017/07/134-1024x145.png" /></a>

Thanks for reading and I hope that was useful.

MD]]></content:encoded>
    </item>
  </channel>
</rss>