<?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>keithab</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/keithab/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/keithab/feed.xml</link>
    <description />
    <lastBuildDate>Fri, 11 Nov 2016 21:10:12 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Transport Layer Security (TLS) Handshake Failing, SChannel Error 36888</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/transport-layer-security-tls-handshake-failing-schannel-error-36888</link>
      <pubDate>Fri, 11 Nov 2016 20:12:21 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/?p=1495</guid>
      <description><![CDATA[&nbsp;

Hey guys, Keith Abluton here again. I wanted to share an interesting trend that I have...]]></description>
      <content:encoded><![CDATA[&nbsp;

Hey guys, Keith Abluton here again. I wanted to share an interesting trend that I have seen lately in some of the Schannel cases that I have worked. There has been a large uptick in TLS handshake failures. They are usually accompanied by Schannel errors that show up in the System Event Log. In most cases, but not all, they are Event ID 36888.

<strong>Error Event ID 36888: "The following fatal alert was generated: 20. The internal error state is 960"</strong>

According to our documentation, the sub code 20 indicates a “<strong>Bad record MAC</strong>” and 960 is an “<strong>Unwrap_DecryptFailure</strong>”

<strong><u>Scenario</u></strong>

The scenario that seems to be the most common is the customer has a 3rd party device or application that is connecting to a Microsoft Server (2008R2, 2012, and 2012R2 are the most common) and they are either failing the TLS handshake completely or sporadically.

<strong><u>Cause</u></strong>

The first thing that you should do is gather a network trace that lines up with the errors you are seeing. Use the network capture tool that you feel most comfortable with. Drilling down into the network trace to the Server Hello will tell us the Cipher Suite that is being negotiated. In the example below, and in most of the cases I have seen, the problematic Cipher Suite will be either <strong>TLS_DHE_RSA_WITH_AES_128_CBC_SHA</strong> or <strong>TLS_DHE_RSA_WITH_AES_256_CBC_SHA</strong>. There are various interoperability and deeply technical reasons for this that I will not get into in this article. Keep in mind that I have seen cases where a Cipher Suite other than the two above was the culprit so you may still want to follow my recommendations for remediation even if that is the case.

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/image265.png"><img width="761" height="434" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/11/image_thumb247.png" border="0" /></a>

&nbsp;

<strong><u>Resolution</u></strong>

The Cipher Suite order is determined by one of two registry keys

<strong>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002</strong>

or

<strong>HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002</strong>

The second one is set by either a Local Policy or a Group Policy and takes precedence over anything defined in the first one. If you do not have a policy in place it will be blank.

Opening the Functions key will display a Multi String valued list that looks like below:

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/image266.png"><img width="736" height="337" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/11/image_thumb248.png" border="0" /></a>

&nbsp;

<strong><span style="font-size: medium">Disclaimer: Please backup this key before making any changes to it so that you can revert to back if necessary.</span></strong>

If the Cipher Suite you are seeing in your network trace is one of the two I outlined above, I would recommend simply cutting both of them out and then saving the registry key so that they are no longer on the list. A reboot MUST be done after this change for it to take effect. Doing this is a relatively quick and easy way to determine if the Cipher Suites are the issue.

Did that resolve your issue? If so, great. As a supported long term solution you really want to set the Cipher Suites via either a Local policy or a Group Policy so that future OS hotfixes will not add the Cipher Suites back in and return it to a broken state. Please refer to the following article for instructions on setting this in Group Policy: <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx#adding__removing__and_prioritizing_cipher_suites" title="https://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx#adding__removing__and_prioritizing_cipher_suites">https://msdn.microsoft.com/en-us/library/windows/desktop/bb870930(v=vs.85).aspx#adding__removing__and_prioritizing_cipher_suites</a>

Additionally it is recommended that you patch the OS fully when possible.

If this did not resolve your issue, your next step would be to move the below highlighted Cipher Suites to the top of the order (they are the ones that start with <strong>TLS_RSA_WITH_AES</strong>. Cut them from wherever they are in the order, paste them at the top, save the key, then reboot the server. (Again, a reboot is a MUST)!

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/image267.png"><img width="396" height="357" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/11/image_thumb249.png" border="0" /></a>

Did that resolve the issue? If so, great. Please follow the advice stated previously for setting it via Group Policy as a long term supported solution.

If this did not resolve your issue it may be time to open a support call with us to assist you in figuring it out. Microsoft Support will ask you to gather data. I wrote the following blog to assist with that and it helps in cases where the issue is sporadic and not easy to reproduce.

<a href="https://blogs.technet.microsoft.com/keithab/2016/10/30/how-to-configure-data-captures-for-intermittentsporadic-schannel-events/" title="https://blogs.technet.microsoft.com/keithab/2016/10/30/how-to-configure-data-captures-for-intermittentsporadic-schannel-events/">https://blogs.technet.microsoft.com/keithab/2016/10/30/how-to-configure-data-captures-for-intermittentsporadic-schannel-events/</a>

Either way it should gather what we will initially need to analyze and diagnose and you will be one step ahead of the game.

Cheers and happy hunting!

&nbsp;

<strong>Keith A. Abluton, CISSP, MCSE +Security</strong>

<strong>Sr. Support Escalation Engineer</strong>

<strong></strong>

P.S. If this article helped you in any way I would greatly appreciate the feedback in the comments below. This helps us to gauge if the content we are putting out is valuable and saves our customers time and money. Thanks!]]></content:encoded>
    </item>
    <item>
      <title>How to Configure Data Captures for Intermittent/Sporadic SChannel Events</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/how-to-configure-data-captures-for-intermittentsporadic-schannel-events</link>
      <pubDate>Sun, 30 Oct 2016 16:24:04 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/?p=1415</guid>
      <description><![CDATA[&nbsp;

Recently I have seen a large uptick in the number of SSL/TLS cases where Schannel Event...]]></description>
      <content:encoded><![CDATA[&nbsp;

Recently I have seen a large uptick in the number of SSL/TLS cases where Schannel Event IDs are logged. In some cases the event is not easily reproducible and sporadic. These are without a doubt the most challenging types of issues to diagnose and resolve. Data is needed at the time of the event to adequately capture exactly what is happening not only on the wire but also with our Security Support Provider (Schannel). The Schannel Event IDs that are observed in the System Event Log vary but the two most common are <strong>36888</strong> and <strong>36887</strong>. These events signal a fatal alert in the SSL/TLS communication between clients and servers. The alerts are generally encrypted and a network trace alone is very rarely sufficient enough to determine the exact nature of the problem.

For a full list of SChannel Events please see the below link.

<a href="https://technet.microsoft.com/en-us/library/dn786445.aspx?f=255&amp;MSPPError=-2147217396" title="https://technet.microsoft.com/en-us/library/dn786445.aspx?f=255&amp;MSPPError=-2147217396">https://technet.microsoft.com/en-us/library/dn786445.aspx?f=255&amp;MSPPError=-2147217396</a>

Sometimes the fatal alert is easily reproducible and sometimes it is intermittent and sporadic. So how can you gather the data that Microsoft Support will need to thoroughly diagnose your issue?

At a minimum I always ask for the below sources of data.

a.) Network capture from both the client and server while the issue is happening. I realize that sometimes this is not always possible because you may not own both sides or only one side may be running Windows. <strong>Netmon 3.4</strong> is preferred and you can download it <a href="https://www.microsoft.com/en-us/download/details.aspx?id=4865">here</a>. Wireshark can also be used but the method I detail later will require netcap which is installed with Netmon.

b.) Schannel tracing from both the client and server if you own them and they are running Windows.

c.) System Event log from both the client and the server. Again, this assumes you own both sides and both are running Windows. I prefer that the log be saved as a <strong>.CSV</strong> file so that I can easily sort and filter in Excel.

&nbsp;

So you might be asking, “how can I capture this event and send Microsoft Support the data that they need if it is not easy for me to predict when the event will occur?”  Good question. I put together a way to do this and tested it in my lab to verify that it does indeed work as expected. Again, if you own both the client and the server and they are running Windows please do this on both machines. In these scenarios there are typically network devices in the middle such as load balancers and having both sides is extremely helpful in ruling those in or out.

&nbsp;

<strong>Setting Up a Scheduled Task to Stop NMCap and Schannel Tracing After an Schannel Event is Logged</strong>

<strong></strong>

1.) Download and install <strong>Netmon 3.4</strong> from the link I supplied above. The method I use to start and stop the capture relies on NMCap which is installed with <strong>Netmon</strong>.

2.) Open an Administrative command prompt and enter the below command as one continuous line:

<strong>logman create trace "ds_security" -ow -o c:\ds_security.etl -p {37D2C3CD-C5D4-4587-8531-4696C44244C8} 0xffffffffffffffff 0xff -nb 16 16 -bs 1024 -mode Circular -f bincirc -max 4096 –ets</strong>

3.) In the same administrative command prompt start NMCap with the following command:

<strong>start nmcap /network * /capture /file c:\nmcap.cap:200m /stopwhen /frame (ipv4.address == ipconfig.localipv4address) AND (Ipv4.DestinationAddress == 1.2.3.4)</strong>

4.) Create a batch file on the machine with the below commands and call it something like <strong>StopCap.bat</strong>

<strong>@echo</strong>

<strong>Ping 1.2.3.4</strong>

<strong>logman stop "ds_security" –ets</strong>

4.) Now you need to set up a task in Task Scheduler to run when whatever the particular Schannel Event ID is logged in the System Event log.

Note: In the example below I use the Event ID 36888 because it is the most common but you can alter it to whatever event you are seeing.

<a href="https://msdnshared.blob.core.windows.net/media/2016/10/image1115.png"><img width="523" height="392" title="image" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/10/image_thumb947.png" border="0" /></a>

Add the criteria that will be used to trigger the task to run. In my example below it will run when Schannel Event ID 36888 is logged.

<a href="https://msdnshared.blob.core.windows.net/media/2016/10/clip_image00132.png"><img width="522" height="453" title="clip_image001" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/2016/10/clip_image001_thumb21.png" border="0" /></a>

Under the Actions Tab choose to start a program and put in the location and name of the batch file you created in Step 4 above. In my example is is <strong>c:\stopcap.bat</strong>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2016/10/clip_image00164.png"><img width="523" height="395" title="clip_image001[6]" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image001[6]" src="https://msdnshared.blob.core.windows.net/media/2016/10/clip_image0016_thumb4.png" border="0" /></a>

&nbsp;

Click OK and you are done.

So what happens now you ask? Well, both Schannel tracing and the NMCap will run until the Event ID that you are looking for is logged (it uses a 200MB circular buffer). As soon as it is logged, the Scheduled Task that you set up will run the batch file which sends a ping to IP Address 1.2.3.4 which is the trigger for NMCap to stop. Additionally it runs the command to stop the SChannel tracing.

Gather the following files that were created and zip them up.

<strong>c:\NMCap.cap</strong>

<strong>c:\ds_security.etl</strong>

<strong>System Event log saved as .CSV file</strong>

When you call to open up the support incident let the engineer know that you are smarter than the average bear and have already collected the information that would have been requested. They will be impressed and it will save you time and money in the long run. In the majority of cases we can figure out your issue with the above collected data. In a minority of cases we may have to get much deeper level tracing which your support engineer can readily assist you in gathering.

As always, if this post was helpful to you please let me know in the comments below.

Cheers!]]></content:encoded>
    </item>
    <item>
      <title>Public Trusted Root Gives Error “The integrity of this certificate cannot be guaranteed”</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/public-trusted-root-gives-error-the-integrity-of-this-certificate-cannot-be-guaranteed</link>
      <pubDate>Wed, 03 Aug 2016 16:15:29 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/?p=1336</guid>
      <description><![CDATA[&nbsp; &nbsp; I recently worked an odd case where customer was seeing the below error on some of his...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p> <p>&nbsp;</p> <p>I recently worked an odd case where customer was seeing the below error on some of his certificates in the Trusted Root Certificate Authority store. This was only the case for some certificates and happened on several different Operating Systems. The customer was thinking that something had corrupted the certificates but even downloading them from Verisign and importing them made no difference.</p> <p>&nbsp;</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/08/image84.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/08/image_thumb54.png" width="393" height="490"></a></p> <p>&nbsp;</p> <p>We asked customer to save that certificate to a file and then run a certutil command against it and send us the output. Command was <strong>certutil –verify SavedCert.cer &gt; verify.txt</strong></p> <p>&nbsp;</p> <p>Below is the output from verify.txt</p> <p>&nbsp;</p> <p>Issuer:<br>&nbsp;&nbsp;&nbsp; OU=Class 3 Public Primary Certification Authority<br>&nbsp;&nbsp;&nbsp; O=VeriSign, Inc.<br>&nbsp;&nbsp;&nbsp; C=US<br>&nbsp; Name Hash(sha1): 48b76449f3d5fefa1133aa805e420f0fca643651<br>&nbsp; Name Hash(md5): 27b3517667331ce2c1e74002b5ff2298<br>Subject:<br>&nbsp;&nbsp;&nbsp; OU=Class 3 Public Primary Certification Authority<br>&nbsp;&nbsp;&nbsp; O=VeriSign, Inc.<br>&nbsp;&nbsp;&nbsp; C=US<br>&nbsp; Name Hash(sha1): 48b76449f3d5fefa1133aa805e420f0fca643651<br>&nbsp; Name Hash(md5): 27b3517667331ce2c1e74002b5ff2298<br>Cert Serial Number: 70bae41d10d92934b638ca7b03ccbabf</p> <p>dwFlags = CA_VERIFY_FLAGS_CONSOLE_TRACE (0x20000000)<br>dwFlags = CA_VERIFY_FLAGS_DUMP_CHAIN (0x40000000)<br>ChainFlags = CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT (0x40000000)<br>HCCE_LOCAL_MACHINE<br>CERT_CHAIN_POLICY_BASE<br>-------- CERT_CHAIN_CONTEXT --------<br>ChainContext.dwErrorStatus = CERT_TRUST_IS_NOT_SIGNATURE_VALID (0x8)<br>ChainContext.dwErrorStatus = CERT_TRUST_HAS_WEAK_SIGNATURE (0x100000)<br>SimpleChain.dwErrorStatus = CERT_TRUST_IS_NOT_SIGNATURE_VALID (0x8)<br>SimpleChain.dwErrorStatus = CERT_TRUST_HAS_WEAK_SIGNATURE (0x100000)</p> <p>CertContext[0][0]: dwInfoStatus=c dwErrorStatus=100008<br>&nbsp; Issuer: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US<br>&nbsp; NotBefore: 1/28/1996 7:00 PM<br>&nbsp; NotAfter: 8/1/2028 6:59 PM<br>&nbsp; Subject: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US<br>&nbsp; Serial: 70bae41d10d92934b638ca7b03ccbabf<br>&nbsp; 74 2c 31 92 e6 07 e4 24 eb 45 49 54 2b e1 bb c5 3e 61 74 e2<br>&nbsp; Element.dwInfoStatus = CERT_TRUST_HAS_NAME_MATCH_ISSUER (0x4)<br>&nbsp; Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)<br>&nbsp; Element.dwErrorStatus = CERT_TRUST_IS_NOT_SIGNATURE_VALID (0x8)<br>&nbsp; Element.dwErrorStatus = CERT_TRUST_HAS_WEAK_SIGNATURE (0x100000)</p> <p>Exclude leaf cert:<br>&nbsp; da 39 a3 ee 5e 6b 4b 0d 32 55 bf ef 95 60 18 90 af d8 07 09<br>Full chain:<br>&nbsp; 74 2c 31 92 e6 07 e4 24 eb 45 49 54 2b e1 bb c5 3e 61 74 e2<br>&nbsp; Issuer: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US<br>&nbsp; NotBefore: 1/28/1996 7:00 PM<br>&nbsp; NotAfter: 8/1/2028 6:59 PM<br>&nbsp; Subject: OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US<br>&nbsp; Serial: 70bae41d10d92934b638ca7b03ccbabf<br>&nbsp; 74 2c 31 92 e6 07 e4 24 eb 45 49 54 2b e1 bb c5 3e 61 74 e2<br>A signature algorithm or public key length does not meet the system's minimum required strength. 0x80094016 (-2146877418)<br>------------------------------------<br>CertUtil: -verify command FAILED: 0x80094016 (-2146877418)<br><font style="background-color: #ffff00">CertUtil: A signature algorithm or public key length does not meet the system's minimum required strength.</font></p> <p><font style="background-color: #ffff00"></font>&nbsp;</p> <p><font style="background-color: #ffffff">The last line had me thinking, okay what was done to this system that is not allowing it to use a self-signed certificate that is in the Trusted Root store? As you can see the Public Key length is 1024 (below).</font></p> <p>&nbsp;</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/08/image86.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/08/image_thumb56.png" width="345" height="430"></a></p> <p>I did some research and found this KB.</p> <p><a href="https://support.microsoft.com/en-us/kb/2661254">https://support.microsoft.com/en-us/kb/2661254</a> <p>Using the above KB I realized that someone must have set a registry key that does not exist by default.</p> <p><strong>HKLM\Software\Microsoft\Cryptography\OID\EncodingType0\CertDllCreateCertificateChainEngine\Config</strong> and added DWORD <strong>minRSAPubKeyBitLength</strong> </p> <p>They set it to at least 2048 which causes the above certificate to display the error about integrity.</p> <p>You can find out if that registry key exists by running <strong>certutil -getreg chain\minRSAPubKeyBitLength</strong> and if it exists at all it will give a value. If it does not it will error (below).</p> <p>&nbsp;</p> <p><a href="https://msdnshared.blob.core.windows.net/media/2016/08/image85.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/2016/08/image_thumb55.png" width="496" height="252"></a></p> <p>You can set it using <strong>certutil -setreg chain\minRSAPubKeyBitLength &lt;value&gt;</strong> where value can be 512, 1024, 2048, 4096, etc. So <strong>certutil -setreg chain\minRSAPubKeyBitLength 2048</strong> would set it to 2048 bits</p> <p>To delete the key altogether use <strong>certutil -delreg chain\minRSAPubKeyBitLength</strong></p> <p>Once the key was deleted the error was no longer seen on any of Trusted Root Certificates.</p> <p>&nbsp;</p> <p>Cheers!</p>]]></content:encoded>
    </item>
    <item>
      <title>Schannel Errors Event ID 36888 after installing KB3042058</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/schannel-errors-event-id-36888-after-installing-kb3042058</link>
      <pubDate>Tue, 02 Aug 2016 20:32:15 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/?p=1296</guid>
      <description><![CDATA[&nbsp;

&nbsp;

Howdy folks. Keith here with my first blog in quite a while. I am no longer...]]></description>
      <content:encoded><![CDATA[&nbsp;

&nbsp;

Howdy folks. Keith here with my first blog in quite a while. I am no longer supporting ISA/TMG/UAG but moved over to a new role supporting Microsoft's implementation of Public Key Infrastructure (PKI) and along with that Secure Channel (Schannel). I am excited about the challenge and I get to see a lot of interesting cases.

I recently had a case that was perplexing to say the least.

<strong><u>Symptom:</u></strong>

After installing KB3042058 on a Windows 2008 R2 machine that was running IIS the clients were no longer able to connect to the SSL site on that machine. A network trace showed the setup of the TCP three way handshake, a Client Hello, and then a RST by the IIS Server.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0011.png"><img width="681" height="275" title="clip_image001" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image001_thumb1.png" border="0" /></a>

Schannel errors with Event ID 36888 were also showing up at those times. The sub codes were 80, 1250 and 80, 1051.

80 is a Fatal Error
<div>1051 is ServerSke_GetSigLen</div>
<div>
1250 is SrvCliResp_SkeFailed</div>
&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0022.png"><img width="570" height="391" title="clip_image002" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image002_thumb2.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0031.png"><img width="571" height="397" title="clip_image003" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image003" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image003_thumb1.png" border="0" /></a>

<strong><u>Troubleshooting:</u></strong>

It took a while for us to realize what was going on and I would like to share with you a way to determine if you are having this exact issue.

At an administrative command prompt, run the following command

<strong>certutil -v -verifystore My * &gt;out.txt</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image004.png"><img width="506" height="253" title="clip_image004" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image004_thumb.png" border="0" /></a>

Now open the corresponding out.txt file that was created and locate the certificate that your website is using. In my lab I had issued myself one for <a href="https://www.wtt.com">www.wtt.com</a> (WingTipToys).

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0051.png"><img width="508" height="346" title="clip_image005" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image005" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image005_thumb1.png" border="0" /></a>

Continue scrolling down until you find the lines that tell you the Provider and the KeySpec value. More than likely the Provider will be a CSP. In my case it was "Microsoft RSA Schannel Cryptographic Provider." The Keyspec was also 0 which is NOT valid for a certificate issued by a CSP.

Keep looking through the output and look for a Unique Container Name. Make a note of that value.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0063.png"><img width="508" height="437" title="clip_image006" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image006_thumb2.png" border="0" /></a>

Now open <strong>%programdata%\Microsoft\Crypto\Keys</strong> and see if that same container is listed there. My bet is that it does exist there.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0071.png"><img width="509" height="214" title="clip_image007" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image007" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image007_thumb1.png" border="0" /></a>

Now go look at the folder <strong>%programdata%\Microsoft\Crypto\RSA\MachineKeys</strong> and check the permissions of that folder. If you see anything other than the defaults (Everyone and Administrators) chances are that is our problem. In my case System had been added with Full Permissions.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0083.png"><img width="512" height="491" title="clip_image008" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image008_thumb2.png" border="0" /></a>

Default permissions for Everyone is listed below.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0092.png"><img width="517" height="389" title="clip_image009" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image009" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image009_thumb2.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0101.png"><img width="517" height="389" title="clip_image010" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image010_thumb1.png" border="0" /></a>

Default permissions for Administrators is listed below.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0111.png"><img width="517" height="389" title="clip_image011" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image011" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image011_thumb1.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image012.png"><img width="519" height="388" title="clip_image012" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image012_thumb.png" border="0" /></a>

<strong><u>Solution:</u></strong>

Remove any groups that should not be there and makes sure the default permissions are set back to what I have listed above.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0131.png"><img width="345" height="420" title="clip_image013" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image013" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image013_thumb1.png" border="0" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0141.png"><img width="346" height="418" title="clip_image014" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image014" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image014_thumb1.png" border="0" /></a>

Now go delete the private key that you located earlier under <strong>%programdata%\Microsoft\Crypto\Keys</strong>

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image015.png"><img width="558" height="223" title="clip_image015" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image015" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image015_thumb.png" border="0" /></a>

Also, in the Certificate Store delete the corresponding public key

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0161.png"><img width="562" height="220" title="clip_image016" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image016" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image016_thumb1.png" border="0" /></a>

Now you should be able to re-import the original .pfx file (assuming you still have it) and if you did the steps above correctly the private key will be written to the correct location (<strong>%programdata%\Microsoft\Crypto\RSA\MachineKeys</strong>) and KeySpec value will be something other than 0.

You can verify this again by running the <strong>certutil -v -verifystore My * &gt;out.txt</strong> and finding the pieces of information you checked earlier.

Note: An alternative method to fixing this issue is to have your PKI administrators issue a new certificate for you that is from a Key Storage Provider.

<a href="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image0171.png"><img width="264" height="361" title="clip_image017" style="padding-top: 0px;padding-left: 0px;padding-right: 0px;border: 0px" alt="clip_image017" src="https://msdnshared.blob.core.windows.net/media/2016/08/clip_image017_thumb1.png" border="0" /></a>

I created a Web Server template in my lab and made sure to change the Provider to be a KSP, requested a certificate, imported it into the Certificate Store on my IIS Server, bound it to IIS and then tested. Worked like a charm.

<strong><u>Conclusion:</u></strong>

In this post I showed you how to solve a pretty perplexing issue that ultimately resulted in the private key for a certificate being written to the wrong location on the file system.]]></content:encoded>
    </item>
    <item>
      <title>iOS Devices Using ActiveSync Are Doing an Unexpected Full Sync or Reload of Exchange Data (Part 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/ios-devices-using-activesync-are-doing-an-unexpected-full-sync-or-reload-of-exchange-data-part-2</link>
      <pubDate>Fri, 04 Sep 2015 06:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/09/04/ios-devices-using-activesync-are-doing-an-unexpected-full-sync-or-reload-of-exchange-data-part-2/</guid>
      <description><![CDATA[&nbsp;
I recently had another very interesting case that I thought I would share. This is a follow...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>I recently had another very interesting case that I thought I would share. This is a follow up post to a previous blog I did on this issue which is located <a href="/b/keithab/archive/2014/05/07/ios-devices-using-activesync-are-doing-an-unexpected-full-sync-or-reload-of-exchange-data.aspx">here</a>.</p>
<p>The symptom, cause of the behavior on the iPhone, and diagnosing the issue were identical but it was the root cause and resolution that were different.</p>
<p>Symptom:</p>
<p>Your Exchange data may unexpectedly reload on some or all of the iOS devices in your organization. This includes Exchange email, contacts, and calendar information.</p>
<p>Environment: Exchange 2007, Exchange 2010, or Exchange 2013 published externally using Internet Security and Acceleration (ISA 2004 or ISA 2006) Server, Forefront Threat Management Gateway 2010 (TMG 2010) or Unified Access Gateway 2010 (UAG 2010) as well as F5 Big IP.</p>
<p><strong>Cause:</strong></p>
<p>This issue is seen when the iOS devices receive an HTTP 500 error in response to consecutive requests. The ping that the client initiates is critical to the Direct Push technology that Exchange ActiveSync relies on for determining when there is new information to be pushed to the client.</p>
<p>For more information on Direct Push and how it works see the below links:</p>
<p><a href="https://technet.microsoft.com/en-us/library/cc182244.aspx">https://technet.microsoft.com/en-us/library/cc182244.aspx</a></p>
<p><a href="https://technet.microsoft.com/en-us/library/cc182236.aspx">https://technet.microsoft.com/en-us/library/cc182236.aspx</a></p>
<p><strong>Diagnosing this issue:</strong></p>
<p>Apple has addressed this issue on their support forum <a href="https://support.apple.com/kb/TS4511">here</a> and has some recommendations for diagnosing this at the client. It is my understanding that Apple support has to pull the ActiveSync logs off the iOS devices.</p>
<p>From the ISA/TMG standpoint, diagnosing this involves a couple of things. Start Live Logging on ISA/TMG and filter for traffic that is using the ActiveSync rule for your organization. If there are multiple requests that are showing as Failed and an Error 64 is indicated as the cause then we need to investigate further.</p>
<p>A Microsoft Support Engineer can gather application level tracing using our Best Practices Analyzer&nbsp; and more specifically the Data Packager.</p>
<p>In the ISA/TMG tracing which will need to be converted by Microsoft we will typically see ActiveSync conversations failing with <strong>error code 64(ERROR_NETNAME_DELETED)</strong> and will be followed by a response to client of <strong>HTTP/1.1 500</strong>.UAG Tracing would not show the <strong>(ERROR_NETNAME_DELETED)</strong> but you should still see a <strong>HTTP/1.1 500 </strong>being returned to the client.&nbsp;</p>
<p><strong>Resolution and Root Cause:</strong></p>
<p>To determine the root cause and the ultimate resolution to this issue I took the same approach that I have in all of these cases. First I wanted to eliminate my product (TMG in this case) as the culprit. Out of the box ISA and TMG will publishing your Exchange ActiveSync Services without an issue. I have never seen a case where either one was contributing to this issue and I have worked quite a few of these over the last few years.</p>
<p>In order to eliminate TMG as the culprit I had the customer gather data using our TMG Data Packager (Web Proxy and Web Publishing scenario) while reproducing the issue. Thankfully this issue consistently occurred in this environment after exactly 5 minutes (300 seconds). Another thing that worked in our favor was that customer was able to recreate this in their test environment which closely mimicked their production environment.</p>
<p>The data flow was essentially <strong>Client ======&gt; F5 ======&gt; TMG ======&gt; F5 ======&gt; Exchange CAS</strong></p>
<p>Based on the tracing I gathered from TMG I was able to determine that the RST was happening somewhere between TMG and the CAS Server. This lead me to strongly suspect that F5 was to blame. A network trace from the CAS Server showed the RST was happening between TMG and CAS as well.</p>
<p>In previous troubleshooting for this issue the customer had discovered that F5 defaults to 300 second timeouts for many of its settings. This falls in line with what we were seeing in terms of a time frame. These timeouts were adjusted and the customer even bypassed F5 as a load balancer and yet the issue persisted.</p>
<p>Digging a little further with the help of the customers network team we found out that even technically bypassing F5 was not really bypassing it because it was also being used for &ldquo;in-line&rdquo; traffic routing. In other words the default gateway of TMG was using a VLAN that the F5 LTM was hosting. That functionality is described <a href="https://packetpushers.net/stateless-routing-f5-ltm/">here.</a> The customer consulted their F5 expert who was able to find out there is a 300 second idle timeout enforced on&nbsp;that particular&nbsp;VLAN. Here was the smoking gun!</p>
<p><strong>Conclusion:</strong></p>
<p>In these types of issues always examine the data and determine if we are really seeing the whole picture. In this particular case we had to question every device in the path of the data before we ultimately found the root cause. In summary, the pain was being caused by a combination of the client device not handling resets well and a low default idle timeout set on the VLAN.</p>
<p>Author: Keith Abluton, Sr. Support Escalation Engineer</p>]]></content:encoded>
    </item>
    <item>
      <title>Error While Configuring WAP–”The Underlying Connection Was Closed”–Part 2</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/error-while-configuring-wapthe-underlying-connection-was-closedpart-2</link>
      <pubDate>Mon, 22 Jun 2015 10:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/06/22/error-while-configuring-wapthe-underlying-connection-was-closedpart-2/</guid>
      <description><![CDATA[Last week I ran into an issue that was similar in behavior to something that I covered in another...]]></description>
      <content:encoded><![CDATA[<p>Last week I ran into an issue that was similar in behavior to something that I covered in another previous <a href="/b/keithab/archive/2015/04/13/error-while-configuring-wap-the-underlying-connection-was-closed.aspx">post</a>. I am inclined to think that we will see more calls similar to this so I thought I would take some time to show you what the cause was and how to resolve it.</p>
<p><strong>Problem</strong></p>
<p>Running the configuration wizard on the WAP Server generates the following error:</p>
<p><em>&ldquo;An error occurred when attempting to establish a trust relationship with the federation service. Error: The underlying connection was closed: An unexpected error occurred on a send.&rdquo;</em></p>
<p>Figure 1 shows the error we see in the wizard.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3C29C198.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3C29C198.png"><img width="533" height="438" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4D9CB321.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4D9CB321.png" border="0" /></a></p>
<p>Fig. 1</p>
<p><strong>Data Gathering and Analysis</strong></p>
<p>Checking the AD FS Admin event log on the WAP Server we see an Event ID 393 that corresponds to the time we received the error from the wizard (Figure 2).</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_0D692A58.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_0D692A58.png"><img width="550" height="357" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_02CDEDA7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_02CDEDA7.png" border="0" /></a></p>
<p>Fig. 2</p>
<p>I also used Netmon 3.4 to capture a trace and see what was happening on the wire. Filtering the traffic for TCP traffic coming from the ADFS Server I can see the below behavior (Figure 3).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_48E13B6B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_48E13B6B.png"><img width="564" height="345" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_41585CAF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_41585CAF.png" border="0" /></a></p>
<p>Fig. 3</p>
<p>As you can see there the TCP 3 way handshake sets up, there is a SSL/TLS Client Hello from the WAP Server and immediately the ADFS server resets the connection.</p>
<p>Since we have seen other issues that are caused by an incorrect SNI header that is the first place I checked. The SNI header value is <strong>fs.fabrikam.com</strong> (Figure 4).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_557409E9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_557409E9.png"><img width="568" height="370" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0B0EE6B3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0B0EE6B3.png" border="0" /></a></p>
<p>Fig. 4</p>
<p>Back on the ADFS Server I run the command <strong>netsh http show ssl</strong> and verify that this is the correct value that is bound to port 443 (Figure 5).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_6A1E04BC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_6A1E04BC.png"><img width="581" height="338" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_3BC70FC0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_3BC70FC0.png" border="0" /></a></p>
<p>Fig. 5</p>
<p>This issue was a little harder to diagnose than some of the previous ones we had seen. There was no corresponding event on the ADFS Server. We finally came to the conclusion that it was a protocol issue and found out that TLS 1.0 had been disabled on the WAP and ADFS Server. This has become a common practice because of some of the recent attacks such as Poodle.</p>
<p>Below is a summary of the values for the following key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols</p>
<p>&nbsp;</p>
<p><b>ADFS Server</b>:</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]</p>
<p>&quot;DisabledByDefault&quot;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]</p>
<p>&quot;DisabledByDefault&quot;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]</p>
<p>&quot;Enabled&quot;=dword:00000000</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]</p>
<p><span style="background-color:#ffffff;">&quot;DisabledByDefault&quot;=dword:00000001</span></p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]</p>
<p><span style="background-color:#ffff00;">&quot;Enabled&quot;=dword:00000000</span></p>
<p><b>WAP Server:</b></p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client]</p>
<p>&quot;DisabledByDefault&quot;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client]</p>
<p>&quot;DisabledByDefault&quot;=dword:00000001</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]</p>
<p>&quot;Enabled&quot;=dword:00000000</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0]</p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client]</p>
<p><span style="background-color:#ffff00;">&quot;DisabledByDefault&quot;=dword:00000001</span></p>
<p>[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server]</p>
<p>&quot;Enabled&quot;=dword:00000000</p>
<p>As you can see TLS 1.0 Server and Client was disabled on both machines.</p>
<p><strong>Resolution</strong></p>
<p>In order to get this working again we had to enable TLS 1.0 on both the WAP and ADFS Server. In particular ADFS (Server) and WAP (Client) had to be enabled. We are likely to see this more often as companies become more aware of threats and attempt to lock down protocols on servers.</p>
<p></p>
<p><strong>Update:</strong>We realized that some people may be hesitant to use TLS 1.0 so we did some additional testing. It turns out that this is an issue with .NET Framework 4 not using TLS 1.1 or 1.2. By adding a simple registry key to the WAP Server you can get this functioning with TLS 1.0 disabled and TLS 1.1 or 1.2 enabled.</p>
<div class="WordSection1">
<p>Location: <strong>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319</strong></p>
<p>DWORD Value: <strong>SchUseStrongCrypto</strong></p>
<p>Value: <strong>1</strong></p>
</div>
<p></p>
<p>Reboot the WAP Server after adding the key and you should be good to go.</p>
<p></p>
<p><strong>Note: If the information contained here was useful please let me know in the comments below. Also, if there are any corrections needed or you would like to see future content on a particular subject please let me know that as well. Thanks!</strong></p>
<p><strong><br /></strong>Special thanks to Ian Parramore for this research and troubleshooting!<strong><br /></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Publishing SharePoint 2010 with UAG – Cannot Check Out Documents and They May Be Read-Only</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/publishing-sharepoint-2010-with-uag-cannot-check-out-documents-and-they-may-be-read-only</link>
      <pubDate>Wed, 22 Apr 2015 11:44:11 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/04/22/publishing-sharepoint-2010-with-uag-cannot-check-out-documents-and-they-may-be-read-only/</guid>
      <description><![CDATA[&nbsp;
Some of the more frustrating issues I come across when supporting UAG are encountered when...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>Some of the more frustrating issues I come across when supporting UAG are encountered when publishing SharePoint. It seems as though SharePoint 2010 is particularly vulnerable to oddities when publishing it through UAG or any reverse proxy for that matter.&nbsp; Ben Ari has a great blog that goes a long way to explaining why it can be challenging.</p>
<p><a title="https://blogs.technet.com/b/ben/archive/2010/12/29/sharepoint-publishing-concepts-and-considerations.aspx" href="/b/ben/archive/2010/12/29/sharepoint-publishing-concepts-and-considerations.aspx">https://blogs.technet.com/b/ben/archive/2010/12/29/sharepoint-publishing-concepts-and-considerations.aspx</a></p>
<p>I used the concepts Ben laid out but I wanted to show you exactly what I did to solve this particular problem.</p>
<p><em>Note: In the resolution below I am making an assumption that you are using SSL on your UAG trunk to publish SharePoint. I highly recommend using SSL for security reasons.</em></p>
<p><strong>Problem</strong></p>
<p>You have SharePoint 2010 published through Unified Access Gateway 2010 but external users are unable to check out documents. Also, when choosing to Edit them they are &ldquo;Read-Only&rdquo;.</p>
<p>As you can see in Figure 1 below that the client is going to try to Check Out a document that is in the Shared Documents area.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_61B361F5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_61B361F5.png"><img width="580" height="364" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_157B5847.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_157B5847.png" border="0" /></a></p>
<p>Fig. 1</p>
<p>The user gets the below error which states <em>&ldquo;This document could not be checked out. You may not have permission to check out the document or it is already checked out or locked for editing by another user.&rdquo;</em> (Figure 2)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2C3D3081.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2C3D3081.png"><img width="589" height="370" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_631A1578.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_631A1578.png" border="0" /></a></p>
<p>Fig. 2</p>
<p>You may also see an issue if you click on the document link and try to Edit it through the &ldquo;Open Document&rdquo; interface.&nbsp; (Figure 3)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_4FF8E8CC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_4FF8E8CC.png"><img width="598" height="378" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_3B7629FF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_3B7629FF.png" border="0" /></a></p>
<p>Fig. 3</p>
<p>The document opens up in Word or Excel but on the header bar is says &ldquo;Read-Only&rdquo;. (Figure 4)</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_6B33D27E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_6B33D27E.png"><img width="588" height="431" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_066C2B80.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_066C2B80.png" border="0" /></a></p>
<p>Fig. 4</p>
<p>&nbsp;</p>
<p><strong>Resolution</strong></p>
<p>To resolve this issue I have documented the exact steps I went through in my test lab.&nbsp; The figure below shows the only existing Alternate Access Mappings that existed before we started steps to resolve. (Figure 5).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_018977C4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_018977C4.png"><img width="597" height="341" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_15A2944D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_15A2944D.png" border="0" /></a></p>
<p>Fig. 5</p>
<p>&nbsp;</p>
<p>1.) From the SharePoint 2010 Central Administration click on Manage Web Applications (Figure 6).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_378DF6D1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_378DF6D1.png"><img width="600" height="399" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0766AC0E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0766AC0E.png" border="0" /></a></p>
<p>Fig. 6</p>
<p>2.) Highlight the application you are publishing through UAG and click Extend to extend the web application. (Figure 7)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2232D21A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2232D21A.png"><img width="602" height="400" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4B3D7116.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4B3D7116.png" border="0" /></a></p>
<p>Fig. 7</p>
<p>3.) You will need to change the port to 80 (or 443 if you are set up for SSL) and you will also set a host header. Make up something unique but remember it for later. In this case I just called it &ldquo;spexternal&rdquo;. (Figure 8)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_007D23EC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_007D23EC.png"><img width="456" height="495" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_2987C2E8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_2987C2E8.png" border="0" /></a></p>
<p>Fig. 8</p>
<p>4.) Scroll down on this same step and set the URL to be what your external users will use to access the application from outside your company. In this case I used <a href="https://sp2010.fabrikam.com">https://sp2010.fabrikam.com</a>&nbsp; (Figure 9)</p>
<p>Set your zone to one that is not already being used. In this case I used Internet. (Figure 9)</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_125C486A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_125C486A.png"><img width="465" height="502" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_747DC468.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_747DC468.png" border="0" /></a></p>
<p>Fig. 9</p>
<p>5.) Go back to the main page of your SharePoint Central Administration and click on &ldquo;Configure Alternate Access Mappings&rdquo; (Figure 10).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_445679A5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_445679A5.png"><img width="521" height="347" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_716B6673.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_716B6673.png" border="0" /></a></p>
<p>Fig. 10</p>
<p>6.) You will notice that there is now an new AAM for the Internet Zone (Figure 11).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_6F316E68.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_6F316E68.png"><img width="532" height="295" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_757844F6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_757844F6.png" border="0" /></a></p>
<p>Fig. 11</p>
<p>7.) Click on the right hand side where it says Alternate Access Mapping Collection and choose &ldquo;Change Alternate Access Mapping Collection&rdquo;. (Figure 12)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7095913A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7095913A.png"><img width="539" height="294" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_00A45FF2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_00A45FF2.png" border="0" /></a></p>
<p>Fig. 12</p>
<p>8.) Again select the application you are publishing. In this case it is SharePoint &ndash; 80 (Figure 13).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7BC1AC35.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7BC1AC35.png"><img width="543" height="355" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_690CB27E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_690CB27E.png" border="0" /></a></p>
<p>Fig. 13</p>
<p>9.) Now you should see the AAMs that pertain only to that application. (Figure 14). Click Add Internal URLs.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2708D3EE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2708D3EE.png"><img width="552" height="305" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_464B7AC1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_464B7AC1.png" border="0" /></a></p>
<p>Fig. 14</p>
<p>10) Under the URL protocol, host and port are you will need to put the name you came up with in Step 3. In my case it was &ldquo;spexternal&rdquo; and since the application is published on 80 I would use &ldquo;http&rdquo; as the protocol. Figure 15 shows that combined it would be <a href="https://spexternal">https://spexternal</a>&nbsp;</p>
<p>You also want to make sure that the Zone you chose in Step 4 is the one selected in the Zone dropdown box.</p>
<p>Click Save.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_031CF5F8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_031CF5F8.png"><img width="554" height="337" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5E1F357E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5E1F357E.png" border="0" /></a></p>
<p>Fig. 15</p>
<p>11.) You should have something similar to Figure 16 now in your AAMs. It shows that the request that will be coming to SharePoint from the UAG Server will be <a href="https://spexternal">https://spexternal</a> and the URL that &ldquo;Internet&rdquo; users will utilize is <a href="https://sp2010.fabrikam.com">https://sp2010.fabrikam.com</a></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_593C81C2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_593C81C2.png"><img width="549" height="272" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_570289B7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_570289B7.png" border="0" /></a></p>
<p>Fig. 16</p>
<p>12.) The last step is to edit the publishing rule on UAG to reflect the changes you made on SharePoint. In this case I went in to the &ldquo;Web Servers&rdquo; tab of the publishing rule and made sure that 80 is in the &ldquo;HTTP Port:&rdquo; field and that the &ldquo;Replace the host header with the following&rdquo; is checked and that it is using the name we chose in Step 3. In this case &ldquo;spexternal&rdquo;. (Figure 17). Click OK and then Activate in UAG and wait until it is synchronized.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_04177686.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_04177686.png"><img width="355" height="535" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_7B2A74F7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_7B2A74F7.png" border="0" /></a></p>
<p>Fig. 17</p>
<p>Congratulations! If you did everything correctly you should now be able to Checkout documents and editing them will not show &ldquo;Read-Only&rdquo;.</p>
<p>&nbsp;</p>
<p><strong>Conclusion</strong></p>
<p>Publishing SharePoint 2010 can be tricky especially through UAG 2010. In this article I explained how to properly configure AAMs in SharePoint and the changes you needed to make in UAG to get certain functions working correctly for external users.</p>
<p>Cheers!</p>
<p><strong>Note: If the information contained here was useful please let me know in the comments below. Also, if there are any corrections needed or you would like to see future content on a particular subject please let me know that as well. Thanks!</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Error While Configuring WAP–The Underlying Connection Was Closed</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/error-while-configuring-wapthe-underlying-connection-was-closed</link>
      <pubDate>Mon, 13 Apr 2015 20:04:20 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/04/13/error-while-configuring-wapthe-underlying-connection-was-closed/</guid>
      <description><![CDATA[&nbsp;
We have seen a couple of these issues this week when running the Web Application Proxy...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>We have seen a couple of these issues this week when running the Web Application Proxy wizard to complete an install. I am pretty sure we will see quite a few more of these so I thought I would write up a quick blog on the issue.</p>
<p><strong>Problem</strong></p>
<p>After installing the role for Web Application Proxy you are trying to finish the configuration wizard but you encounter the below error.</p>
<p><em>&ldquo;An error occurred when attempting to establish a trust relationship with the federation service. Error: The underlying connection was closed: An unexpected error occurred on a send.&rdquo;</em></p>
<p>Figure 1 shows the error we see in the wizard.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture_385DB039.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture_5F00_385DB039.jpg"><img width="627" height="516" title="Capture" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="Capture" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture_thumb_330EC988.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture_5F00_thumb_5F00_330EC988.jpg" border="0" /></a></p>
<p>Fig. 1</p>
<p><strong>Data Gathering and Analysis</strong></p>
<p>It was not immediately obvious what was causing this error so the first place I looked for more information was in the Event Viewer. Under the ADFS Admin events you may find an Event ID 393.&nbsp; The details do not tell us much more than the error in the wizard.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture1_17D90138.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture1_5F00_17D90138.jpg"><img width="638" height="387" title="Capture1" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="Capture1" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture1_thumb_54FCBCBD.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture1_5F00_thumb_5F00_54FCBCBD.jpg" border="0" /></a></p>
<p>Fig. 2</p>
<p>I wanted to see what was happening on the wire so I set up Netmon 3.4 to capture the network trace and filtered it to see the traffic destined for the IP address of the ADFS Server. In this case it was 10.0.0.5. You would also want to take a trace from the ADFS server to make sure that the traffic is truly making it there.</p>
<p>We can see in Figure 3 that right after the Client Hello in the trace, the ADFS Server resets the connection.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture2_04BA653D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture2_5F00_04BA653D.jpg"><img width="655" height="340" title="Capture2" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="Capture2" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture2_thumb_18674ED1.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture2_5F00_thumb_5F00_18674ED1.jpg" border="0" /></a></p>
<p>Fig. 3</p>
<p>Drilling down into the Client Hello packet we find an extension called &ldquo;Server Name&rdquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture3_4824F750.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture3_5F00_4824F750.jpg"><img width="503" height="145" title="Capture3" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="Capture3" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture3_thumb_66060C02.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture3_5F00_thumb_5F00_66060C02.jpg" border="0" /></a></p>
<p>Fig. 4</p>
<p>As we can see the server name is <strong>fs.fabrikam.com</strong></p>
<p>The server name in the trace was what was put in the WAP configuration wizard during the second step (Figure 5).</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5A041BCE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5A041BCE.png"><img width="526" height="429" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_1727D754.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_1727D754.png" border="0" /></a></p>
<p>Fig. 5</p>
<p>We should compare this to the bindings in ADFS. From an administrative command prompt on the ADFS Server run the command <strong>netsh http show ssl</strong></p>
<p>Figure 6 shows the results of the netsh command.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture4_18F82D1B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture4_5F00_18F82D1B.jpg"><img width="518" height="426" title="Capture4" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="Capture4" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture4_thumb_78737E19.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture4_5F00_thumb_5F00_78737E19.jpg" border="0" /></a></p>
<p>Fig. 6</p>
<p>As we can see the bindings to port 443 do not match what was in the Server Name of the network trace.</p>
<p><strong>Resolution</strong></p>
<p>When planning your ADFS infrastructure always keep in mind what you want your external users to use as the FQDN. In this case the FQDN that was intended did not actually match the Federation Service name. I was able to easily remedy this by uninstalling the ADFS role and then reconfiguring it using the intended external FQDN as the Federation Service name. In the example above I would reconfigure it as <strong>fs.fabrikam.com</strong>. The Web Application configuration wizard will then complete successfully.</p>
<p><strong>Note: If the information contained here was useful please let me know in the comments below. Also, if there are any corrections needed or you would like to see future content on a particular subject please let me know that as well. Thanks!</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>When Troubleshooting Use All the Tools at Your Disposal (Part 2)</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/when-troubleshooting-use-all-the-tools-at-your-disposal-part-2</link>
      <pubDate>Sun, 29 Mar 2015 11:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/03/29/when-troubleshooting-use-all-the-tools-at-your-disposal-part-2/</guid>
      <description><![CDATA[Just this week I had another very interesting case that allowed me to really dig into some data and...]]></description>
      <content:encoded><![CDATA[<p>Just this week I had another very interesting case that allowed me to really dig into some data and it took the use of multiple tools to figure it out. This blog is targeted at folks that are either new to the IT field, thinking about getting in to the field, or are always looking to improve their troubleshooting skills.</p>
<p><strong>Problem</strong></p>
<p>Web proxy clients using TMG 2010 are not able to browse a certain website.&nbsp; Clients using Internet Explorer would see<strong>&ldquo;This page cannot be displayed&rdquo;</strong> error.</p>
<p>Clients not using TMG 2010 as their proxy can browse the site normally.</p>
<p><strong>Data Gathering and Analysis</strong></p>
<p>As with most TMG issue the first place I looked is Live Logging. It&rsquo;s very easy to narrow it down by querying for IP address that the client is using. Live Logging will allow me to see in real time what is being returned to TMG by the remote server and what TMG is returning to the client. It will also tell me right off the bat if TMG is Denying the request for some reason. Figure 1 below shows you what Live Logging reveals. <em>(Note: I removed the Destination IP and the Domain name from the Request field to protect the guilty)</em></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5BF7983A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5BF7983A.png"><img width="580" height="450" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_40C1CFEA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_40C1CFEA.png" border="0" /></a></p>
<p>Fig. 1</p>
<p>The first thing we notice is that TMG is allowing the request but is getting back an HTTP Status Code of <strong>301 Moved Permanently</strong> when proxying the request from the client.</p>
<p>I wanted to get additional information that Live Logging was not giving me so I set up Netmon 3.4 to get a trace on the wire.</p>
<p>Request from TMG to misbehaving website (Figure 2)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_50646BAC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_50646BAC.png"><img width="546" height="429" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0B4B9E76.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0B4B9E76.png" border="0" /></a></p>
<p>Fig. 2</p>
<p>Response from misbehaving website to TMG (Figure 3)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7F49AE41.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7F49AE41.png"><img width="544" height="398" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_08394081.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_08394081.png" border="0" /></a><br />Fig. 3</p>
<p>Notice that we get a <strong>301 Moved Permanently</strong> that tells us to go right back to the same place we already requested. Again, I changed the website name to protect the guilty. So the reason our web proxy client is getting the error is that the remote website throws TMG into an infinite loop of 301 redirects.</p>
<p>I wanted to make sure that I knew exactly how a 301 should be behaving so I consulted the Request For Comments (RFC) which in this case is RFC 2616. These are extremely dry and not a lot of fun to read but they tell you what you should expect.</p>
<p><a title="https://tools.ietf.org/html/rfc2616" href="https://tools.ietf.org/html/rfc2616">https://tools.ietf.org/html/rfc2616</a> (Figure 4)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3F162578.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3F162578.png"><img width="558" height="322" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_532F4201.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_532F4201.png" border="0" /></a></p>
<p>Fig. 4</p>
<p>So there is nothing in the RFC that says the new permanent URI cannot be the same as what you already requested. Obviously we get a very undesired behavior when this is the case.</p>
<p>Since a client that is not using TMG as the proxy obviously behaves differently I wanted to compare the two to see what is different. Figure 5 shows the GET request from a client that is not using TMG as a proxy.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2E318188.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2E318188.png"><img width="520" height="408" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_12FBB938.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_12FBB938.png" border="0" /></a></p>
<p>Fig. 5</p>
<p>In this case we get an immediate Status Code of 200 OK which is what we would expect (Figure 6).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_79278308.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_79278308.png"><img width="504" height="636" title="image" style="background-image:none;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border:0px;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0FE95B43.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0FE95B43.png" border="0" /></a></p>
<p>Fig. 6</p>
<p>Based on what I was seeing in the Netmon tracing I suspected that the misbehaving remote website was responding with a <strong>301 Moved Permanently</strong> in response to something it was or wasn&rsquo;t getting in the initial GET request. Comparing the requests from both client traces I determined that there were 2 major differences.</p>
<blockquote>
<p>1. ) TMG sends a VIA header when making the request for a web proxy client. Clients not using a proxy do not send this header when making a request.</p>
</blockquote>
<blockquote>
<p>2.) Clients not using TMG as their proxy send an Accept-Encoding header with a value of gzip, deflate. When TMG sends a GET request on behalf of a web proxy client it is not including the Accept-Encoding header.</p>
</blockquote>
<p>Using a client in my test lab that could go directly to the Internet without having to use a proxy I wanted to test 2 things. I wanted to add a VIA header although the client was not using a proxy and I also wanted to strip the Accept-Encoding header out of the request.&nbsp; Luckily there is a tool called <strong>Fiddler</strong> by Telerik that will allow you to do just that.</p>
<p>Fiddler is a great debugging tool that we use pretty frequently to troubleshoot web related issue.</p>
<p><a title="https://www.telerik.com/fiddler" href="https://www.telerik.com/fiddler">https://www.telerik.com/fiddler</a></p>
<p>Adding a VIA header to the request made no difference whatsoever, the web page loaded just fine. Stripping the Accept-Encoding: gzip, deflate header from the request, however, caused the remote website to behave with the 301 Moved Permanently infinite looping.</p>
<p>Customers usually want to know whose product is at fault in cases like this. For that I always go back to the RFC. If your product is following the RFC to the letter then it is pretty clear that the remote website is at fault. In this case there is nothing in the RFC that states that an Accept-Encoding header MUST be sent.</p>
<p>I was never able to get a response from the web admins at the remote offending website to find out exactly why their Apache server is behaving this way. The RFC is not specific and does not state that they CANNOT do what they are doing but it is just very odd and pretty unexpected.</p>
<p>In the end I was able to find a setting in TMG that would force it to send the Accept-Encoding: gzip header which apparently makes the remote site happy. This is accomplished in the TMG MMC, under Web Access Policy, then click HTTP Compression. If you add the remote site under the &ldquo;Request Compressed Data&rdquo; tab then it will actually send that header.</p>
<p><strong>Conclusion</strong></p>
<p>As in so many of the cases that we work here at Microsoft the answer is not always readily apparent. Sometimes you have to dig pretty deep and employ multiple tools to arrive at your answer. In this case I had to use no less than 3 tools (Live Logging, Netmon 3.4, Fiddler) and the RFC as a resource to find an acceptable solution for our customer.&nbsp; I hope that you enjoyed this article and it helps you to realize that troubleshooting can be a fun process especially when you use all of the tools at your disposal.</p>
<p>Cheers!</p>
<p><strong>Note: If the information contained here was useful please let me know in the comments below. Also, if there are any corrections needed or you would like to see future content on a particular subject please let me know that as well. Thanks!</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Building a Web Application Proxy Test Lab in Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/keithab/building-a-web-application-proxy-test-lab-in-azure</link>
      <pubDate>Wed, 11 Mar 2015 11:45:10 GMT</pubDate>
      <dc:creator><![CDATA[Keith Abluton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/keithab/2015/03/11/building-a-web-application-proxy-test-lab-in-azure/</guid>
      <description><![CDATA[This is Part 3 in an ongoing series that will help you take advantage of Azure by showing you how...]]></description>
      <content:encoded><![CDATA[<p>This is Part 3 in an ongoing series that will help you take advantage of Azure by showing you how you can utilize it to test different products before deciding to roll them out. </p> <p>Part 1 <a href="https://blogs.technet.com/b/keithab/archive/2015/02/18/creating-a-test-lab-for-free-in-azure.aspx">Creating a Test Lab for Free in Azure</a></p> <p>Part 2&nbsp; <a href="https://blogs.technet.com/b/keithab/archive/2015/03/03/configuring-your-first-vm-in-azure.aspx">Configuring Your First VM in Azure</a></p> <p>In Part 2 of the series I walked you through creating your first VM in Azure and we gave it the Active Directory Domain Services role and it is the only Domain Controller in your new domain. In this article I will walk you through installing Active Directory Certificate Services on your DC, installing a new server that will be your Active Directory Federation Services Server, and installing a third server that will hold the Web Application Proxy (WAP) role. Once those are complete we will publish the IIS Server that is running on your Domain Controller. External clients will be able to access it through WAP.</p> <p><strong>Install the Active Directory Certificate Services Role on your DC</strong></p> <p>The reason for doing this is twofold . First, certificates are required for some of the aspects of the lab. The second reason is that doing this will also install Internet Information Server (IIS) on your domain controller which we will publish to the outside world with WAP.</p> <p>To get started installing Active Directory Certificate Services:</p> <p>1. Log in to the Azure Management Portal at <a href="https://manage.windowsazure.com"><strong>https://manage.windowsazure.com</strong></a></p> <p>2. Choose your domain controller and from the Dashboard click on&nbsp; “<em>Connect</em>”. Log in to the RDP session with your Administrator credentials.</p> <p>3. In Server Manager launch the “<em>Add Roles and Features</em>” Wizard. </p> <p>4. Choose to do a “<em>Role-based or feature-based installation.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_1FDB6390.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_1FDB6390.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_6D0B5D1B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_6D0B5D1B.png" width="337" height="241" /></a></p> <p>5. Select the DC in the Server Selection dialog.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_0843B61D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_0843B61D.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_65827E5F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_65827E5F.png" width="338" height="239" /></a></p> <p>6.) Choose “<em>Active Directory Certificate Services</em>” and click “<em>Next.”</em></p> <p>7.) Click “<em>Add Features.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture42_55764059.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture42_5F00_55764059.jpg"><img title="Capture42" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture42" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture42_thumb_30787FE0.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture42_5F00_thumb_5F00_30787FE0.jpg" width="278" height="289" /></a></p> <p>8. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture43_799E2B99.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture43_5F00_799E2B99.jpg"><img title="Capture43" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture43" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture43_thumb_4D812EA8.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture43_5F00_thumb_5F00_4D812EA8.jpg" width="335" height="238" /></a></p> <p>9. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture44_68B987A9.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture44_5F00_68B987A9.jpg"><img title="Capture44" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture44" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture44_thumb_7F7B5FE3.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture44_5F00_thumb_5F00_7F7B5FE3.jpg" width="244" height="174" /></a></p> <p>10. Again click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture45_3ACEC5A2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture45_5F00_3ACEC5A2.jpg"><img title="Capture45" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture45" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture45_thumb_2ECCD56E.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture45_5F00_thumb_5F00_2ECCD56E.jpg" width="244" height="174" /></a></p> <p>11. At Select Role Services choose “<em>Certification Authority” and “Certification Authority Web Enrollment.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture46_180D8DE5.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture46_5F00_180D8DE5.jpg"><img title="Capture46" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture46" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture46_thumb_52F4C0AE.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture46_5F00_thumb_5F00_52F4C0AE.jpg" width="244" height="173" /></a></p> <p>12. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture47_5531496A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture47_5F00_5531496A.jpg"><img title="Capture47" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture47" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture47_thumb_04EEF1EA.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture47_5F00_thumb_5F00_04EEF1EA.jpg" width="244" height="174" /></a></p> <p>13. Accept the defaults and click “<em>Next”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture49_2B50D535.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture49_5F00_2B50D535.jpg"><img title="Capture49" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture49" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture49_thumb_14255AB7.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture49_5F00_thumb_5F00_14255AB7.jpg" width="244" height="174" /></a></p> <p>14. At the confirmation click “<em>Install.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture50_5D4B0670.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture50_5F00_5D4B0670.jpg"><img title="Capture50" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture50" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture50_thumb_3F004F7A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture50_5F00_thumb_5F00_3F004F7A.jpg" width="244" height="173" /></a></p> <p>15. After the installation has succeeded click on the message “<em>Configuration required.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_413CD836.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_413CD836.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_708E4DC0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_708E4DC0.png" width="244" height="174" /></a></p> <p>16. Specify the credentials that will be used.</p> <p>17. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture53_2E8A6F30.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture53_5F00_2E8A6F30.jpg"><img title="Capture53" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture53" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture53_thumb_5075D1B4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture53_5F00_thumb_5F00_5075D1B4.jpg" width="244" height="179" /></a></p> <p>18. Choose “<em>Enterprise CA.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture54_0BC93773.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture54_5F00_0BC93773.jpg"><img title="Capture54" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture54" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture54_thumb_46B06A3C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture54_5F00_thumb_5F00_46B06A3C.jpg" width="244" height="180" /></a></p> <p>19. Choose “<em>Root CA.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture55_6D124D87.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture55_5F00_6D124D87.jpg"><img title="Capture55" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture55" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture55_thumb_51DC8537.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture55_5F00_thumb_5F00_51DC8537.jpg" width="244" height="179" /></a></p> <p>20. Choose to “<em>Create a new private key.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture56_58235BC5.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture56_5F00_58235BC5.jpg"><img title="Capture56" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture56" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture56_thumb_59F3B18C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture56_5F00_thumb_5F00_59F3B18C.jpg" width="244" height="179" /></a></p> <p>21. Accept the default cryptographic options and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture57_0A1D8D01.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture57_5F00_0A1D8D01.jpg"><img title="Capture57" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture57" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture57_thumb_^900F.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture57_5F00_thumb_5F00_5E00900F.jpg" width="244" height="179" /></a></p> <p>22. Leave whatever is the default at “<em>Specify the name of the CA.</em>” </p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture58_47414886.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture58_5F00_47414886.jpg"><img title="Capture58" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture58" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture58_thumb_5E0320C0.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture58_5F00_thumb_5F00_5E0320C0.jpg" width="244" height="180" /></a></p> <p>23. Leave it at a 5 year validity period and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture59_1D60D451.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture59_5F00_1D60D451.jpg"><img title="Capture59" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture59" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture59_thumb_6D39898D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture59_5F00_thumb_5F00_6D39898D.jpg" width="244" height="180" /></a></p> <p>24. Accept default locations for CA Database and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture60_288CEF4C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture60_5F00_288CEF4C.jpg"><img title="Capture60" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture60" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture60_thumb_4A7851D0.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture60_5F00_thumb_5F00_4A7851D0.jpg" width="244" height="179" /></a></p> <p>25. At Confirmation screen click “<em>Configure.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture61_1EC787D4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture61_5F00_1EC787D4.jpg"><img title="Capture61" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture61" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture61_thumb_4E853053.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture61_5F00_thumb_5F00_4E853053.jpg" width="244" height="179" /></a></p> <p>26. After you are notified that the roles were successfully installed click “<em>Close.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture62_69BD8954.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture62_5F00_69BD8954.jpg"><img title="Capture62" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture62" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture62_thumb_007F618F.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture62_5F00_thumb_5F00_007F618F.jpg" width="244" height="178" /></a></p> <p><strong>Creating a Certificate Template</strong></p> <p>Now that you have ADCS installed we will need to create a Certificate Template that will allow Computers to request a new certificate and allow the Private Key to be exported. </p> <p>To do this you will need to:</p> <p>1. Launch the Certification Authority management console from your Administrative Tools group.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_26E144DA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_26E144DA.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_1D881057.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_1D881057.png" width="380" height="137" /></a></p> <p>2. Highlight Certificate Templates and right-click, then choose “<em>Manage.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture64_38C06958.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture64_5F00_38C06958.jpg"><img title="Capture64" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture64" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture64_thumb_08991E95.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture64_5F00_thumb_5F00_08991E95.jpg" width="406" height="290" /></a></p> <p>3. Highlight the Web Server template, right-click and then choose “<em>Duplicate Template.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture65_23D17796.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture65_5F00_23D17796.jpg"><img title="Capture65" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture65" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture65_thumb_25A1CD5D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture65_5F00_thumb_5F00_25A1CD5D.jpg" width="405" height="320" /></a></p> <p>4. On the General tab give you template a name meaningful to you.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture66_39BAE9E6.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture66_5F00_39BAE9E6.jpg"><img title="Capture66" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture66" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture66_thumb_5BA64C6A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture66_5F00_thumb_5F00_5BA64C6A.jpg" width="213" height="290" /></a></p> <p>5. On the Request Handling tab check the “<em>Allow private key to be exported</em>” box.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture67_52B94ADC.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture67_5F00_52B94ADC.jpg"><img title="Capture67" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture67" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture67_thumb_3B8DD05E.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture67_5F00_thumb_5F00_3B8DD05E.jpg" width="214" height="293" /></a></p> <p>6. Under the Security tab add Domain Computers and Domain Controllers and then make sure they have the Enroll ability and then click “<em>Apply.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture74_6FC1F9A4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture74_5F00_6FC1F9A4.jpg"><img title="Capture74" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture74" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture74_thumb_3F9AAEE1.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture74_5F00_thumb_5F00_3F9AAEE1.jpg" width="215" height="293" /></a></p> <p>7. Highlight Certificate Templates, right-click on it and choose New, then “<em>Certificate Template to Issue.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5AD307E2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5AD307E2.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0A247D6D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0A247D6D.png" width="353" height="183" /></a></p> <p>8. Choose the template you configured earlier and click “<em>OK.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture70_6526BCF3.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture70_5F00_6526BCF3.jpg"><img title="Capture70" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture70" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture70_thumb_07121F78.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture70_5F00_thumb_5F00_07121F78.jpg" width="318" height="204" /></a></p> <p>9. Open an MMC and add the Certificate snap-in. Click “<em>OK.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7E251DE9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7E251DE9.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_402B8D2B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_402B8D2B.png" width="344" height="282" /></a></p> <p>10. Choose <em>“Computer Account.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_0231FC6D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_0231FC6D.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_56813270.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_56813270.png" width="288" height="215" /></a></p> <p>11. Select the Local computer and click “<em>Finish</em>”, then “<em>OK.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_58BDBB2C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_58BDBB2C.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_73F6142D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_73F6142D.png" width="287" height="215" /></a></p> <p>12. Expand the Personal branch and highlight Certificates, right-click on “<em>All Tasks</em>”, then “<em>Request New</em>” Certificate.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5A21DDFE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5A21DDFE.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_09DF867E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_09DF867E.png" width="375" height="137" /></a></p> <p>13. The Certificate Enrollment Wizard will launch. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture72_4BE5F5BF.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture72_5F00_4BE5F5BF.jpg"><img title="Capture72" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture72" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture72_thumb_0DEC6501.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture72_5F00_thumb_5F00_0DEC6501.jpg" width="283" height="206" /></a></p> <p>14. Highlight Active Directory Enrollment Policy and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture73_3E164075.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture73_5F00_3E164075.jpg"><img title="Capture73" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture73" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture73_thumb_6B2B2D43.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture73_5F00_thumb_5F00_6B2B2D43.jpg" width="282" height="208" /></a></p> <p>15. Check the box next to the template you configured and then click on the “<em>More information is required to enroll for this certificate.</em>” </p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_546BE5BA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_546BE5BA.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5AB2BC48.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5AB2BC48.png" width="282" height="204" /></a></p> <p>16. On the Subject Tab click on the Type dropdown box and choose Common Name and under value put in a wildcard asterisk followed by your domain name. So mine would be <strong>*.fabrikam.com</strong> and then click “<em>Add.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_6AC18AFF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_6AC18AFF.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5A491A04.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5A491A04.png" width="281" height="282" /></a></p> <p>17. Click “<em>Apply.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture77_4E4729D0.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture77_5F00_4E4729D0.jpg"><img title="Capture77" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture77" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture77_thumb_6C283E82.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture77_5F00_thumb_5F00_6C283E82.jpg" width="280" height="281" /></a></p> <p>18. Now click “<em>Enroll.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture79_205C67C9.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture79_5F00_205C67C9.jpg"><img title="Capture79" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture79" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture79_thumb_105029C3.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture79_5F00_thumb_5F00_105029C3.jpg" width="288" height="211" /></a></p> <p>19. You should get a message that is succeeded.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture80_7D9B300B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture80_5F00_7D9B300B.jpg"><img title="Capture80" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="Capture80" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture80_thumb_6D8EF205.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture80_5F00_thumb_5F00_6D8EF205.jpg" width="294" height="215" /></a></p> <p>20. You should now have a Wildcard certificate for your domain installed in your Certificate Store and you will be able to export that certificate with the private key when we need it later.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_13F0D551.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_13F0D551.png"><img title="image" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_712F9D93.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_712F9D93.png" width="368" height="180" /></a></p> <p>&nbsp;</p> <p><strong>Create and Configure Your ADFS Server</strong> </p> <p>I will assume that you are somewhat familiar with creating a machine and that you followed <a href="https://blogs.technet.com/b/keithab/archive/2015/03/03/configuring-your-first-vm-in-azure.aspx">Part 2 of this series</a>. </p> <p>To get started creating the ADFS Server:</p> <p>1. While logged in to the Azure Management Portal click on “<em>Virtual Machines</em>” and then create a new Virtual Machine. </p> <p>2. From the Gallery pick Windows Server 2012 R2 Datacenter as the image you will use.</p> <p>3. Under the “Virtual Machine Configuration” menu choose your name, the Tier you will be using, the size of the VM, the name you used as administrator when you configured your DC, and the password.</p> <p>4. Choose your existing cloud service (needs to be the same one where you DC is located) and use the same Storage Account which was used for your DC.</p> <p>5. Provision the machine and wait until the status in the portal says “Running.”</p> <p>6. Connect to the new machine and log in with your administrator credentials.</p> <p>7. I found the easiest way to add the computer to the domain is to open PowerShell as an Administrator and use the command <strong>Add-Computer –DomainName fabrikam.com&nbsp;&nbsp; </strong>(Note: If you did not use<strong> fabrikam.com</strong> as your domain substitute your own domain name in).</p> <p>8. You will be prompted for your domain admin credentials and then you will need to restart after it is completed.</p> <p>9. After the machine has been restarted it is now a member of the domain and we will add the Active Directory Federation Services role using the <em>Add Roles and Features Wizard.</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture85_131B0018.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture85_5F00_131B0018.jpg"><img title="Capture85" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture85" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture85_thumb_3506629C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture85_5F00_thumb_5F00_3506629C.jpg" width="397" height="282" /></a></p>   <p>10. Click Next at every choice and just accept all the defaults.</p> <p>11. After feature is installed you will need to configure the service.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_45153153.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_45153153.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_2D7D83E0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_2D7D83E0.png" width="393" height="280" /></a></p> <p>12. Before finalizing the configuration of the ADFS role you should request a certificate that will be used by ADFS.</p> <p>13. Open an MMC and add the Certificates Snap-in (Local Computer). </p> <p>14. Expand the Personal branch and right-click on “<em>Certificates</em>”, choose “<em>All Tasks</em>”, then “<em>Request New Certificate.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7D56391C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7D56391C.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_73FD0499.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_73FD0499.png" width="512" height="209" /></a></p> <p>15. This will start the Certificate Enrollment Wizard. Click “<em>Next”</em>, leave the Active Directory Enrollment Policy selected and click “<em>Next”</em>.</p> <p>16. Put a check next to WebServer(PrivateKeyExportable) which was the template you created earlier. You will then need to click on the “<em>More information is required to enroll for this certificate. Click here to configure settings.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2111F168.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2111F168.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_03336D67.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_03336D67.png" width="359" height="261" /></a></p>  <p>17. Under the Type drop down box choose common name, type in whatever you want to call your Federation Server. You can use the actual server name or deviate from that. I chose <strong>fs.fabrikam.com. </strong>Click “<em>Add.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_13423C1E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_13423C1E.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_3C4CDB1A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_3C4CDB1A.png" width="311" height="311" /></a></p> <p>18. Your new CN will appear on the right hand side and then click “<em>Apply.</em>”<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_097CD4A6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_097CD4A6.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_6B9E50A4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_6B9E50A4.png" width="307" height="307" /></a></p>  <p>19. Enrollment should succeed and you should now see the certificate you requested in your Personal Certificates branch.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2DA4BFE6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2DA4BFE6.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5D626865.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5D626865.png" width="473" height="206" /></a></p> <p>20. Go back to your Add Roles and Feature Wizard and click on “<em>Configure the federation service on this server</em>” . This will start the Active Directory Federation Services Configuration Wizard. Leave “<em>Create the first federation server in a federation server farm</em>” as the choice and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3864A7EC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3864A7EC.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_6ED559EE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_6ED559EE.png" width="471" height="346" /></a></p> <p>21. At the next step just specify the current user as the account you want to use to perform the federation service configuration. Click “<em>Next.”</em></p> <p>22. You will now choose the certificate you created earlier, give your Federation Service a name, give it a Display Name, and choose “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_10C0BC73.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_10C0BC73.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_00484B78.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_00484B78.png" width="469" height="345" /></a></p> <p>23. The next step will let you know that Group Managed Service Accounts are not available because the KDS Root Key has not been set. It will give you the PowerShell command that you need to run. Click OK to acknowledge it.</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3DD839F2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3DD839F2.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4D0EA2BF.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4D0EA2BF.png" width="467" height="346" /></a></p> <p>24. Open an Administrator PowerShell Command window and then run the command.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2AB99DF7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2AB99DF7.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5A774676.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5A774676.png" width="387" height="93" /></a></p> <p>25. Now specify the Group Managed Service Account that you want created and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5CB3CF32.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5CB3CF32.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_1E4E0B7F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_1E4E0B7F.png" width="440" height="324" /></a></p> <p>26. Leave the choice “Create a database on this server using Windows Internal Database” and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_0E41CD79.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_0E41CD79.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_16C52CC3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_16C52CC3.png" width="440" height="324" /></a></p> <p>27. At the Review Options screen click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_7F99B244.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_7F99B244.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_43DCAA42.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_43DCAA42.png" width="439" height="322" /></a></p> <p>28. Assuming you did everything correctly you should get a message that All Prerequisites checks passed. Click “<em>Configure</em>.”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_2CB12FC4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_2CB12FC4.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_1E754785.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_1E754785.png" width="435" height="320" /></a></p> <p>29. You should get a Results screen that tells you “<strong>This server was successfully configured</strong>”. Click “<em>Close.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_20459D4C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_20459D4C.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_64889549.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_64889549.png" width="438" height="322" /></a></p> <p>Congratulations! You now have an ADFS Server in your Azure test lab.</p> <p><strong>Create and Configure Your Web Application Proxy Server</strong> </p> <p>Again I will assume at this point that you are familiar with creating a new virtual machine in Azure. In your Azure Management Portal create a new virtual machine that will be your WAP Server. After it has been created you will need to connect to it via RDP. </p> <p>To get started creating the Web Application Server:</p> <p>1.) Add your new server to the domain and reboot it.</p> <p>2.) Export the wildcard certificate you created earlier on your Domain Controller and copy the file over to your new WAP Server. Import the wildcard certificate into the Certificate Store (Local Computer) under the Personal Certificates branch.</p> <p>3.) Start the Add Roles and Features Wizard on the WAP Server. Once you get to the Server Roles section put a check box next to Remote Access and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_14463DC9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_14463DC9.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_036199D9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_036199D9.png" width="438" height="313" /></a></p> <p>4. Click “<em>Next”</em> at the Select Features screen.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_254CFC5D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_254CFC5D.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_77623A55.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_77623A55.png" width="440" height="313" /></a></p>  <p>5. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_24772724.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_24772724.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4B47CE15.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4B47CE15.png" width="439" height="310" /></a></p> <p>6. At the Select Role Services put a check box next to Web Application Proxy and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3826A169.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3826A169.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_636DC921.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_636DC921.png" width="439" height="312" /></a></p> <p>7. Click “<em>Add Features.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_53618B1B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_53618B1B.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_42E91A20.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_42E91A20.png" width="313" height="325" /></a></p> <p>8. Click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture107_4FE2FA31.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture107_5F00_4FE2FA31.jpg"><img title="Capture107" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture107" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture107_thumb_4DA90226.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture107_5F00_thumb_5F00_4DA90226.jpg" width="314" height="222" /></a></p>    <p>9. Click “<em>Install.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture108_21F8382A.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture108_5F00_21F8382A.jpg"><img title="Capture108" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture108" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture108_thumb_51B5E0A9.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture108_5F00_thumb_5F00_51B5E0A9.jpg" width="320" height="228" /></a></p> <p>10. After the install succeeds you will need to click “<em>Open the Web Application Proxy Wizard”</em> to finish the configuration.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3F00E6F2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3F00E6F2.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_3CC6EEE7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_3CC6EEE7.png" width="244" height="196" /></a></p> <p>11. Click “<em>Next”</em> at the Welcome screen.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_430DC575.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_430DC575.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0E6FF9EB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0E6FF9EB.png" width="244" height="199" /></a></p> <p>12. Select your Federation Service Name and credentials. <strong>(Note:&nbsp; Since my federation service names differs from the actual name of the ADFS server, I had to either add a HOSTS name entry or create a CNAME in DNS so that the WAP Server knows how to resolve the FQDN of&nbsp; fs.fabrikam.com ).</strong></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_14B6D079.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_14B6D079.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_322BB236.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_322BB236.png" width="334" height="274" /></a></p> <p>13. Now we select the wildcard certificate that was imported earlier and click “<em>Next”</em>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_5B365132.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_5B365132.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_0AF3F9B2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_0AF3F9B2.png" width="337" height="275" /></a></p> <p>14. The next screen will show you the PowerShell command that will be run under the covers. Click “<em>Configure</em>.”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3F2822F8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3F2822F8.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_47AB8242.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_47AB8242.png" width="343" height="281" /></a></p>  <p>15. If all went right you should get a message that the configuration was successful. Click “<em>Close.</em>”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_379F443C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_379F443C.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_675CECBB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_675CECBB.png" width="352" height="287" /></a></p>  <p>Congratulations! Web Application Proxy is now installed on your server.</p> <p><strong>Configuring WAP to Publish Your First Application</strong></p> <p>We are now going to configure your WAP Server to publish IIS which is running on your Domain Controller. This is just a very basic rule but demonstrates how to publish something from your Azure virtual machine domain to the outside world.</p> <p>1. From your Administrative Tools program group double-click on Remote Access Management.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_6DA3C349.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_6DA3C349.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5201C804.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5201C804.png" width="400" height="337" /></a></p> <p>2. Click “<em>Next”</em> at the Welcome screen.</p> <p>3. Choose “Pass-through” as the authentication method and click “<em>Next.”</em></p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_45FFD7D0.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_45FFD7D0.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4A78E948.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4A78E948.png" width="392" height="319" /></a></p> <p>4. Call it anything you like in the Name dialog. The External URL will be what external clients type into their browser to access the application and should be prefaced by HTTPS. Choose the Wildcard certificate you imported previously. The Backend Server URL will be used by WAP to proxy the request. In the lab we created this should be the FQDN of your domain controller prefaced by HTTP. So in my case it is <strong>http:\\dc1.fabrikam.com</strong>. You will get a Warning at the top but just ignore it. Click “<em>Next”</em>.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_53687B87.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_53687B87.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_74E7AB16.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_74E7AB16.png" width="393" height="322" /></a></p>  <p>5. At the Confirmation screen click “<em>Publish</em>.”</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_12C8BFC9.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_12C8BFC9.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_62354210.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_62354210.png" width="389" height="317" /></a></p> <p>6. If all went right you should get a message that your application was published successfully. You can close the wizard.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3D378197.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3D378197.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_3AFD898C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_3AFD898C.png" width="390" height="319" /></a></p> <p>7. You should see your application listed in the Remote Access Management console.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture122_2129535D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture122_5F00_2129535D.jpg"><img title="Capture122" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture122" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture122_thumb_4A33F259.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture122_5F00_thumb_5F00_4A33F259.jpg" width="494" height="104" /></a></p> <p><strong>Allowing Access From the Outside World</strong></p> <p>Before you can actually access your published application externally you will need to create an Endpoint in Azure to allow the HTTPS traffic to be forwarded to your WAP Server. </p> <p>1. To do this go to your Azure Management Portal, highlight your WAP virtual machine, and click on “<em>Endpoints</em>” at the top.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture123_1E83285D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture123_5F00_1E83285D.jpg"><img title="Capture123" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Capture123" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/Capture123_thumb_0757ADDF.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/Capture123_5F00_thumb_5F00_0757ADDF.jpg" width="412" height="341" /></a></p> <p>2. Azure will show you what you currently have in the way of service endpoints. You will notice that PowerShell is there and so is Remote Desktop. Click “<em>Add (+)”</em> at the bottom of the screen.</p> <p>3. Choose to “<em>Add a Stand-Alone Endpoint</em>” and then click the arrow in the bottom right hand corner to move to the next screen.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_0274FA23.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_0274FA23.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_20560ED5.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_20560ED5.png" width="393" height="325" /></a></p> <p>4. In the drop down box for Name choose HTTPS and Protocol TCP. Public and Private Port will both be 443. Click the checkbox to complete.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_3F98B5A8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_3F98B5A8.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_4FA7845F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_4FA7845F.png" width="393" height="327" /></a></p> <p>5. Your endpoints will be updated and should reflect the change.</p>    <p><strong>Accessing From An External Client</strong></p> <p>The final step will be testing access from a client not located in Azure. You will need to add an entry to your clients HOSTS file so that it will be able to resolve the FQDN of both your Domain Controller and your Federation Service Name correctly. You can find the IP address that will be used in the hosts file by clicking on your Virtual Machines Dashboard and looking along the right hand column. There will be an IP address underneath the Public Virtual IP (VIP) Address section. So in my case I added host entries for <strong>fs.fabrikam.com</strong> and <strong>dc1.fabrikam.com</strong> to resolve to my Public IP. (Note: Since no authentication is being done at this time the <strong>fs.fabrikam.com</strong> entry&nbsp; is not really needed but I am putting it in there for future applications that will need it.)</p> <p>Once that is done you can test access to your IIS Server.<strong> (Note: You will get a warning about not trusting the certificate and that is to be expected unless you install the Root CA from your DC in the certificate store on your client. You can safely ignore it and choose to continue.)</strong></p> <p>If you have done everything right you should see the IIS landing page.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_4AC4D0A3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_4AC4D0A3.png"><img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/87/94/metablogapi/image_thumb_5A676C65.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-87-94-metablogapi/image_5F00_thumb_5F00_5A676C65.png" width="533" height="333" /></a></p> <p>&nbsp;</p> <p><strong>Conclusion</strong></p> <p>I know I have covered a lot in this article and I hope it was valuable to you. Many of you may not have needed the detailed screenshots but I wanted to include them for those that did. I will be continuing this series by building out other machines that will be needed in typical test labs. Please keep in mind that you pay for what you use in Azure. To minimize my costs I only leave my Domain Controller running when I am not actively testing or troubleshooting. By shutting down your other machines through the Azure Management Portal you will not be incurring expenses for them while they sit idle.</p> <p>Cheers!</p> <p><strong>Note: If the information contained here was useful please let me know in the comments below. Also, if there are any corrections needed or you would like to see future content on a particular subject please let me know that as well. Thanks!</strong></p>]]></content:encoded>
    </item>
  </channel>
</rss>