<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Windorks</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/windorks/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/windorks/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:53:03 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>How to write an ADFS claims rule for a custom Active Directory attribute</title>
      <link>https://docs.microsoft.com/archive/blogs/windorks/how-to-write-an-adfs-claims-rule-for-a-custom-active-directory-attribute</link>
      <pubDate>Wed, 13 May 2015 15:03:37 GMT</pubDate>
      <dc:creator><![CDATA[dirk.popelka@chw.edu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windorks/2015/05/13/how-to-write-an-adfs-claims-rule-for-a-custom-active-directory-attribute/</guid>
      <description><![CDATA[I worked a case recently for a customer that wanted to pass a custom Active Directory attribute as a...]]></description>
      <content:encoded><![CDATA[<p>I worked a case recently for a customer that wanted to pass a custom Active Directory attribute as a claim.&nbsp;It&rsquo;s actually easy to do and does not require a custom claim rule, but the answer is less than obvious.</p>
<p>To create a new Issuance Transform Rule on the relying party trust. Follow these steps:</p>
<p>Choose <strong>Add Rule</strong>.&nbsp;</p>
<p>Use the <strong>Send LDAP Attributes as Claims</strong> template</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/8867.Capture1.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/8867.Capture1.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/8867.Capture1.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/8867.Capture1.JPG" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<p><strong>Name the rule</strong> and choose the <strong>Active Directory</strong> attribute store.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/3582.Capture2.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/3582.Capture2.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/3582.Capture2.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/3582.Capture2.JPG" alt="" border="0" /></a>&nbsp;</p>
<p>Next, <strong>type the custom attribute name</strong> I the Ldap Attribute dropdown exactly as it appears in ADSI Edit or your favorite ldap browser of choice. Hit <strong>enter</strong>.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/6813.Capture3.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/6813.Capture3.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/6813.Capture3.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/6813.Capture3.JPG" alt="" border="0" /></a></p>
<p>You will notice that now if you choose the dropdown, the custom attribute is saved towards the bottom for future use.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/4338.Capture4.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/4338.Capture4.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/4338.Capture4.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/300x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/4338.Capture4.JPG" alt="" border="0" /></a></p>
<p>You can now map that attribute to any of the claim types built in to ADFS and select Finish.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/1512.Capture5.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/1512.Capture5.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/1512.Capture5.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/1512.Capture5.JPG" alt="" border="0" /></a></p>
<p>That how to map your custom Active Directory attribute in an ADFS claims rule. Deceptively easy.&nbsp; Hope this helps.</p>]]></content:encoded>
    </item>
    <item>
      <title>How to Get Rid of ADFS Event 415</title>
      <link>https://docs.microsoft.com/archive/blogs/windorks/how-to-get-rid-of-adfs-event-415</link>
      <pubDate>Tue, 07 Apr 2015 14:53:00 GMT</pubDate>
      <dc:creator><![CDATA[dirk.popelka@chw.edu]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windorks/2015/04/07/how-to-get-rid-of-adfs-event-415/</guid>
      <description><![CDATA[As an Identity Hybrid PFE I&rsquo;ve seen my fair share of ADFS Admin logs.&nbsp; In many cases that...]]></description>
      <content:encoded><![CDATA[<p>As an Identity Hybrid PFE I&rsquo;ve seen my fair share of ADFS Admin logs.&nbsp; In many cases that log is a good place to start looking for data on current issues.&nbsp; During the course of analyzing this particular log for various customers I inevitably come across at least one 415 which reads as follows:</p>
<p>&ldquo;The SSL certificate does not contain all UPN suffix values that exist in the enterprise&hellip;.&rdquo;&nbsp;<br />&nbsp;&nbsp;<br /><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/5810.adfs%20415v2.jpg" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/5810.adfs-415v2.jpg"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/5810.adfs%20415v2.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/5810.adfs-415v2.jpg" alt="" border="0" /></a></p>
<p>Assuming you have internet access, the link in the event actually takes you here, which is perfect &ndash; <a href="https://technet.microsoft.com/library/dn614658.aspx">https://technet.microsoft.com/library/dn614658.aspx</a></p>
<p>The thing is, depending on how far you&rsquo;ve gotten with configuring Device Registration &ndash; if at all &ndash; you may be wondering how much of this is necessary?&nbsp; What if I just edit the certificate?&nbsp; And what UPN&rsquo;s need to be defined anyway? The short answer is that no matter how far you have or haven&rsquo;t gotten configuring DRS, you&rsquo;ll need to walk the full Technet article and hopefully I can fill in the gaps to help you accomplish just that.</p>
<p>The first section of the TechNet discusses DNS.&nbsp; You&rsquo;ll already have an A record for the ADFS server. There will also need to be enterpriseregistration CNAME records for each domain that needs access to workplace join.&nbsp; Yes, this means child domains too so don&rsquo;t think just because you have enterpriseregistration.contoso.com that you can forego creating enterpriseregistration.child.contoso.com.&nbsp; The record will need to exist in each domain&rsquo;s DNS zone.</p>
<p>The second section of the Technet covers certificate issuance; specifically around the ADFS service communications certificate.&nbsp; In addition to the aforementioned Cname records, we also need SAN entries for each enterpriseregistration.domain.com instance.&nbsp;</p>
<p>Once the certificate request is completed with the correct common name and SAN entries, a new certificate is issued which&nbsp; you bind to ADFS in the next step in the Technet; namely the <strong>&ldquo;Set-AdfsSslCertificate -Thumbprint thumbprint&rdquo; </strong>command.&nbsp; I recommend doing the update using this method versus the GUI as I&rsquo;ve seen some funny things happen when going the GUI route.&nbsp; A restart of the ADFS service at this point is a prudent measure as well.&nbsp;</p>
<p>Pretty straightforward so far, but wait a minute &ndash;&nbsp; before I go reissuing certificates and creating all of these DNS records how many domains are going to need this to get rid of the 415?&nbsp; The answer lies in this statement regarding Set-AdfsDeviceRegistrationUpnSuffix &amp;Get-AdfsDeviceRegistrationUpnSuffix</p>
<p>&ldquo;<em>This command will detect the UPNs associated with Active Directory forests and domains and configure AD FS to listen</em>.&rdquo;</p>
<p>If DRS is already running then you should be able to run Get-AdfsDeviceRegistrationUpnSuffix from a Powershell prompt to find out. If, however, you have yet to dip even a solitary toe into the DRS pool using expert advice like this blog - <a href="https://blogs.technet.com/b/amitd/archive/2014/05/07/configure-adfs-and-device-registration-service-in-windows-2012-r2.aspx">https://blogs.technet.com/b/amitd/archive/2014/05/07/configure-adfs-and-device-registration-service-in-windows-2012-r2.aspx</a>&nbsp;to run the commands to initialize &amp; enable DRS here&rsquo;s a good rule of thumb: if it&rsquo;s listed as a trust in Active Directory Domains &amp; Trusts you should consider whether you&rsquo;ll want those users to workplace join.&nbsp; To get rid of the 415, you&rsquo;ll need to define a SAN for each domain in the certificate.&nbsp; Now, if you&rsquo;re at this&nbsp; stage of the game and haven&rsquo;t initialized or enabled DRS you&rsquo;ll want to consult the aforementioned blog to get that done before worrying about the finer points of UPN suffix binding.&nbsp;</p>
<p>Getting back to the action, we left off at updating the certificate.&nbsp; This alone will not make our 415 go away nor will it allow our friends in other forests or domains to workplace join using our STS.&nbsp; We next have to kick ADFS upside the head with a</p>
<p><strong>Set-AdfsDeviceRegistrationUpnSuffix</strong></p>
<p>This, ironically, will also give you the same message from the 415 event.&nbsp; Stand fast, undaunted in your quest for DRS perfection.&nbsp; Success is just around the bend.&nbsp;Continuing with the Technet process we follow this by running</p>
<p><strong>Get-AdfsDeviceRegistrationUpnSuffix</strong></p>
<p>For each UPN, the &ldquo;IsSetAsSSLBinding&rdquo; should now be equal to True.&nbsp; If it doesn&rsquo;t happen right away, re-run the Get- command another time or two and see if it updates.&nbsp; Even in my lab I had to give it a bit of time.&nbsp; Here&rsquo;s how it looks.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/0511.binding.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/0511.binding.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/70/39/0511.binding.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-70-39/0511.binding.JPG" alt="" width="287" height="128" border="0" /></a></p>
<p>At that point, if the certificate is updated and the configuration refreshed with the Set- command, you&rsquo;ve likely seen your last 415 for a while.</p>
<p>As the final step of the Technet, make sure to go out there and update the WAPs with an &ldquo;<strong>Update-WebApplicationProxyDeviceRegistration</strong>&rdquo;&nbsp; Congratulations, you&rsquo;ve made it to the end.&nbsp;</p>
<p>A natural question might be &ldquo;what if I don&rsquo;t want to give workplace join rights to every trusted &amp; trusting domain?&rdquo;&nbsp; Completely reasonable query.&nbsp; Let&rsquo;s go back to the beginning by remembering that the 415 is a <em>Warning</em>, which will result in neither loss of limb nor your high school yearbook picture being posted to social media if no action is taken.&nbsp; It&rsquo;s just Microsoft&rsquo;s way of making you aware of a certain condition.&nbsp; From a security standpoint, you may not actually be interested in granting workplace join permissions to organizations that don&rsquo;t need it, which makes sense.&nbsp; In that case, the 415 is no big surprise.&nbsp; That said, if you want to know what it means and how to make it go away, follow the Technet and hopefully this additional advice will see you through.</p>]]></content:encoded>
    </item>
  </channel>
</rss>