I am running SharePoint 2010 with SQL 2012, I am trying to get Business Connectivity Services (BCS) running but I am facing a double-hope authentication issue.
Every time I try to connect to the external BCS list created in SharePoint designer, I get the error Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
.
Background information below:
I have enabled Kerberos under SharePoint Central admin.
I have the following AD domain accounts:
- SP_Farm - main website pool
- SP_Services - for SharePoint services (including BCS)
- SQL_Engine - SQL database engine
I then created the following with SetSPN:
- SetSPN -S http/intranet mydomain\SP_Farm
- SetSPN -S http/intranet.mydomain.local mydomain\SP_Farm
- SetSPN -S SPSvc/SPS mydomain\SP_Services
- SetSPN -S MSSQLSvc/SQL1 mydomain\SQL_DatabaseEngine
- SetSPN -S MSSQLSvc/SQL1.mydomain.local mydomain\SQL_DatabaseEngine
- SetSPN -S MSSQLSvc/SQL1:1433 mydomain\SQL_DatabaseEngine
- SetSPN -S MSSQLSvc/SQL1.mydomain.local:1433 mydomain\SQL_DatabaseEngine
I then delegated the AD accounts for any authentication protocol
to the following:
- SP_Farm -> SP_Farm (http service type, intranet)
- SP_Farm -> SQL_DatabaseEngine (MSSQLSvc, sql1)
- SP_Service -> SP_Service (SPSvc)
- SP_Service -> SQL_DatabaseEngine (MSSQLSvc, sql1)
I have also checked the WFE is being logged on to with Kerberos, with the WFE server event log showing event ID 4624 with Kerberos authentication, this is OK.
The SQL queries show showing connections authenticated as Kerberos from the WFE to the SQL OK.
I get the following error in the WFE server for 'BusinessData' ID 8080:
Could not open connection using 'data source=sql1.mydomain.local;initial catalog=MSCRM;integrated security=SSPI;pooling=true;persist security info=false' in App Domain '/LM/W3SVC/1848937658/ROOT-1-129922939694071446'. The full exception text is: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Do I need to do anything with the sites http://sp1:32843
and http://sp1.mydomain.local:32843
?
Name=Request (POST:http://intranet.mydomain.local:80/Lists/CRM%20Accounts%20List/FilteredAccountReadList.aspx)
Site=/
Leaving Monitored Scope (PostResolveRequestCacheHandler). Execution Time=17.0978
WcfSendRequest: RemoteAddress: 'http://sp1:32843/c3632f43b9374e6d92f8f79d28031047/BdcService.svc/http' Channel: 'Microsoft.SharePoint.BusinessData.SharedService.IBdcServiceApplication' Action: 'http://www.microsoft.com/Office/2009/BusinessDataCatalog/BusinessDataCatalogSharedService/GetFilterDescriptorsForMethod' MessageId: 'urn:uuid:da0406db-75eb-4c0a-b2ef-268699b09092'
WcfReceiveRequest: LocalAddress: 'http://sp1.mydomain.local:32843/c3632f43b9374e6d92f8f79d28031047/bdcservice.svc/http' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: 'http://www.microsoft.com/Office/2009/BusinessDataCatalog/BusinessDataCatalogSharedService/GetFilterDescriptorsForMethod' MessageId: 'urn:uuid:da0406db-75eb-4c0a-b2ef-268699b09092'
Entering monitored scope (ExecuteWcfServerOperation)
Calling GetFilterDescriptorsForMethod for Method with Id 77
Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=3.1359
Chose SqlServer database access provider
Chose SqlServer database access provider
Initialized Db connection manager:
Db AuthN mode: PassThrough
Db base connection string: Data Source=sqla1.mydomain.local;Initial Catalog=MyDomain_MSCRM;Integrated Security=SSPI;Pooling=True;Persist Security Info=false;
Initialized DbSystemUtility for LobSystemInstance with Id '65'
Db AuthN Mode: 'PassThrough' Db Provider: 'SqlServer'
Checking for current connection to SystemInstance: MyDomain_MSCRM
WcfSendRequest: RemoteAddress: 'http://sp1:32843/0ab74973a29047568206682799dfd98f/MetadataWebService.svc' Channel: 'Microsoft.SharePoint.Taxonomy.IMetadataWebServiceApplication' Action: 'http://schemas.microsoft.com/sharepoint/taxonomy/soap/IDataAccessReadOnly/GetChanges' MessageId: 'urn:uuid:96a38708-7b4d-497d-b4b8-dca833af78ea'
WcfReceiveRequest: LocalAddress: 'http://sp1.mydomain.local:32843/0ab74973a29047568206682799dfd98f/MetadataWebService.svc' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: 'http://schemas.microsoft.com/sharepoint/taxonomy/soap/IDataAccessReadOnly/GetChanges' MessageId: 'urn:uuid:96a38708-7b4d-497d-b4b8-dca833af78ea'
Entering monitored scope (ExecuteWcfServerOperation)
MetadataWebServiceApplication.GetChanges called on 'Managed Metadata Service' starting.
MetadataWebServiceApplication.GetChanges called on 'Managed Metadata Service' completed.
Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=2.8489
Delegating current windows identity
Could not open connection using 'data source=sql1.mydomain.local;initial catalog=MyDomain_MSCRM;integrated security=SSPI;pooling=True;persist security info=false' in App Domain '/LM/W3SVC/1848937658/ROOT-1-129925488340313766'. The full exception text is: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
Leaving Monitored Scope (systemUtility.ExecuteStatic: MyDomain_MSCRM : FilteredAccountReadList). Execution Time=753.9954
WcfSendRequest: RemoteAddress: 'http://sp1:32843/c3632f43b9374e6d92f8f79d28031047/BdcService.svc/http' Channel: 'Microsoft.SharePoint.BusinessData.SharedService.IBdcServiceApplication' Action: 'http://www.microsoft.com/Office/2009/BusinessDataCatalog/BusinessDataCatalogSharedService/GetAllLocalizedNames' MessageId: 'urn:uuid:6d1159b0-0d77-426f-839f-4828b1504f9e'
WcfReceiveRequest: LocalAddress: 'http://sp1.mydomain.local:32843/c3632f43b9374e6d92f8f79d28031047/bdcservice.svc/http' Channel: 'System.ServiceModel.Channels.ServiceChannel' Action: 'http://www.microsoft.com/Office/2009/BusinessDataCatalog/BusinessDataCatalogSharedService/GetAllLocalizedNames' MessageId: 'urn:uuid:6d1159b0-0d77-426f-839f-4828b1504f9e'
Entering monitored scope (ExecuteWcfServerOperation)
Calling GetAllLocalizedNames for object with Id 65
Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=1.5546
Leaving Monitored Scope (EnsureListItemsData). Execution Time=944.0843
"Error while executing web part: Microsoft.SharePoint.SPException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. ---> Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.) Stack Trace: at Microsoft.SharePoint.BusinessData.Infrastructure.AbstractConnectionManager.RaiseAuthenticationException(Exception e, ISecureStoreProvider provider, String appId) at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.Execute(Object[] args) at Microsoft.SharePoint.BusinessData.Infrastructure.WindowsAuthenticator.ExecuteAfterConstrainedDelegation(Object[] args) at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.GetConnection() at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.D..."
"...bSystemUtility.ExecuteStatic(IMethodInstance methodInstance, ILobSystemInstance lobSystemInstance, Object[] args, IExecutionContext context) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternalWithAuthNFailureRetry(ISystemUtility systemUtility, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IParameterCollection nonReturnParameters, Object[] overrideArgs) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]& overrideArgs) at Microsoft.SharePoint.Busines..."
"...sData.Runtime.EntityRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]& overrideArgs, IFilterCollection filters) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.ExecuteFiltered(IEntity this, IFilterCollection filterCollection, IMethodInstance methodInstanceToExecute, ILobSystemInstance lobSystemInstance) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.<FindFiltered>b__3(IEntity e, IMethodInstance mi, IFilterCollection fc, ILobSystemInstance lsi) at Microsoft.SharePoint.BusinessData.Runtime.EntityInstanceEnumeratorFactory.CreateEntityInstanceEnumerator(IEntity entity, IMethodInstance ..."
"...methodInstance, IFilterCollection filters, ILobSystemInstance lobSystemInstance, ExecutionCallBack executionCallBack) at Microsoft.SharePoint.BusinessData.MetadataModel.Static.Entity.FindFiltered(IFilterCollection filterCollection, String finderName, ILobSystemInstance lobSystemInstance) at Microsoft.SharePoint.SPListDataSource.GetEntityInstanceEnumerator(XmlNode xnMethodAndFilters) ------------------------ Inner Exception: System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, S..."
"...qlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInsta..."
"...nce) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConne..."
"...ctionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.Execute(Object[] args) --- End of inner exception stack trace --- at Microsoft.SharePoint.SPListDataSource.GetEntityInstanceEnumerator(XmlNode xnMethodAndFilters) at Microsoft.SharePoint.SPListDataSource.GetFilteredEntityInstancesInternal(XmlDocument xdQueryView, Boolean fFormatDates, Boolean fUTCToLocal, String firstRowId, Boolean fBackwardsPaging, String& bdcidFirstRow, ..."
"...String& bdcidNextPageRow, List`1& lstColumnNames, Dictionary`2& dictColumnsUsed, List`1& mapRowOrdering, List`1& lstEntityData) at Microsoft.SharePoint.SPListDataSource.GetFilteredEntityInstances(XmlDocument xdQueryView, Boolean fFormatDates, Boolean fUTCToLocal, String firstRowId, Boolean fBackwardsPaging, String& bdcidFirstRow, String& bdcidNextPageRow, List`1& lstColumnNames, Dictionary`2& dictColumnsUsed, List`1& mapRowOrdering, List`1& lstEntityData) at Microsoft.SharePoint.SPListItemCollection.EnsureEntityDataViewAndOrdering(String& bdcidFirstRow, String& bdcidNextPageFirstRow) at Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData() at Microsoft.SharePoint.SPListItemCollection.get_Count() at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteSelec..."
"...t(DataSourceSelectArguments selectArguments, String aggregateString, Boolean wantReturn, BaseXsltListWebPart webpart, SPListItem& listItem, SPListItemCollection& listItems, String[]& fieldList) at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigatorInternal() at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigator() at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)"
"InnerException 1: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.) Stack Trace: at Microsoft.SharePoint.BusinessData.Infrastructure.AbstractConnectionManager.RaiseAuthenticationException(Exception e, ISecureStoreProvider provider, String appId) at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.Execute(Object[] args) at Microsoft.SharePoint.BusinessData.Infrastructure.WindowsAuthenticator.ExecuteAfterConstrainedDelegation(Object[] args) at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.GetConnection() at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbSystemUtility.ExecuteStatic(IMethodInstance methodInstance, ILobSystemInstance lobSystemInstance, Object[]..."
"... args, IExecutionContext context) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternalWithAuthNFailureRetry(ISystemUtility systemUtility, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IParameterCollection nonReturnParameters, Object[] overrideArgs) at Microsoft.SharePoint.BusinessData.Runtime.DataClassRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance, ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]& overrideArgs) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.ExecuteInternal(IDataClass thisDataClass, ILobSystemInstance lobSystemInstance,..."
"... ILobSystem lobSystem, IMethodInstance methodInstanceToExecute, IMethod methodToExecute, IParameterCollection nonReturnParameters, Object[]& overrideArgs, IFilterCollection filters) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.ExecuteFiltered(IEntity this, IFilterCollection filterCollection, IMethodInstance methodInstanceToExecute, ILobSystemInstance lobSystemInstance) at Microsoft.SharePoint.BusinessData.Runtime.EntityRuntime.<FindFiltered>b__3(IEntity e, IMethodInstance mi, IFilterCollection fc, ILobSystemInstance lsi) at Microsoft.SharePoint.BusinessData.Runtime.EntityInstanceEnumeratorFactory.CreateEntityInstanceEnumerator(IEntity entity, IMethodInstance methodInstance, IFilterCollection filters, ILobSystemInstance lobSystemInstance, ExecutionCallBack executio..."
"...nCallBack) at Microsoft.SharePoint.BusinessData.MetadataModel.Static.Entity.FindFiltered(IFilterCollection filterCollection, String finderName, ILobSystemInstance lobSystemInstance) at Microsoft.SharePoint.SPListDataSource.GetEntityInstanceEnumerator(XmlNode xnMethodAndFilters) ------------------------ Inner Exception: System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObje..."
"...ct stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConn..."
"...ectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetC..."
"...onnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.Execute(Object[] args) "
"InnerException 2: System.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) at System.Data.SqlCl..."
"...ient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) ..."
"... at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.SharePoint.BusinessData.SystemSpecific.Db.DbConnectionManager.Execute(..."
...Object[] args)
Leaving Monitored Scope (DataBinding DataFormWebPart (CRM Accounts List)). Execution Time=1007.7884
Leaving Monitored Scope (Request (POST:http://intranet.mydomain.local:80/Lists/CRM%20Accounts%20List/FilteredAccountReadList.aspx)). Execution Time=1140.4073