Need to setup Kerberos in my production farm
Hello All,
It seems every time that I have a customer who wants to setup Kerberos, it is into a farm that already exists. So I had to put these steps together for SharePoint 2010 recently for a customer and thought I would share it with all of you.
If your running Windows 2008 you need this
A Kerberos authentication fails together with the error code 0X80090302 or 0x8009030f on a computer that is running Windows Server 2008 or Windows Vista when the AES algorithm is used (https://support.microsoft.com/kb/969083)
Articles of interest
https://www.microsoft.com/en-us/download/confirmation.aspx?id=23176
https://technet.microsoft.com/en-us/library/ff829837
https://technet.microsoft.com/en-us/library/ff607695.aspx
Review for known issues
https://technet.microsoft.com/en-us/library/gg502606.aspx
Info to gather
- For each Farm, For Each Web Application provide the following
- App Pool Account
- AAM's
- Do we need to authenticate against any sources as the user?
- For each SQL Instance
- SQL Server access account
- FQDN and Netbios name
- Port used to access instance
- For SSRS
- SSRS Web Service URL
- Service account
Steps to follow to enable Kerberos for Web Application and SSRS
-
- Configure DNS Record and Service Accounts to be used with SharePoint Web Applications
- Insure that all URL's you will be using are listed in DNS as an A Record. If not work with your DNS administrator to create proper record type.
- For each Web Application perform the following
- Run the following commands
- Setspn -U -S HTTP/<AAM> <Serviceaccount>
- Setspn -U -S HTTP/<Netbios> <Serviceaccount>
-
- NOTE:You will have to run the command for each AAM separately except for AAM for HTTPS
- Run the following commands
- Set Kerberos Constrained Delegation, if needed NOTE: These steps will only work if the service account has had its SPN's created properly.
- Open Active Directory Users and Computers, and search each of the Service account, then perform the following steps for each of them
- Open Properties and click on the tab Delegation
- Select the check mark Expanded in bottom left corner
- Select Trust this user for delegation to specified services only
- Select Use any authentication protocol
- Click add button
- Select the Service account itself, as well as the Service account for all portals and services it will connect to
- Click Select All, and Click OK
- Once back to delegation tab select the check mark Expanded in bottom left corne
- Configure Web Applications
- Ensure Kerberos is Configured in IIS for each web site
- Open IIS Manager and Select Web Site
- Double click Authentication
- Select Windows Authentication
- Select Providers under Actions
- Verify that Negotiate is at the top of the list, if not Move it up.
- Ensure that Kernel Mode authentication is disabled
- Open IIS Manager and Select Web Site
- Double click Authentication
- Select Windows Authentication
- Click Advanced Settings
- Verify that Extended Protection is off and Kernel-mode authentication is unchecked.
- Configure Web Application to use Kerberos
- In central Admin go to Manage Web Application page
- Select Web Application
- Click on Authentication Providers
- Click on Default Zone (Or Zone configured in Classic Mode)
- Select Negotiate (Kerberos)
- Verify Web App authentication is working
- Close all browsers on your PC, then open a new browser and connect to Web Application.
- Go to Security event log on each Web Front End.
- Look for event id 4624 (Logon).
- And search for Logon Process = Kerberos
- From your index server access Web Application.
- Upload an office file, perform an incremental crawl, and search for document.
- Ensure Kerberos is Configured in IIS for each web site
- Configure Reporting Services
- Insure SQL Server is configured to use Kerberos
- Configure DNS and Service Account
- Insure that all URL's you will be using are listed in DNS as an A Record. If not work with your DNS administrator to create proper record type.
- For each instance of SQL using the SQL Service account run the following command
- Run the following commands
- Setspn -U -S MSSQLSVC/<FQDN>:<PORT <Serviceaccount>
- Setspn -U -S MSSQLSVC/<NETBIOS>:<PORT <Serviceaccount>
- Run the following commands
- Reboot SharePoint Servers
- Verify authentication
Run the following query against each instance of SQL
Select s.session_id, s.login_name, s.host_name, c.auth_scheme From sys.dm_exec_connections c inner join sys.dm_exec_sessions s on c.session_id = s.session_id
Review results under the
column Login_Name find your SharePoint Service accounts then look at
column auth_scheme and it should list Kerberos
- Configure DNS and Service Account
- Insure SQL Server is configured to use Kerberos
- Configure Reporting Services to use Kerberos
- Configure DNS and Service Account
- Insure that all URL's you will be using are listed in DNS as an A Record. If not work with your DNS administrator to create proper record type
- Using the SQL Reporting Service account and the URL for the reporting Web Service run the following command
- Setspn -U -S HTTP/<FQDN> <Serviceaccount>
- Setspn -U -S HTTP/<Netbios> <ServiceAccount>
- Using the SQL Reporting service account configure delegation
- Open Active Directory Users and Computers, and search each of the Portal Service account, then perform the following steps for each of them.
- Open Properties and click on the tab Delegation
- Select the check mark Expanded in bottom left corner
- Select Trust this user for delegation to specified services only
- Select Use any authentication protocol
- Click add button
- Select the SQL Reporting Service account
- Click Select All, and Click OK
- Once back to delegation tab select the check mark Expanded in bottom left corner
- Using the SQL service account configure delegation
- Open Active Directory Users and Computers, and search each of the Portal Service account, then perform the following steps for each of them.
- Open Properties and click on the tab Delegation
- Select the check mark Expanded in bottom left corner
- Select Trust this user for delegation to specified services only
- Select Use any authentication protocol
- Click add button
- Select the SQL Reporting Service account
- Click Select All, and Click OK
- Once back to delegation tab select the check mark Expanded in bottom left corner
- Configure DNS and Service Account
- Configure SSRS config files
- If you have multiple SQL Reporting servers then open the web.config file under <ProgramFile>\<SSRS> on each server and add the same machine key to each file
- You can generate a key using the site https://aspnetresources.com/tools/machineKey
- Add it to the element <System.web><MachineKey>
- On each SSRS server perform the following steps (Regardless if you have one server or multiple servers)
- Open ReportingServer.config
- Change the auth type by adding <RSWindowsNegotiate/> to the element <AuthenticationTypes>
- Modify the element <UrlRoot> by adding the Reporting Web Service url
- Open ReportingServer.config
- If you have multiple SQL Reporting servers then open the web.config file under <ProgramFile>\<SSRS> on each server and add the same machine key to each file
- Configure SharePoint
- Configure BackConnectionHostNames on all SSRS servers
- Following this article https://support.microsoft.com/kb/956158 add Netbios and FQDN of Reporting Web Service
- Reboot SSRS servers
- Configure Reporting Services page in Central Admin
- Set the Report Server Web Service URL
- If you have multiple SSRS servers add each to the integration as a separate node
- Set the desired Server Defaults
- Grant permissions to Web Applications using Reporting Service account
Using Reporting Service account run the following command for each Web Application except for central admin
$w = Get-SPWebApplication -Identity https://portal $w.GrantAccessToProcessIdentity("vmlab\svcSQLRS")
-
Using Site Settings configure Site Collection to host a report
-
Create and publish a report to your Site Collection
- Configure BackConnectionHostNames on all SSRS servers
- Configure DNS Record and Service Accounts to be used with SharePoint Web Applications
Hope you find this helpful.
Comments
- Anonymous
January 01, 2003
Thanks for putting this list of steps together. This post is in my Favs now.