First published on TECHNET on Jan 29, 2019
Hello, my name is Richard McIver and I’m a Premier Field Engineer with Microsoft specializing in System Center Configuration Manager.
I was recently working with a customer who suddenly started receiving a strange KDC error when attempting to run Configuration Manager reports from either within the Administration Console or the Reporting Services web portal. It took quite a bit of troubleshooting to isolate the root cause, so I’d just like to share our findings and resolution steps.
When running Configuration Manager reports that rely on Role Based Access Control (RBAC), SQL Server Reporting Services (SSRS) will attempt to communicate with Active Directory via Kerberos authentication to resolve the Security Identifier (SID) of the user.
However, when this customer attempted to run reports with RBAC embedded, the following error was displayed and the report failed to load.
The DefaultValue expression for the report parameter ‘UserTokenSIDs’ contains an error: The encryption type requested is not supported by the KDC. (rsRuntimeErrorInExpression)
The customer environment was SQL Server 2016 Reporting Services running on Windows Server 2012 R2, however I’ve since been able to replicate this issue on Windows Server 2016 as well.
Root Cause Analysis
We eventually traced the root cause down to a security policy settings on the reporting point server that was recently configured via domain Group Policy Object (GPO).
Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity OptionsNetwork security: Configure encryption types allowed for Kerberos: AES128_HMAC_SH1, AES256_HMAC_SHA1, Future encryption types selected
As configured, this setting has the effect of limiting the encryption types allowed for Kerberos authentication from the reporting point server to only AES128, AES256, and Future encryption types.
However, the service account used by the SQL Reporting Services service was not properly configured to support these algorithms. Instead, SSRS was attempting to authenticate using the RC4 encryption type, which is no longer allowed on the server, resulting in the KDC error.
In this case, the error can be resolved in one of two ways.
- Enable AES 128-bit and/or AES 256-bit encryption for the SQL Reporting Services service account
- Configure the Network security: Configure encryption types allowed for Kerberos policy setting on the reporting point server to include the RC4_HMAC_MD5 encryption type
Steps to enable AES encryption for the SQL Reporting Services service account
- Open Active Directory Users and Computers
- Browse to the user account used by SQL Reporting Services on the affected server
- Right-click the user account and select Properties
- Click on the Account tab
- Under Account options , check the box next to one or both of the following:
- This account supports Kerberos AES 128 bit encryption
- This account supports Kerberos AES 256 bit encryption
- Click OK
Steps to configure the policy setting Network security: Configure encryption types allowed for Kerberos
Method 1 – Local Security Policy
- On the affected server, open an elevated command prompt
- Type SECPOL and hit Enter
- In the Local Security Policy management console, expand Local Policies and click on Security Options
- Scroll down in the left-hand pane until you find the setting Network security: Configure encryption types allowed for Kerberos
- Right-click this setting and select Properties
- In the Local Security Settings tab, check the box next to RC4_HMAC_MD5 , AES128_HMAC_SHA1 , AES256_HMAC_SHA1 , and Future encryption types
- Click OK
Method 2 – Group Policy Object (GPO)
- Open the Group Policy Management console and edit a new or existing GPO
- In the Group Policy Management Editor , expand Computer ConfigurationPoliciesWindows SettingsSecurity SettingsLocal PoliciesSecurity Options
- Right-click on Network security: Configure encryption types allowed for Kerberos and click Properties
- On the Security Policy Setting tab, check the box to Define these policy settings
- Check the box next to RC4_HMAC_MD5 , AES128_HMAC_SHA1 , AES256_HMAC_SHA1 , and Future encryption types
- Click OK
And that’s about for now… Hopefully this helps you out, and thanks for reading!