<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Joran Markx</title>
	<atom:link href="https://joranmarkx.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://joranmarkx.wordpress.com</link>
	<description>Cloud and more</description>
	<lastBuildDate>Fri, 07 Jul 2017 10:05:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">29821976</site><cloud domain='joranmarkx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://secure.gravatar.com/blavatar/fa64c2641c952f34b888b2da8d8d42681758f86772c9593ee10a55ef39f526c9?s=96&#038;d=https%3A%2F%2Fs0.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Joran Markx</title>
		<link>https://joranmarkx.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://joranmarkx.wordpress.com/osd.xml" title="Joran Markx" />
	<atom:link rel='hub' href='https://joranmarkx.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Microsoft Advanced Threat Analytics IP has changed, ATA Console unavailable</title>
		<link>https://joranmarkx.wordpress.com/2017/07/07/microsoft-advanced-threat-analytics-ip-has-changed-ata-console-unavailable/</link>
					<comments>https://joranmarkx.wordpress.com/2017/07/07/microsoft-advanced-threat-analytics-ip-has-changed-ata-console-unavailable/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Fri, 07 Jul 2017 07:20:43 +0000</pubDate>
				<category><![CDATA[Microsoft Advanced Threat Analytics]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=308</guid>

					<description><![CDATA[Update: From version 1.8 you will be able to access the console at https://localhost, and update the IP using the ATA Console When you move Microsoft Advanced Threat Analytics to a new location, your IP will possibly change. After the IP change the ATA Console is not available anymore. When you take a look at the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span style="color:#ff0000;">Update: From version 1.8 you will be able to access the console at <a href="https://localhost" rel="nofollow">https://localhost</a>, and update the IP using the ATA Console</span></p>
<p>When you move Microsoft Advanced Threat Analytics to a new location, your IP will possibly change. After the IP change the ATA Console is not available anymore. When you take a look at the Windows Services you will notice that the &#8220;Microsoft Advanced Threat Analytics Center&#8221; service is in &#8220;Starting&#8221; state or does not run. To make the ATA Console accessible you will need to update the configuration, which resides in the underlying Mongo DB. Luckily enough there is an easy way to get this done!</p>
<ol>
<li>Login to your ATA Console server</li>
<li>Go to &#8220;C:\Program Files\Microsoft Advanced Threat Analytics\Center\Backup&#8221; and copy the latest version to a known location</li>
<li>Open the backup file with notepad and search and replace the old IP with the new IP</li>
<li>Save the configuration backup file</li>
<li>Open a command prompt</li>
<li>Go to &#8220;C:\Program Files\Microsoft Advanced Threat Analytics\Center\MongoDB\bin&#8221;</li>
<li>And execute &#8216;mongoimport.exe &#8211;db ATA &#8211;collection SystemProfile &#8211;file &#8220;h:\SystemProfile_newip.json&#8221; &#8211;upsert&#8217;, where h:\SystemProfile_newip.json is the location of the updated configuration backup file</li>
<li>Now you will notice that the service will be back up-and-running within 5 minutes</li>
</ol>
<p>But now we are halfway&#8230; all ATA (lightweight) gateways need to be updated too.</p>
<ol>
<li>Go to&#8221;C:\Program Files\Microsoft Advanced Threat Analytics\Gateway&#8221;</li>
<li>Open the GatewayConfiguration.json file</li>
<li>Replace the old IP for the new IP</li>
<li>Restart the &#8220;Microsoft Advanced Threat Analytics Gateway&#8221; service using the Service Manager</li>
</ol>
<p>So what have we learned. Read the manual before moving Microsoft ATA to a new IP. An outlined plan can be found at <a href="https://docs.microsoft.com/en-us/advanced-threat-analytics/modifying-ata-center-configuration" rel="nofollow">https://docs.microsoft.com/en-us/advanced-threat-analytics/modifying-ata-center-configuration</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2017/07/07/microsoft-advanced-threat-analytics-ip-has-changed-ata-console-unavailable/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">308</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>
	</item>
		<item>
		<title>Set Reviewer permissions to All Users on All Calendars</title>
		<link>https://joranmarkx.wordpress.com/2015/10/01/set-reviewer-permissions-to-all-users-on-all-calendars/</link>
					<comments>https://joranmarkx.wordpress.com/2015/10/01/set-reviewer-permissions-to-all-users-on-all-calendars/#respond</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Thu, 01 Oct 2015 09:00:53 +0000</pubDate>
				<category><![CDATA[Exchange]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=301</guid>

					<description><![CDATA[A lot of companies would like to open their calendar for all employees. The script below updates all calendars (multilingual) to give Reviewer permissions to all mailboxes.]]></description>
										<content:encoded><![CDATA[<p>A lot of companies would like to open their calendar for all employees.</p>
<p>The script below updates all calendars (multilingual) to give Reviewer permissions to all mailboxes.</p>
<pre class="brush: plain; title: ; notranslate">
#Set default as reviewer for all calendars. 
foreach($mbx in Get-Mailbox -ResultSize Unlimited | where-object {$_.displayname -notmatch &quot;discovery&quot;}) {
    $calendars = (Get-MailboxFolderStatistics $mbx.Identity -FolderScope Calendar).Identity -replace &quot;\\&quot;, &quot;:\&quot;
    foreach($calendar in $calendars) {
        $allset = Get-MailboxFolderPermission $calendar -User Default | Where { $_.AccessRights -eq &quot;Reviewer&quot; }
        if ($allset -eq $null) {
            Set-MailboxFolderPermission -Identity $calendar -User Default -AccessRights Reviewer
        }
    }
}
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2015/10/01/set-reviewer-permissions-to-all-users-on-all-calendars/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">301</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>
	</item>
		<item>
		<title>Update on Microsoft Azure Data Center Locations</title>
		<link>https://joranmarkx.wordpress.com/2014/09/15/update-on-microsoft-azure-data-center-locations/</link>
					<comments>https://joranmarkx.wordpress.com/2014/09/15/update-on-microsoft-azure-data-center-locations/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Mon, 15 Sep 2014 19:53:02 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=289</guid>

					<description><![CDATA[Updated 12-oct-2015 Microsoft has now a quality website about the current datacenter regions https://azure.microsoft.com/en-us/regions In 2012 I’ve posted a blog post with a map of the Azure Datacenter Locations at that moment. A lot of changes has taken place since that time! In this post an updated map, thanks to William Zack (Microsoft). With new [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><span style="color:#ff0000;"><strong>Updated 12-oct-2015</strong></span><br />
<span style="color:#ff0000;">Microsoft has now a quality website about the current datacenter regions </span><a href="https://azure.microsoft.com/en-us/regions"><span style="color:#ff0000;">https://azure.microsoft.com/en-us/regions</span><br />
</a></p>
<p>In 2012 I’ve posted a blog post with a map of the <a href="https://joranmarkx.wordpress.com/2012/01/16/microsoft-azure-data-center-locations-worl-wide/"> Azure Datacenter Locations</a> at that moment. A lot of changes has taken place since that time!</p>
<p>In this post an updated map, thanks to William Zack (Microsoft). With new datacenters in Brazil and Japan, and planned datacenters in Australia.</p>
<p><a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png"><img data-attachment-id="292" data-permalink="https://joranmarkx.wordpress.com/2014/09/15/update-on-microsoft-azure-data-center-locations/2014-09-15_21h45_08/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png" data-orig-size="1865,918" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="2014-09-15_21h45_08" data-image-description="" data-image-caption="" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=630" class="size-large wp-image-292 alignleft" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=630&#038;h=310" alt="2014-09-15_21h45_08" width="630" height="310" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=630 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=1260 1260w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=150 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=300 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=768 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=1024 1024w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/09/15/update-on-microsoft-azure-data-center-locations/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">289</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/09/2014-09-15_21h45_08.png?w=630" medium="image">
			<media:title type="html">2014-09-15_21h45_08</media:title>
		</media:content>
	</item>
		<item>
		<title>Azure Active Directory Sync Tool reaches General Availability</title>
		<link>https://joranmarkx.wordpress.com/2014/09/15/azure-active-directory-sync-tool-reaches-general-availability/</link>
					<comments>https://joranmarkx.wordpress.com/2014/09/15/azure-active-directory-sync-tool-reaches-general-availability/#respond</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Mon, 15 Sep 2014 14:45:13 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/2014/09/15/azure-active-directory-sync-tool-reaches-general-availability/</guid>

					<description><![CDATA[If you are planning for &#8211; Multi-forest implementation of Office 365 &#8211; Multi-forest / multi exchange organization hybrid &#8211; Resource and accounts forest You can now start directly with this new “version” of DirSync. There is only one item which can be found in DirSync and AAD Sync has not, it is password hash sync. All [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>If you are planning for</p>
<p>&#8211; Multi-forest implementation of Office 365<br />
&#8211; Multi-forest / multi exchange organization hybrid<br />
&#8211; Resource and accounts forest</p>
<p>You can now start directly with this new “version” of DirSync.</p>
<p>There is only one item which can be found in DirSync and AAD Sync has not, it is <em>password hash sync</em>. All other, and a lot more features are there!</p>
<p>Download Azure Active Directory Sync Tool here: <a href="http://go.microsoft.com/fwlink/?LinkID=511690">http://go.microsoft.com/fwlink/?LinkID=511690</a><br />
Documentation can be found here: <a href="http://go.microsoft.com/fwlink/?LinkID=393942">http://go.microsoft.com/fwlink/?LinkID=393942</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/09/15/azure-active-directory-sync-tool-reaches-general-availability/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">287</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>
	</item>
		<item>
		<title>Preauthenticate Office 365 (SharePoint and Exchange) for Internal Users</title>
		<link>https://joranmarkx.wordpress.com/2014/05/15/preauthenticate-office-365-sharepoint-and-exchange-for-internal-users/</link>
					<comments>https://joranmarkx.wordpress.com/2014/05/15/preauthenticate-office-365-sharepoint-and-exchange-for-internal-users/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Thu, 15 May 2014 09:35:04 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Office]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/2014/05/15/preauthenticate-office-365-sharepoint-and-exchange-for-internal-users/</guid>

					<description><![CDATA[Using ADFS for Single Sign On does not leverage a full Single Sign On Experience for the users. People will often see the Office 365 and need to fill in their email/upn, before Single Sign On will happen. Thanks to a very nice OneDrive CodePlex project (http://office365drivemap.codeplex.com/), which you should visit too, I was able [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Using ADFS for Single Sign On does not leverage a full Single Sign On Experience for the users. People will often see the Office 365 and need to fill in their email/upn, before Single Sign On will happen.</p>
<p>Thanks to a very nice OneDrive CodePlex project (<a href="http://office365drivemap.codeplex.com/">http://office365drivemap.codeplex.com/</a>), which you should visit too, I was able to write the following PowerShell script which you can use to preauthenticate Office 365 when you use ADFS.</p>
<p>Run the following powershell script after login (see <a href="http://msdn.microsoft.com/en-us/library/jj130675.aspx">http://msdn.microsoft.com/en-us/library/jj130675.aspx</a> to configure the script to run after login)</p>
<pre class="brush: plain; title: ; notranslate">

$domain = &quot;contoso.com&quot;; # your Federated domain
$ie = new-object -com InternetExplorer.Application
$ie.navigate(&quot;https://login.microsoftonline.com/login.srf&quot;)
$ie.visible = $true #Uncomment this for debugging

# Wait for the page to finish loading
do {sleep 1} until (-not ($ie.Busy))
# We have to click the remember me checkbox before logging in, we also have to have IE be automated for this to work
try {
  $ie.document.GetElementById(&quot;_link&quot;).click()
  do {sleep 1} until (-not ($ie.Busy))
} catch {$null}

try {
  $ie.document.GetElementById(&quot;cred_userid_inputtext&quot;).value = &quot;dummy@&quot;+$domain
  $ie.document.GetElementById(&quot;cred_keep_me_signed_in_checkbox&quot;).click()
  do {sleep 1} until (-not ($ie.Busy))
  $ie.document.GetElementById(&quot;cred_sign_in_button&quot;).click()
  do {sleep 1} until (-not ($ie.Busy))
}catch {$null}

sleep -seconds 15 # give plenty of time to redirect
$ie.Quit()
</pre>
<p>For exchange it is quite easy to create a auto-login just with some DNS modification. You just need to create a CNAME to outlook.com.</p>
<p>e.g. webmail.contoso.com =&gt; outlook.com</p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/05/15/preauthenticate-office-365-sharepoint-and-exchange-for-internal-users/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">281</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>
	</item>
		<item>
		<title>Release Notes Office 365 SharePoint Online (unofficial)</title>
		<link>https://joranmarkx.wordpress.com/2014/04/07/release-notes-office-365-sharepoint-online-unofficial/</link>
					<comments>https://joranmarkx.wordpress.com/2014/04/07/release-notes-office-365-sharepoint-online-unofficial/#respond</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Mon, 07 Apr 2014 20:27:39 +0000</pubDate>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[SharePoint Online]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=231</guid>

					<description><![CDATA[In this blogpost I am trying to gather information about updates performed in SharePoint Online and publish them here. Several feature updates are missing, please feel free to send in any comments! Version 16.0.0.2621 (march 2014) -SkyDrive becomes OneDrive -OneDrive storage up to -Office Web Apps gets updated with enhanced features -Office Web Apps has [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>In this blogpost I am trying to gather information about updates performed in SharePoint Online and publish them here. Several feature updates are missing, please feel free to send in any comments!</p>
<p><strong>Version 16.0.0.2621 (march 2014)</strong><br />
-SkyDrive becomes OneDrive<br />
-OneDrive storage up to<br />
-Office Web Apps gets updated with enhanced features<br />
-Office Web Apps has new names Word App becomes Word Online etc|<br />
-Content Search Web Part availlable<br />
-Several DIV ID&#8217;s renamed</p>
<p><strong>Version 16.0.x.x (september 2013)<br />
</strong>&#8211; Maximum upload size to 2Gb<strong><br />
</strong>&#8211; Maximum number of sitecollections from 2.000 to 10.000</p>
<p><strong>Version 16.0.1922.1200 (august 2013)</strong><br />
&#8211; SkyDrive Pro; personal space to 25Gb<br />
&#8211; SkyDrive Pro; Shared with Me features, to show all documents shared with you (on SkyDrive)</p>
<p><strong>Version 15.0.0.4420.1017 (february 2013)</strong><br />
&#8211; Initial SharePoint Online 2013 release</p>
<p><strong>Version 14</strong><br />
&#8211; Initial SharePoint Online 2010 release</p>
<p>The information published on this blog is not verified by Microsoft and can contain incorrect information.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/04/07/release-notes-office-365-sharepoint-online-unofficial/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">231</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>
	</item>
		<item>
		<title>Host Multiple Provider-Hosted SharePoint Apps Within a Single Assosiated Web Application</title>
		<link>https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/</link>
					<comments>https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Mon, 07 Apr 2014 20:18:11 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[office 365]]></category>
		<category><![CDATA[Sharepoint 2013]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=270</guid>

					<description><![CDATA[While developing Provider Hosted Apps for our clients I noticed a lot overhead in our projects. Packaging, deploying, same code distributed over all provider hosted apps. In previous version of SharePoint we were getting used to provide a structured solution (WSP), providing a great set of features to our customers. The code was hosted within [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>While developing Provider Hosted Apps for our clients I noticed a lot overhead in our projects. Packaging, deploying, same code distributed over all provider hosted apps. In previous version of SharePoint we were getting used to provide a structured solution (WSP), providing a great set of features to our customers. The code was hosted within a single solution and solution package for easy release management. Although there are reasons why you should not do this, it is still a tradeoff between an easy to deploy solution and a structured way to deploy different features within a different release cycle. I don’t want to start this discussion here, but let’s take a look if it is even possible. <strong>Can SharePoint Provider Hosted Apps run within a single Web Application Project?</strong> In short, yes, it can work, although there are several reasons why you don’t want to get in to this! What we want to achieve is a solution structure were we have multiple App Manifest bound to a single App Web. In the example we have HighTrustSampleApp1 and HighTrustSampleApp2 added to the project and a Single App Web. <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png"><img data-attachment-id="271" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image001-13/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png" data-orig-size="317,443" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image001" data-image-description="" data-image-caption="&lt;p&gt;image001&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png?w=215" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png?w=317" class="alignnone size-full wp-image-271" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png 317w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png?w=107&amp;h=150 107w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png?w=215&amp;h=300 215w" sizes="(max-width: 317px) 100vw, 317px" /></a> How to accomplish this Ø Create a new solution Ø Add a SharePoint 2013 App (provider hosted); two projects will be added to you solution Ø Add a second SharePoint 2013 App (provider hosted); again, two projects will be added Ø Remove one of the webapplication Ø Select the Second App (App project) and go to properties <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png"><img data-attachment-id="272" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image002-11/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png" data-orig-size="398,351" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image002" data-image-description="" data-image-caption="&lt;p&gt;image002&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png?w=398" class="alignnone size-full wp-image-272" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png 398w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png?w=150&amp;h=132 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png?w=300&amp;h=265 300w" sizes="(max-width: 398px) 100vw, 398px" /></a> Ø Set the Web Project the same as the Web App created with HighTrustSampleApp1 Ø Add a Second ASP.Net webpage to the project for your second app (App2.aspx) Ø Copy &amp; Paste the codebehind from Default.aspx in the App2.aspx.cs Ø Open the App manifest of HighTrustSampleApp2 <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg"><img loading="lazy" data-attachment-id="276" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image005-3/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg" data-orig-size="578,274" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image005" data-image-description="" data-image-caption="&lt;p&gt;image005&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg?w=578" class="alignnone size-full wp-image-276" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg 578w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg?w=150&amp;h=71 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg?w=300&amp;h=142 300w" sizes="(max-width: 578px) 100vw, 578px" /></a> Ø Set the start page to App2.aspx Ø Ready for now! When we build and deploy this solution it will half work J. When pressing F5, to browser will pop up. If you press Trust on the second App in your project, both app will work! But effectively it is reusing the access token from the other app. <strong>Things to do in the SharePointContext &amp; TokenHelper</strong> To authorize your App access to SharePoint your AppWeb has a library with some bunch of code to handle this OAuth handshake. Before you start believing in magic please make sure you know how OAuth works and how SharePoint authenticates your app using high or low trust techniques. The library has been delivered by default to host a single app, but in our case we are interested in hosting multiple apps in a single web app project. <strong>ClientId</strong> One of the things we need to deal with is the ClientId, which is (normally) different for every single App. The IssuerId can be shared between apps, so we can leave that one as is. The clientId is grabbed from the web.config where the clientid is registered. The ClientId should be different for the different apps, so you would need to develop a way to differentiate the app calls <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png"><img loading="lazy" data-attachment-id="273" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image006-4/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png" data-orig-size="908,187" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image006" data-image-description="" data-image-caption="&lt;p&gt;image006&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=630" class="alignnone size-full wp-image-273" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=630&#038;h=129" alt="" width="630" height="129" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=630&amp;h=130 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=150&amp;h=31 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=300&amp;h=62 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png?w=768&amp;h=158 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png 908w" sizes="(max-width: 630px) 100vw, 630px" /></a> <strong>SharePointContext</strong> The Tokens are cached into the Http Context, so here you would need multiple session variables, one for every app <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png"><img loading="lazy" data-attachment-id="274" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image0071/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png" data-orig-size="732,158" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image0071" data-image-description="" data-image-caption="&lt;p&gt;image0071&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=630" class="alignnone size-full wp-image-274" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=630&#038;h=135" alt="" width="630" height="135" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=630&amp;h=136 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=150&amp;h=32 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png?w=300&amp;h=65 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png 732w" sizes="(max-width: 630px) 100vw, 630px" /></a> <strong>Visual Studio</strong> So it looks pretty straightforward to update the code the get different different apps working within a single webapplication. But you will get annoyed by Visual Studio, because it has no support for developing multiple apps in a single Webapplication. When you are developing locally the ClientID is continuously updated to a new one on every deploy. Visual Studio registers your app for you in SharePoint and you’re good to go. Unfortunately this will not work. <strong>Conclusion</strong> For now, I have stopped my journey in exploring the ability to host multiple provider-hosted SharePoint Apps in a single web application project. Technically you can make it work, but there will be some issues on the way. We decided to continue to deploy our apps as a Virtual Application/Directory in IIS in a single Web Application for provider hosted Apps. Works great, with great support within Visual Studio. Define your apps in a scope which need to be deployed together, to minimize the App overhead. <a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png"><img loading="lazy" data-attachment-id="275" data-permalink="https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/image0081/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png" data-orig-size="729,351" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image0081" data-image-description="" data-image-caption="&lt;p&gt;image0081&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=630" class="alignnone size-full wp-image-275" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=630&#038;h=303" alt="" width="630" height="303" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=630&amp;h=303 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=150&amp;h=72 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png?w=300&amp;h=144 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png 729w" sizes="(max-width: 630px) 100vw, 630px" /></a> <strong>Get started with Provider Hosted Apps</strong> How to: Create high-trust apps for SharePoint 2013 (advanced topic) <a href="http://msdn.microsoft.com/en-us/library/office/fp179901(v=office.15).aspx">http://msdn.microsoft.com/en-us/library/office/fp179901(v=office.15).aspx</a> Scripts to configure you development and production environment <a href="http://msdn.microsoft.com/en-us/library/office/dn579380(v=office.15).aspx">http://msdn.microsoft.com/en-us/library/office/dn579380(v=office.15).aspx</a> Packaging and publishing your Provider Hosted App <a href="http://msdn.microsoft.com/en-us/library/office/jj860570(v=office.15).aspx">http://msdn.microsoft.com/en-us/library/office/jj860570(v=office.15).aspx</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/04/07/host-multiple-provider-hosted-sharepoint-apps-within-a-single-assosiated-web-application/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">270</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image001.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image005.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0071.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image0081.png" medium="image" />
	</item>
		<item>
		<title>How To Integrate Microsoft Azure Active Directory to Authenticate SharePoint 2013 for External Users</title>
		<link>https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/</link>
					<comments>https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Wed, 02 Apr 2014 20:14:59 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=253</guid>

					<description><![CDATA[A few days ago I was designing a new Extranet solution for one of our clients. The customer had the following requirements for the extranet with regard to authentication of external users. &#8211; Manage external users and groups is an easy to use interface &#8211; Users can manage their passwords themselves &#8211; 2-factor authentication &#8211; [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A few days ago I was designing a new Extranet solution for one of our clients.</p>
<p>The customer had the following requirements for the extranet with regard to authentication of external users.</p>
<p>&#8211; Manage external users and groups is an easy to use interface</p>
<p>&#8211; Users can manage their passwords themselves</p>
<p>&#8211; 2-factor authentication</p>
<p>&#8211; No access to other resources</p>
<p>Our first idea was to implement external access using ADFS with the federated parties, although it will work great for other extranet scenario’s, it did not met all of our requirements.</p>
<p>The second idea was to use Azure with WAAD (Windows Azure Active Directory) and ACS (Access Control Services) to met our goals. The WAAD would provide identities for our environment, supports multifactor authentication and users can reset their passwords themselves!</p>
<p><strong>Get Started</strong></p>
<p>So lets gets started with our Proof-of-Concept! The first hit on google regarding this scenario is a great blog post from Steve Pescka (<a href="http://blogs.technet.com/b/speschka/archive/2013/05/10/integrating-sharepoint-2013-with-azure-active-directory-part-1-configuration.aspx">http://blogs.technet.com/b/speschka/archive/2013/05/10/integrating-sharepoint-2013-with-azure-active-directory-part-1-configuration.aspx</a>). He wrote several blog items about this topics which was really supporting the configuration.</p>
<p><strong>Prerequisities</strong></p>
<p>&#8211; Azure account (<a href="https://account.windowsazure.com/signup?offer=ms-azr-0044p">https://account.windowsazure.com/signup?offer=ms-azr-0044p</a> to sign up)</p>
<p>&#8211; SharePoint 2013 Environment</p>
<p><strong>Create Azure Active Directory</strong></p>
<p>&#8211; Login to <a href="https://manage.windowsazure.com"> https://manage.windowsazure.com</a></p>
<p>&#8211; Go to Active Directory</p>
<p>&#8211; Press Add</p>
<p>&#8211; If you want to use an existing Azure Active Directory (like the one you use for Office 365), choose for Existing Directory. You will be asked to re-signin with an global administrator of the Office 365 tenant, after this process the Azure Active Directory is connected to you Azure account.</p>
<p>&#8211; For a new directory, fill in your directory details, if you want to use a custom domain you can add this afterwards.<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg"><img loading="lazy" data-attachment-id="261" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image002-10/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg" data-orig-size="499,477" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image002" data-image-description="" data-image-caption="&lt;p&gt;image002&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg?w=499" class="alignnone size-full wp-image-261" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg 499w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg?w=150&amp;h=143 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg?w=300&amp;h=287 300w" sizes="(max-width: 499px) 100vw, 499px" /></a></p>
<p>&#8211; The Directory is ready to use. To use the features, password reset and groups you also need to Enable Active Directory Premium<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg"><img loading="lazy" data-attachment-id="262" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image006-3/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg" data-orig-size="529,394" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image006" data-image-description="" data-image-caption="&lt;p&gt;image006&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg?w=529" class="alignnone size-full wp-image-262" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg 529w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg?w=150&amp;h=112 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg?w=300&amp;h=223 300w" sizes="(max-width: 529px) 100vw, 529px" /></a></p>
<p>&#8211; Click on Add a user</p>
<p>&#8211; Fill in the wizard and choose the role “Global Administrator”<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png"><img loading="lazy" data-attachment-id="254" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image007-2/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png" data-orig-size="273,78" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image007" data-image-description="" data-image-caption="&lt;p&gt;image007&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png?w=273" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png?w=273" class="alignnone size-full wp-image-254" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png 273w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png?w=150&amp;h=43 150w" sizes="(max-width: 273px) 100vw, 273px" /></a></p>
<p>&#8211; Download the Windows Azure Active Directory Shell<br />
<a href="http://technet.microsoft.com/en-us/library/jj151815.aspx#bkmk_installmodule">http://technet.microsoft.com/en-us/library/jj151815.aspx#bkmk_installmodule</a></p>
<p><strong>Create ACS Service in Azure</strong></p>
<p><em>If you have already setup a ACS namespace you can skip this step.</em></p>
<p>&#8211; Go to <a href="https://manage.windowsazure.com"> https://manage.windowsazure.com</a></p>
<p>&#8211; Press New, and add a new Access Control namespace<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png"><img loading="lazy" data-attachment-id="255" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image008-2/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png" data-orig-size="863,364" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image008" data-image-description="" data-image-caption="&lt;p&gt;image008&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=630" class="alignnone size-full wp-image-255" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=630&#038;h=265" alt="" width="630" height="265" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=630&amp;h=266 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=150&amp;h=63 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=300&amp;h=127 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png?w=768&amp;h=324 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png 863w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Fill in a name and region and proceed</p>
<p>&#8211; Your ACS namespace will now be created</p>
<p><strong>Configure Identity Provider in ACS</strong></p>
<p>Configure the WAAD as an identity provider in ACS</p>
<p>&#8211; Go to <a href="https://manage.windowsazure.com"> https://manage.windowsazure.com</a></p>
<p>&#8211; Go to Active Directory</p>
<p>&#8211; Go to Access Control Namespaces and select your newly created namespace</p>
<p>&#8211; Go to Manage</p>
<p>&#8211; Go to Trust relationshops &gt; Identity Providers</p>
<p>&#8211; Click on Add Identity Provider</p>
<p>&#8211; Choose a WS Federation provider</p>
<p>&#8211; Fill in a Descriptive Name and use <a href="https://accounts.accesscontrol.windows.net/%3Cwaad-name%3E/FederationMetadata/2007-06/FederationMetadata.xml"> https://accounts.accesscontrol.windows.net/&lt;waad-name&gt;/FederationMetadata/2007-06/FederationMetadata.xml</a> as WS metadata URL. Provide your own WAAD or use a more general approach to allow multiple WAAD’s to sign in to your SharePoint 2013 environment using the federation url <a href="https://login.windows.net/common/FederationMetadata/2007-06/FederationMetadata.xml"> https://login.windows.net/common/FederationMetadata/2007-06/FederationMetadata.xml</a><br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg"><img loading="lazy" data-attachment-id="263" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image011/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg" data-orig-size="781,581" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image011" data-image-description="" data-image-caption="&lt;p&gt;image011&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=630" class="alignnone size-full wp-image-263" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=630&#038;h=468" alt="" width="630" height="468" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=630&amp;h=469 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=150&amp;h=112 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=300&amp;h=223 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg?w=768&amp;h=571 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg 781w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p><strong>Configure Relying Party Trust in ACS</strong></p>
<p>Now we need to configure the on-premises SharePoint 2013 environment as the relying party</p>
<p>&#8211; Go to relying party applications</p>
<p>&#8211; Click on Add, choose to enter settings manually.</p>
<p>&#8211; Fill in a realm, in this example urn:sharepoint:acs, but it can be any realm (and take note of this, we need this later on)</p>
<p>&#8211; Select Token form SAML 1.1. (unfortunately SharePoint 2013 (and 2010) do not support SAML 2.0)</p>
<p><a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg"><img loading="lazy" data-attachment-id="264" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image015-2/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg" data-orig-size="776,643" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image015" data-image-description="" data-image-caption="&lt;p&gt;image015&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=630" class="alignnone size-full wp-image-264" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=630&#038;h=522" alt="" width="630" height="522" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=630&amp;h=522 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=150&amp;h=124 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=300&amp;h=249 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg?w=768&amp;h=636 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg 776w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Select the identity provider selected earlier</p>
<p>&#8211; Press Save</p>
<p><strong>Configure Group Rules</strong></p>
<p>Now we need to generate and configure the claim translation from the WAAD claim to an workable claim for SharePoint 2013.</p>
<p>&#8211; Go to Group Rules</p>
<p>&#8211; Click on Add, fill in a Group name “AAD Rules” and click Save</p>
<p>&#8211; Click on Generate</p>
<p>&#8211; Select the IdP created earlier and click Generate<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png"><img loading="lazy" data-attachment-id="256" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image017-2/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png" data-orig-size="661,228" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image017" data-image-description="" data-image-caption="&lt;p&gt;image017&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=630" class="alignnone size-full wp-image-256" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=630&#038;h=217" alt="" width="630" height="217" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=630&amp;h=217 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=150&amp;h=52 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png?w=300&amp;h=103 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png 661w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Select the Output claim UPN</p>
<p>&#8211; Set the input claim type to <a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"> http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name</a> instead of upn, because this input claim is empty. The name claim will contain the upn.</p>
<p>&#8211; Set the output claim type to <a href="http://schemas.microsoft.com/ws/2008/05/identity/claims/upn"> http://schemas.microsoft.com/ws/2008/05/identity/claims/upn</a> , which will be accepted by the STS of SharePoint.<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg"><img loading="lazy" data-attachment-id="265" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image016-2/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg" data-orig-size="776,578" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image016" data-image-description="" data-image-caption="&lt;p&gt;image016&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=630" class="alignnone size-full wp-image-265" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=630&#038;h=469" alt="" width="630" height="469" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=630&amp;h=469 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=150&amp;h=112 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=300&amp;h=223 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg?w=768&amp;h=572 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg 776w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Click on Save</p>
<p><strong>Enabled Application for WAAD to authenticate</strong></p>
<p>&#8211; Execute the following Powershell</p>
<p>&lt;code&gt;</p>
<p>$replyUrl = New-MsolServicePrincipalAddresses –Address &#8220;<a href="https:/v2/wsfederation&quot;">https://&lt;youracs&gt;.accesscontrol.windows.net/v2/wsfederation&#8221;</a></p>
<p>New-MsolServicePrincipal –ServicePrincipalNames @(&#8220;<a href="https:/&quot;">https://&lt;youracs&gt;.accesscontrol.windows.net/&#8221;</a>) -DisplayName &#8220;Joran Markx Tenant&#8221; -Addresses $replyUrl</p>
<p>&lt;/code&gt;</p>
<p><strong>Configure SharePoint to use ACS</strong></p>
<p>&#8211; Go to Development -&gt; Application integration<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png"><img loading="lazy" data-attachment-id="257" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image019/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png" data-orig-size="925,205" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image019" data-image-description="" data-image-caption="&lt;p&gt;image019&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=630" class="alignnone size-full wp-image-257" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=630&#038;h=139" alt="" width="630" height="139" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=630&amp;h=140 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=150&amp;h=33 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=300&amp;h=66 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png?w=768&amp;h=170 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png 925w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Copy and paste the WS-Federation Metadata into the internet browser</p>
<p>&#8211; Copy and paste the base64 code in EntityDescriptor&gt;RoleDescriptor&gt;KeyDescriptor&gt;..&gt;X509Certificate to a notepad and save as .cer file (Certificate)<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png"><img loading="lazy" data-attachment-id="258" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image020/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png" data-orig-size="935,253" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image020" data-image-description="" data-image-caption="&lt;p&gt;image020&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=630" class="alignnone size-full wp-image-258" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=630&#038;h=170" alt="" width="630" height="170" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=630&amp;h=170 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=150&amp;h=41 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=300&amp;h=81 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png?w=768&amp;h=208 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png 935w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&#8211; Open the certificate to check if it is working great! If it does not, please check if you copied the whole X509Certificate and the file is saved with ANSII.<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg"><img loading="lazy" data-attachment-id="266" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image023/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg" data-orig-size="353,439" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image023" data-image-description="" data-image-caption="&lt;p&gt;image023&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg?w=241" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg?w=353" class="alignnone size-full wp-image-266" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg 353w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg?w=121&amp;h=150 121w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg?w=241&amp;h=300 241w" sizes="(max-width: 353px) 100vw, 353px" /></a></p>
<p>&#8211; Copy the .cer to the SharePoint 2013 Server</p>
<p><strong>Create and configure STS in SharePoint</strong></p>
<p>Now we need to create a new Trusted Root Authority and configure the Trusted Identity Token Issues.</p>
<p>&#8211; Open the SharePoint Management Shell (as Administrator)</p>
<p>&lt;code&gt;<br />
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(&#8220;c:aadcert.cer&#8221;)</p>
<p>New-SPTrustedRootAuthority -Name &#8220;ACS Token Signing Certificate&#8221; -Certificate $cert</p>
<p>$map = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.microsoft.com/ws/2008/05/identity/claims/upn&quot;">http://schemas.microsoft.com/ws/2008/05/identity/claims/upn&#8221;</a> -IncomingClaimTypeDisplayName &#8220;UPN&#8221; -SameAsIncoming</p>
<p>$map2 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.microsoft.com/ws/2008/06/identity/claims/role&quot;">http://schemas.microsoft.com/ws/2008/06/identity/claims/role&#8221;</a> -IncomingClaimTypeDisplayName &#8220;Role&#8221; -SameAsIncoming</p>
<p>$map3 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress&quot;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress&#8221;</a> -IncomingClaimTypeDisplayName &#8220;EmailAddress&#8221; -SameAsIncoming</p>
<p>$map4 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname&quot;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname&#8221;</a> -IncomingClaimTypeDisplayName &#8220;GivenName&#8221; -SameAsIncoming</p>
<p>$map5 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname&quot;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname&#8221;</a> -IncomingClaimTypeDisplayName &#8220;SurName&#8221; -SameAsIncoming</p>
<p>$map6 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/jobtitle&quot;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/jobtitle&#8221;</a> -IncomingClaimTypeDisplayName &#8220;JobTitle&#8221; -SameAsIncoming</p>
<p>$map7 = New-SPClaimTypeMapping -IncomingClaimType &#8220;<a href="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/office&quot;">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/office&#8221;</a> -IncomingClaimTypeDisplayName &#8220;Office&#8221; -SameAsIncoming</p>
<p>$realm = &#8220;urn:sharepoint:acs&#8221;</p>
<p>$ap = New-SPTrustedIdentityTokenIssuer -Name &#8220;AAD&#8221; -Description &#8220;ACS&#8221; -realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map,$map2,$map3,$map4,$map5,$map6,$map7 -SignInUrl &#8220;<a href="https://litware.accesscontrol.windows.net/v2/wsfederation&quot;">https://litware.accesscontrol.windows.net:443/v2/wsfederation&#8221;</a> -IdentifierClaim <a href="http://schemas.microsoft.com/ws/2008/05/identity/claims/upn">http://schemas.microsoft.com/ws/2008/05/identity/claims/upn</a><br />
&lt;/code&gt;</p>
<p>&#8211; Create or configure a webapplication in SharePoint with Claims Authentication and select the new TrustedIdentityToken Issuer<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg"><img loading="lazy" data-attachment-id="267" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image025/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg" data-orig-size="438,332" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image025" data-image-description="" data-image-caption="&lt;p&gt;image025&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg?w=438" class="alignnone size-full wp-image-267" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg 438w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg?w=150&amp;h=114 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg?w=300&amp;h=227 300w" sizes="(max-width: 438px) 100vw, 438px" /></a></p>
<p>&#8211; Authorize add at least one user from the WAAD to the a site in the webapplication</p>
<p>&#8211; You’re ready to go!</p>
<p><strong>Test the solution</strong></p>
<p>&#8211; Fire up a browser and go to your SharePoint site</p>
<p>&#8211; Select AAD, you will not get this screen if you disable Windows Authentication (and have only one authentication provider)<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png"><img loading="lazy" data-attachment-id="259" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image027/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png" data-orig-size="442,196" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image027" data-image-description="" data-image-caption="&lt;p&gt;image027&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png?w=442" class="alignnone size-full wp-image-259" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png 442w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png?w=150&amp;h=67 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png?w=300&amp;h=133 300w" sizes="(max-width: 442px) 100vw, 442px" /></a></p>
<p>&#8211; Then select one of the IdP in ACS, you will not see this screen if you only have one IdP configured.<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png"><img loading="lazy" data-attachment-id="260" data-permalink="https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/image028/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png" data-orig-size="353,417" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="image028" data-image-description="" data-image-caption="&lt;p&gt;image028&lt;/p&gt;
" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png?w=254" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png?w=353" class="alignnone size-full wp-image-260" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png?w=630" alt=""   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png 353w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png?w=127&amp;h=150 127w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png?w=254&amp;h=300 254w" sizes="(max-width: 353px) 100vw, 353px" /></a></p>
<p>&#8211; You will now get the Azure Active Directory Login screen</p>
<p>&#8211; After entering your username and password, you will be redirected to SharePoint 2013 and will be logged in!</p>
<p><strong>Known issues</strong></p>
<p>&#8211; People picker will not find people in the directory<br />
<a href="http://blogs.technet.com/b/speschka/archive/2013/05/12/integrating-sharepoint-2013-with-azure-active-directory-part-2-the-custom-claims-provider.aspx">http://blogs.technet.com/b/speschka/archive/2013/05/12/integrating-sharepoint-2013-with-azure-active-directory-part-2-the-custom-claims-provider.aspx</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/04/02/how-to-integrate-microsoft-azure-active-directory-to-authenticate-sharepoint-2013-for-external-users/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">253</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image002.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image006.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image007.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image008.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image011.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image015.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image017.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image016.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image019.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image020.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image023.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image025.jpg" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image027.png" medium="image" />

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/04/image028.png" medium="image" />
	</item>
		<item>
		<title>Download SharePoint 2013 SP1 now! It has been released!</title>
		<link>https://joranmarkx.wordpress.com/2014/02/25/sharepoint-2013-sp1-has-been-released/</link>
					<comments>https://joranmarkx.wordpress.com/2014/02/25/sharepoint-2013-sp1-has-been-released/#respond</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Tue, 25 Feb 2014 21:40:05 +0000</pubDate>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Sharepoint 2013]]></category>
		<category><![CDATA[sp1]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=242</guid>

					<description><![CDATA[With the realase of Service pack 1 for SharePoint and all other Office products some new features are availlable! New in SP1 Compatibility fixes for Windows 8.1 and Internet Explorer 11. Better support for modern hardware, such as high DPI devices and the precision touchpad. New apps for Office capabilities and APIs for developers. Power [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>With the realase of Service pack 1 for SharePoint and all other Office products some new features are availlable!</p>
<p><strong>New in SP1</strong></p>
<ul>
<li>Compatibility fixes for Windows 8.1 and Internet Explorer 11.</li>
<li>Better support for modern hardware, such as high DPI devices and the <a href="http://windows.microsoft.com/en-us/windows-8/touchpad">precision touchpad</a>.</li>
<li>New <em>a</em><i>pps for Office</i> capabilities and APIs for developers.</li>
<li>Power Map for Excel, a 3D visualization tool for mapping, exploring, and interacting with geographical and temporal data in Excel, is now available to Office 365 ProPlus subscription customers. You can learn more about Power Map general availability on the <a href="http://blogs.msdn.com/b/powerbi/archive/2014/02/25/power-map-for-excel-now-generally-available-automatically-updated-for-office-365.aspx">Power BI Blog</a>.</li>
<li>Improvements to the <a href="http://support.microsoft.com/gp/office-2013-click-to-run">Click-to-Run</a> virtualization technology that installs and updates Office 365 desktop applications.</li>
<li>SkyDrive Pro is now <a href="http://blog.onedrive.com/onedrive-for-everything-your-life/">OneDrive for Business</a>. You can now integrate OneDrive Office 365 with your Onpremise SharePoint 2013.<br />
<a href="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png"><img loading="lazy" data-attachment-id="249" data-permalink="https://joranmarkx.wordpress.com/2014/02/25/sharepoint-2013-sp1-has-been-released/2014-02-26_07h25_42/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png" data-orig-size="281,80" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="2014-02-26_07h25_42" data-image-description="" data-image-caption="" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png?w=281" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png?w=281" class="size-full wp-image-249 alignnone" alt="2014-02-26_07h25_42" src="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png?w=630"   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png 281w, https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png?w=150&amp;h=43 150w" sizes="(max-width: 281px) 100vw, 281px" /></a></li>
<li> Replace Newsfeed with Yammer, to use the best social collaboration tools for your organisation</li>
</ul>
<p><strong>Fixed in SP1</strong></p>
<ul>
<li>Metadata is lost when documents that use a custom content type with a &#8220;Description&#8221; field are opened for editing.</li>
<li>When an item is deleted, restored from recycle bin, and then deleted again, there is a primary key constraint error.</li>
<li>An error occurs when files are moved between document libraries and the web time zone is behind that of the server.</li>
<li>Metadata filtering at list level always lists all metadata terms.</li>
<li>The hyperlink popup window drops the selected word to be linked when there is a delay of more than one second in opening the window.</li>
<li>Multiple-column, SummaryLinkWebParts with a group heading style of &#8220;Separator&#8221; are rendered incorrectly.</li>
<li>A hash tag that contains a full width space does not get created successfully.</li>
<li>Search schema compression is now enabled by default to allow larger search schemas.</li>
<li>Highlighting for FQL queries is now enabled for FQL as well as KQL.</li>
<li>Opening a custom SharePoint list in datasheet view and applying multiple custom filters, where each filter has more than one condition, can result in an incomplete set of list items.</li>
<li>When the &#8220;Export to Excel&#8221; button is clicked in a SharePoint document library that has the Content Type field displayed, the Content Type field does not appear in the Excel workbook.</li>
<li>An error occurs after changing the &#8220;Manager&#8221; property in EditProfile.aspx page when the My Sites WebApp is not in the same farm as the UPA.</li>
<li>SharePoint REST API does not return a well-defined error response for a duplicate key exception.</li>
<li>Developers are unable to specify a Content Type ID when creating Content Types in the client object model.</li>
<li>On list views in SharePoint sites, the Connect to Outlook button in the ribbon may be erroneously disabled.</li>
<li>In some non-English languages of SharePoint, the text displayed in the callout UI for a document or list item, describing who last edited the item, may not be grammatically correct.</li>
<li>Copy and Paste in a datasheet does not work correctly with Internet Explorer 11.</li>
<li>Pages do not render in Safari for iPad when private browsing mode is used.</li>
<li>When editing rich text fields in SharePoint, if the editing session exceeds 30 minutes, the edits may not be saved.</li>
<li>An error that says &#8220;SCRIPT12004: An internal error occurred in the Microsoft Internet extensions&#8221; may occur intermittently when users visit their SkyDrive Pro or other pages on their personal site.</li>
<li>InfoPath may crash when a form that points to a SharePoint list, with a lookup to another SharePoint list, is opened.</li>
<li>An InfoPath form with extended characters in its name fails to open.</li>
<li>An error that says &#8220;Security Validation for the form has timed out&#8221; may occur when an InfoPath form is digitally signed and hosted in a SharePoint site collection that uses the SharePoint version 2010 user experience.</li>
<li>&#8220;Show document icon&#8221; remains unchecked and the document icon does not show in Edit Properties for a list item.</li>
<li>A &#8220;Failed tagging this page&#8221; error occurs when the &#8220;I like it&#8221; button is clicked.</li>
<li>The wrong term is removed when manually editing a multi-valued taxonomy field.</li>
<li>When tagging list items using a language that is different from the term store default language, suggestions for labels are offered in multiple languages. The suggestions appear confusing because both language</li>
<li>suggestions are listed without any identification of the language.</li>
<li>An error that says &#8220;There was an error processing this request&#8221; may appear when editing the user profile.</li>
<li>Times are missing from Date/Time results in certain filtered list web service calls.</li>
<li>Minimal and no metadata are now enabled as supported JSON formats.</li>
<li>Actions4 schema workflow actions can&#8217;t be deployed to SharePoint.</li>
<li>Using Client Object Model, Stream.Seek() to seek to a particular position doesn&#8217;t seek at the proper offset.</li>
<li>Refreshing a workflow status page generates the following error: &#8220;System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.&#8221;</li>
<li>Setting custom, non-English outcomes in web pages on tasks in a workflow fails to set the value.</li>
<li>Configurations of SharePoint using Azure Hybrid mode and Workflow Manager together can cause workflow callbacks to fail.</li>
<li>Workflow task processes on wiki pages won&#8217;t start.</li>
<li>Workflows won&#8217;t wait for changes to content approval status fields.</li>
<li>E-mails generated by workflow cannot be disabled for approvals in SharePoint workflows.</li>
<li>Workflows may fail to send an e-mail or send too many e-mails.</li>
<li>Association variables do not update correctly for auto-start workflows.</li>
<li>A KeyNotFoundException error may occur in a workflow when the associated task list uses unique permissions.</li>
<li>Incomplete tasks are deleted when workflow task activities complete.</li>
<li>Task activity is suspended when the task is completed using app-only credentials.</li>
<li>An error that says &#8220;This task could not be updated at this time&#8221; occurs when trying to complete a workflow task using the &#8220;Open this task&#8221; button in Outlook.</li>
<li>A workflow doesn&#8217;t respond properly when waiting for changes in specific types of list columns, such as Boolean, Date Time, and User.</li>
</ul>
<p>Check here for the KB and download<br />
<a href="http://support.microsoft.com/kb/2817429">http://support.microsoft.com/kb/2817429</a><br />
<a href="http://www.microsoft.com/en-us/download/details.aspx?id=42008">http://www.microsoft.com/en-us/download/details.aspx?id=42008</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2014/02/25/sharepoint-2013-sp1-has-been-released/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">242</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2014/02/2014-02-26_07h25_42.png" medium="image">
			<media:title type="html">2014-02-26_07h25_42</media:title>
		</media:content>
	</item>
		<item>
		<title>Show Upcomming Birthdays Based on SharePoint 2013 User Profiles with Search (Office 365)</title>
		<link>https://joranmarkx.wordpress.com/2013/10/02/show-upcomming-birthdays-based-on-sharepoint-2013-user-profiles-with-search-office365/</link>
					<comments>https://joranmarkx.wordpress.com/2013/10/02/show-upcomming-birthdays-based-on-sharepoint-2013-user-profiles-with-search-office365/#comments</comments>
		
		<dc:creator><![CDATA[Cloud Architect Joran Markx]]></dc:creator>
		<pubDate>Wed, 02 Oct 2013 20:41:29 +0000</pubDate>
				<category><![CDATA[JSOM]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Birthday webpart]]></category>
		<guid isPermaLink="false">http://joranmarkx.wordpress.com/?p=234</guid>

					<description><![CDATA[A lot of customers like to have some kind of anniversary webpart on their corporate intranet. In SharePoint 2013 and Office365 you can provide this functionality using the SharePoint User Profile and Search (and some Javascript). In the SharePoint User Profile, users are able to provide their birthday by default. These values are automaticly crawled [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A lot of customers like to have some kind of anniversary webpart on their corporate intranet. In SharePoint 2013 and Office365 you can provide this functionality using the SharePoint User Profile and Search (and some Javascript).</p>
<p><a href="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png"><img loading="lazy" data-attachment-id="236" data-permalink="https://joranmarkx.wordpress.com/2013/10/02/show-upcomming-birthdays-based-on-sharepoint-2013-user-profiles-with-search-office365/2013-10-02_22h27_30/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png" data-orig-size="290,99" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="2013-10-02_22h27_30" data-image-description="" data-image-caption="" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png?w=290" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png?w=290" class="alignright size-full wp-image-236" src="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png?w=630" alt="2013-10-02_22h27_30"   srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png 290w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png?w=150&amp;h=51 150w" sizes="(max-width: 290px) 100vw, 290px" /></a></p>
<p>In the SharePoint User Profile, users are able to provide their birthday by default. These values are automaticly crawled but you will not be able to apply filters using search. In this blog post I will describe the configuration steps for Office365.</p>
<p>&gt; Go to the Site Settings -&gt; Site Collection Administration -&gt; Search Schema (you can also configure this in the SharePoint Admin level)<br />
&gt; Search for RefinableDate00, Edit the mapping (for SharePoint Onpremise, you are able to add a new one with type Date)<br />
&gt; Give it an alias like Birthday01<br />
&gt; Add &#8220;People:SPS-Birthday&#8221; as crawled field mapping</p>
<p><a href="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png"><img loading="lazy" data-attachment-id="235" data-permalink="https://joranmarkx.wordpress.com/2013/10/02/show-upcomming-birthdays-based-on-sharepoint-2013-user-profiles-with-search-office365/2013-10-02_22h07_48/" data-orig-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png" data-orig-size="1147,63" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="2013-10-02_22h07_48" data-image-description="" data-image-caption="" data-medium-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=300" data-large-file="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=630" class="alignright size-large wp-image-235" src="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=630&#038;h=34" alt="2013-10-02_22h07_48" width="630" height="34" srcset="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=630 630w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=150 150w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=300 300w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=768 768w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=1024 1024w, https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png 1147w" sizes="(max-width: 630px) 100vw, 630px" /></a></p>
<p>&gt; Be sure you have some people filled in their birthday on their profile<br />
&gt; You are done, o365 will need to wait at most 1 week (yes, you are reading it right). Full crawls are now performed once a week, if you need it by tomorrow you can submit a support ticket to MS support, they will initiate a full crawl on request. Onpremise users just fire off a full crawl.</p>
<p>To test if your managed property is working you can perform a query to your search center.<br />
<a href="https://tenantname.sharepoint.com/search/Pages/peopleresults.aspx?k=Birthday01&gt;&#8221;01-01-2000&#038;#8243" rel="nofollow">https://tenantname.sharepoint.com/search/Pages/peopleresults.aspx?k=Birthday01&gt;&#8221;01-01-2000&#038;#8243</a>;</p>
<p>Our prerequisities are met, and we are able to query for a birthday. So why should we need any code&#8230;<br />
As you can see in the &#8220;test&#8221; query above, we are using the year 2000 to query, this is not just a coincidence. SharePoint stores the Date no Year fields using the year 2000, and SharePoint Online is not different on this one. Unfortunately this makes our Search Results webpart unusefull because you can only use keywords like today-5, yesterday, last week, last month and last year.</p>
<p>The javascript below will perform a restcall to the search service to retrieve the birthdays which are in range (30 days in this example).</p>
<p>(note: jquery is required)</p>
<pre class="brush: plain; title: ; notranslate">
&lt;div id=&quot;resultsDiv&quot;&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
$(document).ready(function () {
    var e = ExecuteOrDelayUntilScriptLoaded(executeQuery(), &quot;sp.js&quot;);
});

Date.prototype.AddDays=function(days)
{
	this.setDate(this.getDate() + days);
	return this;
}

function executeQuery() {

    Results = {
        element: '',
        url: '',

        init: function (element) {
            Results.element = element;

	    var birthday = 'Birthday01';
	    var space = '%20'; var colon = '%3A'; var quote = '%22'; var gt = '%3E'; var lt = '%3C'; var amp = '&amp;';

            // Get current date
            var currentTime = new Date();
	    var startMonth = currentTime.getMonth()+1;
	    var day = currentTime.getDate();

            // Get current date + 30
	    var endTime = new Date();
            var endTime = currentTime.AddDays(30);
	    var endMonth = endTime.getMonth()+1;
            var endDay = endTime.getDate();

            var querytext = &quot;&quot;;

	    // build query with the magic 2000 year
            if(startMonth!='12')
	    {
		querytext += birthday + gt + quote + day + '-' + startMonth + '-' + '2000' + quote + space + 'AND' + space + birthday + lt + quote + endDay + '-' + endMonth + '-' + '2000' + quote;
	    }
	    else
	    {
		querytext += birthday + gt + quote + day + '-' + startMonth + '-' + '2000' + quote + space + 'OR' + space + birthday + lt + quote + endDay + '-' + endMonth + '-' + '2000' + quote;
	    }
            Results.url = _spPageContextInfo.webAbsoluteUrl + &quot;/_api/search/query?querytext=%27&quot; + querytext + &quot;%27&amp;sourceid=%27B09A7990-05EA-4AF9-81EF-EDFAB16C4E31%27&amp;selectproperties=%27Title,&quot;+ birthday +&quot;,Path%27&amp;sortlist=%27&quot;+ birthday +&quot;:ascending%27&quot;;
        },

        load: function () {
            $.ajax(
                    {
                        url: Results.url,
                        method: &quot;GET&quot;,
                        headers: {
                           &quot;accept&quot;: &quot;application/json; odata=verbose&quot;,
                        },
                        success: Results.onSuccess,
                        error: Results.onError
                    }
                );
        },

        onSuccess: function (data) {
            var results = data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results;
	    var months = [ &quot;januari&quot;, &quot;februari&quot;, &quot;maart&quot;, &quot;april&quot;, &quot;mei&quot;, &quot;june&quot;, &quot;juli&quot;, &quot;augustus&quot;, &quot;september&quot;, &quot;oktober&quot;, &quot;november&quot;, &quot;december&quot; ];
            var html = &quot;&lt;div class='birthday'&gt;&quot;;

            for (var i = 0; i &lt; results.length; i++) {
		var name = results[i].Cells.results[2].Value;
		var date = new Date(Date.parse(results[i].Cells.results[3].Value));
                var link = results[i].Cells.results[4].Value

                html += &quot;&lt;span&gt;&quot;;
                html += &quot;&lt;a href='&quot;+link+&quot;'&gt;&quot; + name + &quot;&lt;/a&gt;&quot;;
                html += &quot; &quot;
                html += date.getDate() + &quot; &quot;+ months[date.getMonth()];
                html += &quot; &quot;;
            }

	    if (results.length == 0)
            {
              html += &quot;Er zijn geen verjaardagen (bekend).&quot;;
            }

            html += &quot;&lt;/div&gt;&quot;;
            Results.element.html(html);
        },

        onError: function (err) {
            alert(JSON.stringify(err));
        }
    }

    Results.init($('#resultsDiv'));
    Results.load();

}

// ]]&gt;&lt;/script&gt;
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://joranmarkx.wordpress.com/2013/10/02/show-upcomming-birthdays-based-on-sharepoint-2013-user-profiles-with-search-office365/feed/</wfw:commentRss>
			<slash:comments>26</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">234</post-id>
		<media:content url="https://1.gravatar.com/avatar/d169ef5fbd62cca385f5d3a091d499e1990ea006da09e3da01e7a081541dea4c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">joranmarkx</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h27_30.png" medium="image">
			<media:title type="html">2013-10-02_22h27_30</media:title>
		</media:content>

		<media:content url="https://joranmarkx.wordpress.com/wp-content/uploads/2013/10/2013-10-02_22h07_48.png?w=630" medium="image">
			<media:title type="html">2013-10-02_22h07_48</media:title>
		</media:content>
	</item>
	</channel>
</rss>
