Extranet Access to ProClarity Using ISA Server

advertisement
Extranet access to ProClarity Analytics Server Using ISA Server 2006 and Kerberos
April 2009
Sean Flanagan
Summary
One of the most common case subjects at Microsoft support is with regard to permissions being passed from one server
to another in a distributed environment. Security best practices recommend that company web servers be separated
from database servers, domain controllers and other core service servers. The separation of roles to different servers
presents the challenge of authenticating to a chain of those servers. By far, Kerberos is the method of choice for
delegating credentials in a distributed environment. It is also the only protocol in a Microsoft Windows Active Directory
environment capable of passing credentials over a second hop (that is, over a connection from a middle tier server to
one or more back end servers when the connection to the middle tier is initiated by a third client machine). By design,
Kerberos has a number of security restrictions which make it difficult to use outside of a trusted domain or forest.
Microsoft Internet Security and Acceleration Server (ISA Server) can effectively extend the boundaries of Kerberos
Delegation outside the domain so users accessing the company website over the Internet (without a VPN) can take
advantage of Kerberos Delegation and not be prompted for credentials at each ‘hop’ in the environment. ISA Server can
do this by taking advantage of Kerberos features which do not require a Ticket Granting Ticket (TGT) from the client
workstation to access resources.
Disclaimer: This whitepaper will discuss the general configuration of Kerberos delegation. However it is intended for
audiences that have successfully configured Kerberos delegation in their internal environment and are looking to extend
that functionality to users connecting from locations beyond the perimeter of the company forest. This whitepaper is
not intended as a guide for configuring Kerberos delegation for intranet domain users. For internal Kerberos
configuration, please see this blog post.
Section 1: Extending Kerberos delegation via ISA Server 2006
ISA Server 2006 and Kerberos V5 have the ability to verify a user without Kerberos and then authenticate them to Active
Directory using Kerberos. ISA has a multitude of authentication options including a customizable HTML Form or a
standard HTTP Windows authentication page. Through Protocol Transition, the ISA server converts the authentication
package presented by the client and transitions to Kerberos authentication and connects to IIS. With ‘Services For User
To Proxy’ (S4U2P) and Kerberos Constrained Delegation the IIS server can then obtain an MSOLAP service ticket for the
remote user even though the remote user did not present a TGT from the Key Distribution Center.
SSL bridging also gives the ISA server the ability to decrypt SSL traffic from the internet facing NIC, apply the firewall
rules, convert to the Kerberos protocol, re-encrypt and send the traffic out the internal network interface to the
intended web server using the internal SSL certificate. SSL is considered required for sensitive web traffic being
transmitted over the internet. The credential hop from the ISA server to IIS can either be by Kerberos Constrained
Delegation or by a standard Kerberos connection (Negotiate) which does not requiring delegation.
Section 2: Protocol Transition
The ‘double-hop’ from the IIS server to SSAS requires a specific configuration as Protocol Transition will not work with
unconstrained delegation. The application pool identity permissions also play a key role in the required trust settings on
Active Directory objects. In short, Protocol Transition and S4U2P allow a service account to use a service ticket instead
of a TGT to obtain a service ticket for another user. Protocol transition and KCD do have some limitations, which are:
 Requires IIS6+
 Requires a domain functional level of Windows 2003+
 Will not work on Windows XP or Server 2000. However, Protocol Transition can call services on these platforms
 Protocol Transition must be used with Constrained Delegation to access resources on another server
 Constrained Delegation is restricted to within the local domain – it cannot cross domain or forest trusts
 After the first ‘Constrained’ hop, all hops in the chain after that point must also be constrained
The access level of the IIS service identity also plays a role in Protocol Transition which I will refer to later in the
configuration section. The lab setup for this document uses the ‘Network Service’ account which must be configured to
delegate to a service “Using any authentication protocol”. Accounts that have a higher level of access to the server can
be configured to ‘Use Kerberos only’. For more information, see the article “Protocol Transition with Constrained
Delegation Technical Supplement” on MSDN.
Section 3: Setting up ISA server as a Reverse Proxy
ISA server has the ability to function as both a proxy and reverse-proxy. In the following configuration, ISA will act as a
reverse proxy and appear as the end-point for connecting users. However, in actuality it will pass along the web traffic
to the internal server configured on the firewall publishing rule. This section will focus on configuring ISA server to
publish an internal site on its internet facing adapter. In the sample configuration, the ISA and IIS servers are setup as:
The internal address of the web server (ProductionIIS1) is what the ISA server will connect to when forwarding traffic
from the internet. The External public address (proclarity.contoso.com) on the ISA server’s external NIC is what the
external internet users will use to connect to ProClarity. SSL is highly recommended for this connection. Also, the
public DNS address needs to be mapped to the IP address of the ISA server if users are going to use the DNS name to
connect. SSL encryption from ISA to the internal IIS site is optional.
The following descriptions and screenshots will go through the ISA configuration and will assume that the internal
ProClarity site is online and functioning for intranet users using Kerberos. The ISA server for contoso.local is ISA 2006
Standard Edition running on Windows Server 2003. After installation the ‘Edge Firewall’ template was applied via the
Configuration > ‘Networks’ page, ‘Templates’ tab on the Task Pane. Applying the template resets most of the server
configuration to the template. The following configuration steps continue after applying the template.
When installing ISA Server 2006, the wizard will present an opportunity to define the ‘Internal’ network. The internal
network range for the contoso.local domain is 192.168.0.1-192.168.255.254. The first step to configuring the ISA server
is telling the firewall where the internal network is:
 In the ‘ISA Server Management’ console, expand the ‘Configuration’ page and select Networks.
 On the default ‘Networks’ tab you will see the Internal network at the top of the list. For the contoso.local
domain the Internal network is configured as a network Range:
 If you click the ‘Network Rules’ tab you will see that for the Edge Firewall template ‘Network Address
Translation’ is configured for the internal network. Internal clients can use the ISA server as a Proxy server in
which all External (internet) bound traffic will be appended with the public IP address of the ISA server hiding
the internal addresses.
After the network ranges are defined the next step is to publish the internal ProClarity site to the internet. To do this we
will first need to create a ‘Web Listener’ which tells the ISA server to listen for requests from clients.
 To create a web listener for the ISA server, select ‘Firewall Policy’ below the ISA server name on the pages list.
The default firewall policy is to deny all traffic and you should see the ‘Last’ rule defined as such.
 On the Task Pane, select the ‘Toolbox’ tab > ‘New’ > Web Listener
 Name the Web listener with an appropriate name, which for contoso.local is ‘External SSL’. Click the “Next”
button”
 The next page is ‘Client Connection Security’. SSL encryption should be configured on any public website where
credentials will be transmitted. For the ‘proclarity.contoso.com’ public website a server authentication
certificate has already been installed. Ensure the first bullet in the list is selected ‘Require SSL secured
connections…’ and click next
 On the next page, select ‘External’ to tell the web listener to listen for requests from an IP address not in the
internal network ranges
 Uncheck the ‘ISA Server will compress content’ option and click next
 For the Listener SSL, click ‘Select Certificate’. For the Contoso ProClarity site we select the pre-installed
certificate ‘proclarity.contoso.com’, then click select and next
 On the Authentication settings page click the drop down and select “HTML Form Authentication” and make sure
the default ‘Windows(Active Directory)’ option is selected, then click next
 The public ProClarity site does not have SSO configured so we clear the ‘Enable SSO’ check box and click next. If
you have multiple web servers and websites in the same domain you can setup Single Sign On so that when an
external user navigates from one website/server to another they are not re-prompted to authenticate
 Click Finish to complete the wizard. To save and apply the configuration changes click ‘Apply’ on the Firewall
Policy page, then ok
The web listener is now configured to listen on port 443 for HTTPS requests from the external network. The final
sequence for configuring ISA is to publish the internal Website:
 Select the Firewall Policy page and in the task pane click the ‘Tasks’ tab
 Select ‘Publish Web Sites’ and enter an appropriate name for the publishing rule, then click next. For our site
the publishing rule is named ‘External ProClarity SSL site’
 Make sure the first bullet ‘Allow’ is selected, then click next
 We are publishing a single internal site however ISA has load balancing capability with the ability to monitor if
one of the nodes is not responding. For this page we select ‘Publish a single Web site’ then click next
 The Connection Security section is where you would configure the SSL connection from the ISA server to the
internal site. We are not encrypting this connection so the second options is selected: ‘Use non-secured
connection’
 Click next and enter the internal site name (that you use to connect on the intranet). Our internal server name
is ‘ProductionIIS1’ so that is what we will enter. If the ISA server is unable to resolve the internal site you can
check the box to ‘Use a computer name or IP address to connect to the published server’. This configuration
does not require that setting so we click next
 For the Path we enter “/*” which permits access to the entire website
 The Public Name is important because this must match the public DNS settings and SSL Certificate assigned
when adding the web listener. For this configuration we enter ‘proclarity.contoso.com’ and click next
 Select the ‘External SSL’ web listener from the dropdown list then click next. You also have the option to create
a new web listener here as well
 On the Authentication Delegation page we select ‘Kerberos constrained delegation’. Before clicking next we
verify the Service Principle Name that ISA will look for and ensure it is assigned to the IIS identity account
 We are granting access to all Authenticated Users and accept the default setting on the User Sets page, then
click next
 Click Finish to complete the wizard, then ok. To save and apply the configuration changes click ‘Apply’ on the
Firewall Policy page, then ok. The new rule should appear:
After the ISA server is configured we test the connection on the client machine by opening IE and connecting to
https://proclarity.contoso.com/pas. The HTML login page appears on the client:
Section 4: Configuring Active Directory for Protocol Transition
Configuring Active Directory for Protocol Transition is required to permit the IIS server to request access to resources
using service tickets instead of a TGT from the client machine. This section picks up after Kerberos has already been
configured successfully for the internal users. While the proclarity.contoso lab is configured to use KCD from the ISA
server to IIS, this is not a requirement. If you set the ISA server to use ‘Negotiate’ instead of ‘KCD’ then the ISA server
does not need to be trusted for delegation. There is an active debate about which setting is more secure. The latter
option (KCD) is the newest feature of ISA2006 and is required for SSL client certificates.
The ISA server in the contoso.local domain is using KCD so we configure the IIS computer account to trust the IIS
account:
 Open Active Directory Users and Computers and locate the computer account for the ISA server
 Right click the ISA computer account and select properties, then the Delegation tab
 For KCD from ISA to IIS, we select the 3rd option ‘Trust this computer for delegation to specified services only’
 In the sub-list we select ‘Use any authentication protocol’
 Next we must specify the specific service that the ISA server can delegate to by clicking ‘add’ then ‘Users or
Computers’
 The internal ProClarity website application pool identity is set to the ‘Network Service’ account so we select the
computer account for the IIS server. Type the name of the IIS application pool identity which in this case is
‘ProductionIIS1’, then ok
 In the ‘Add Services’ list, we select http and click ok
o Note: If a domain account was running the application pool for ProClarity we would select that domain
account instead of the IIS server name. The list of Services would only include the specific SPN’s
assigned to the domain account we select so the HTTP SPN’s would have to be assigned before
completing this step
 The properties page appears as follows:
Next we need to configure the IIS computer account for constrained delegation to the OLAP servers, which in this
environment are named ProductionSSAS1 and ProductionSSAS2. As our internal site is run by the Network Service
account we configure the IIS server computer account for delegation. If the application pool identity was set to a
domain account we would instead configure delegation on the domain account.








Open Active Directory Users and Computers and locate the computer account for the IIS server
Right click the IIS computer account and select properties, then the ‘Delegation’ tab
For KCD from IIS to SSAS, we select the 3rd option ‘Trust this computer for delegation to specified services only’
In the sub-list we select ‘Use any authentication protocol’
o Note: Protocol Transition requires a certain level of permissions on the IIS worker process identity for
the ‘Use Kerberos only’ option to work. If a domain account was running the website (as in a load
balanced configuration) then the option ‘Use Kerberos only’ could be selected here. For the Network
Service account, however, ‘Use any authentication protocol’ must be selected
Next we must specify the services that the IIS account can delegate to by clicking ‘add’ then ‘Users or
Computers’
The two Contoso production SSAS 2008 servers have their Analysis Services service running under a domain
account called ‘ssas’ so we enter the account ‘ssas’ and click ok
In the ‘Add Services’ list, we see a service for each SPN that is configured on the domain account and add both
ProductionSSAS1 and ProductionSSAS2
Click ‘apply’ to apply the changes. The Properties page for the contoso web account now looks like this:
After restarting the IIS services on ProductionIIS1 we are able to access the ProClarity website and views from a remote
user that is not on the domain or connecting through a VPN. At this point you will first want to re-test credentials
passing on the internal network, verify that is working and then test from an external connection.
Section 5: Summary and Future Versions
To access remote resources, Kerberos V5 has two extensions used in Protocol Transition, and Protocol Transition will
only work with constrained delegation. For more information on the mechanics of Protocol Transition and KDC, see the
links in the reference section at the end of this document. Troubleshooting constrained delegation can be difficult and a
network packet capture utility can be very useful to monitor the Kerberos traffic as you can see IIS picking up the
MSOLAPSvc.3 tickets. It is highly recommended to verify Kerberos as working internally before troubleshooting Protocol
Transition through the ISA server. Also, the IIS service will cache failed login attempts and these tickets cannot be
purged using kerbtray or klist, so rebooting the IIS server may be necessary to clear cached Kerberos tickets. For
additional Kerberos troubleshooting, please see the links section. The technologies referenced in this document apply
to applications other than ProClarity (SharePoint, Outlook) and the possibilities with ISA server are numerous. The
Enterprise Edition version has cluster and array capabilities for an enterprise level deployment.
ISA server 2006 is a 32-bit application and will only run on Windows Server 2003. It cannot run on Server 2008. The
next release of ISA Server, called Threat Management Gateway, is 64-bit only and will run on Windows Server 2008.
TMG is currently in Beta 2 and can be downloaded from the Microsoft website (RTM expected Q4 of 2009). Both ISA
and TMG have many other functions in addition to Reverse Proxy, and the firewall software is world class. Exploring
these platforms further for the possibilities they might offer is highly recommended.
Section 6: Links and References
ISA, KCD, and Protocol Transition:
 http://msdn.microsoft.com/en-us/library/aa480585.aspx
 http://msdn.microsoft.com/en-us/library/aa480609.aspx
 http://technet.microsoft.com/en-us/library/cc738207.aspx
 http://technet.microsoft.com/en-us/library/bb794858.aspx



http://www.microsoft.com/forefront/edgesecurity/isaserver/en/us/default.aspx
http://www.microsoft.com/forefront/edgesecurity/isaserver/en/us/tmg-beta.aspx
http://blogs.technet.com/isablog/
General Kerberos:
 http://technet.microsoft.com/en-us/library/cc772815.aspx
 http://blogs.technet.com/askds/archive/2008/06/13/understanding-kerberos-double-hop.aspx
 http://blogs.technet.com/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx
 http://blogs.technet.com/proclarity/archive/2008/12/22/proclarity-and-kerberos-delegation.aspx



http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1434
http://www.microsoft.com/downloads/details.aspx?FamilyID=f4db40af-1e08-4a21-a26bec2f4dc4190d&DisplayLang=en
http://support.microsoft.com/kb/926027
Download