none
Autenticarse contra sitio FBA

    Pregunta

  • Hola gente, en este post http://social.msdn.microsoft.com/Forums/es-ES/mossdeves/thread/15d5cd13-7b43-40e1-95a8-aa940a7e2c06 tenía problemas para conectarme con un servidor LDAP, ahora una vez consseguido conectar y asignar (con sus correspondientes permisos) un usuario LDAP a un sitio FBA al intentar logearme me da un error, sospecho que tiene que ver con algo de clave de encriptación (o método de encriptación).

    Sacado del LOG:

    Entradas a la ahora de asignar el usuario:

    3/01/2012 11:51:03.57  w3wp.exe (0x15A0)                        0x2490 SharePoint Foundation          Topology                       6753 Information CANCER\Administrador: Aplicación web: SharePoint - 26439 (Claim Based)  Zona: Default  Se concedió el nivel de directiva de permisos "Control total" a la directiva para "i:0#.f|ldapmembershipprovider|test".    Permisos concedidos: ViewListItems, AddListItems, EditListItems, DeleteListItems, ApproveItems, OpenItems, ViewVersions, DeleteVersions, CancelCheckout, ManagePersonalViews, ManageLists, ViewFormPages, Open, ViewPages, AddAndCustomizePages, ApplyThemeAndBorder, ApplyStyleSheets, ViewUsageData, CreateSSCSite, ManageSubwebs, CreateGroups, ManagePermissions, BrowseDirectories, BrowseUserInfo, AddDelPrivateWebParts, UpdatePersonalWebParts, ManageWeb, UseClientIntegration, UseRemoteAPIs, ManageAlerts, CreateAlerts, EditMyUserInfo, EnumeratePermissions    Permisos denegados:  844fec6e-ba26-476f-87c0-9bf346b223a3
    03/01/2012 11:51:03.57  w3wp.exe (0x15A0)                        0x2490 SharePoint Foundation          Topology                       6753 Information CANCER\Administrador: Aplicación web: SharePoint - 26439 (Claim Based)  Zona: Default  Se concedió el nivel de directiva de permisos "Acceso completo de lectura" a la directiva para "i:0#.f|ldapmembershipprovider|test".    Permisos concedidos: ViewListItems, OpenItems, ViewVersions, ViewFormPages, Open, ViewPages, ViewUsageData, BrowseDirectories, BrowseUserInfo, UseClientIntegration, UseRemoteAPIs, EnumeratePermissions    Permisos denegados:  844fec6e-ba26-476f-87c0-9bf346b223a3

    Entradas al hacer login en el FBA site:

    03/01/2012 12:19:01.99  w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Logging Correlation Data       xmnv Medium   Name=Request (POST:http://cancer:26439/_forms/default.aspx?ReturnUrl=%2fsitios%2fPrincipal%2f_layouts%2fAuthenticate.aspx%3fSource%3d%252Fsitios%252FPrincipal&Source=%2Fsitios%2FPrincipal) 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00  w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          fsq7 High     Request for security token failed with exception: System.ServiceModel.ProtocolException: El tipo de contenido text/html; charset=utf-8 del mensaje de respuesta no coincide con el tipo de contenido del enlace (application/soap+msbin1). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>Error detallado de IIS 7.5 - 500.19 - Internal Server Error</title>  <style type="text/css">  <!--  body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;background:#CBE1EF;}  code{margin:0;color:#006600;fon... 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00* w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          fsq7 High     ...t-size:1.1em;font-weight:bold;}  .config_source code{font-size:.8em;color:#000000;}  pre{margin:0;font-size:1.4em;word-wrap:break-word;}  ul,ol{margin:10px 0 10px 40px;}  ul.first,ol.first{margin-top:5px;}  fieldset{padding:0 15px 10px 15px;}  .summary-container fieldset{padding-bottom:5px;margin-top:4px;}  legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}  legend{color:#333333;padding:4px 15px 4px 10px;margin:4px 0 8px -12px;_margin-top:0px;   border-top:1px solid #EDEDED;border-left:1px solid #EDEDED;border-right:1px solid #969696;   border-bottom:1px solid #969696;background:#E7ECF0;font-weight:b'. ---> System.Net.WebException: Error en el servidor remoto: (500) Error interno del servidor.     en System.Net.HttpWebRequest.GetResponse()     en System.ServiceModel.Channe... 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00* w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          fsq7 High     ...ls.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)     --- Fin del seguimiento de la pila de la excepción interna ---    Server stack trace:      en System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)     en System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)     en System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)     en System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)     en System.ServiceModel.Channels.ServiceChannel.Call(String action, ... 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00* w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          fsq7 High     ...Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)     en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)     en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown at [0]:      en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)     en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)     en Microsoft.IdentityModel.Protocols.WSTrust.IWSTrustContract.Issue(Message message)     en Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse& rstr)     en Microsoft.IdentityModel.Protoc... 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00* w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          fsq7 High     ...ols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst)     en Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo) 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00  w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          8306 Critical An exception occurred when trying to issue security token: El tipo de contenido text/html; charset=utf-8 del mensaje de respuesta no coincide con el tipo de contenido del enlace (application/soap+msbin1). Si usa un codificador personalizado, asegúrese de que el método IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <title>Error detallado de IIS 7.5 - 500.19 - Internal Server Error</title>  <style type="text/css">  <!--  body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;background:#CBE1EF;}  code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;... 294eeee9-b987-45f0-91fe-d4f4d84b27ce
    03/01/2012 12:19:02.00* w3wp.exe (0x1860)                        0x2638 SharePoint Foundation          Claims Authentication          8306 Critical ...}  .config_source code{font-size:.8em;color:#000000;}  pre{margin:0;font-size:1.4em;word-wrap:break-word;}  ul,ol{margin:10px 0 10px 40px;}  ul.first,ol.first{margin-top:5px;}  fieldset{padding:0 15px 10px 15px;}  .summary-container fieldset{padding-bottom:5px;margin-top:4px;}  legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;}  legend{color:#333333;padding:4px 15px 4px 10px;margin:4px 0 8px -12px;_margin-top:0px;   border-top:1px solid #EDEDED;border-left:1px solid #EDEDED;border-right:1px solid #969696;   border-bottom:1px solid #969696;background:#E7ECF0;font-weight:b'.. 294eeee9-b987-45f0-91fe-d4f4d84b27ce

    Entiendo que si puedo acceder a LDAP con el provider genérico podré logearme con el usuario que añadí al sitio o hay que hacer alguna otra configuración para esto ?

    Al igual que el provider para SQL server (del sistema de seguridad de asp.net ) se podía en el web.config asignar el método de encripatación se podrá hacer para el genérico del LDAP. ¿no?

    Saludos y gracias!

    jueves, 01 de marzo de 2012 11:24

Respuestas

  • Buf, si el problema es de la cadena de conexión LDAP creo que tendrás más suerte en foros de AD que en foros de SharePoint. Yo sé que tienes que ir con mucho cuidado a la hora de definir los filtros. Mira por ejemplo aquí:

    http://technet.microsoft.com/en-us/library/ee806890.aspx

    y presta especial atención a las diferencias en el parámetro groupFilter en cada uno de los web.configs. Uno de los errores más comunes es copiar la cadena de conexión de un web.config a otro pero, como verás, hay sutiles diferencias.

    Ahora bien, antes de seguir peleándote con SharePoint yo intentaría comprobar que el LDAP manager te funciona adecuadamente buscando, si la necesitas, ayuda en los foros de AD donde seguro que hay más expertos en este tema que aquí.

    Un saludo,
    David Martos | SharePoint Server MVP | http://david-martos.blogspot.com | @davidmartos

    martes, 06 de marzo de 2012 10:09

Todas las respuestas

  • Hola he conseguido que el error anterior no aparezca pero la página de login del sitio FBA al que asigné un usuario que obtuve del LDAP y del cual me he asegurado que existe me dice:

    Advertencia: esta página no está cifrada para comunicación segura. Los nombres de usuarios, contraseñas y cualquier otra información se enviarán en texto no cifrado. Para obtener más información, póngase en contacto con el administrador.

    El servidor no le permitió iniciar sesión. Confirme que el nombre de usuario y la contraseña son correctos y vuelva a intentarlo.

    Aclaración, el servidor no tiene Active Directory y la idea inicial es no usarlo, es decir, usar sólamente los usuarios de LDAP.

    El Log me muestra esto:

    03/02/2012 09:00:33.37 w3wp.exe (0x20D0) 0x2248 SharePoint Foundation General erv3 Medium Adding X.509 certificate thumbprint '67D213854258AB466D0776FF00C6EB4B14AE44C8' to root authority trust 03/02/2012 09:00:33.46 w3wp.exe (0x2EB4) 0x237C SharePoint Foundation Claims Authentication 0000 Unexpected Password check on 'test' generated exception: 'System.ServiceModel.FaultException`1[Microsoft.IdentityModel.Tokens.FailedAuthenticationException]: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse. El detalle del error es igual a Microsoft.IdentityModel.Tokens.FailedAuthenticationException: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse..'. 03/02/2012 09:00:33.46 w3wp.exe (0x2EB4) 0x237C SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (SPSecurityTokenService.GetTokenLifetime()). Tiempo de ejecución=4728,14072738295 03/02/2012 09:00:33.46 w3wp.exe (0x2EB4) 0x237C SharePoint Foundation Claims Authentication fo1t Monitorable SPSecurityTokenService.Issue() failed: System.ServiceModel.FaultException`1[Microsoft.IdentityModel.Tokens.FailedAuthenticationException]: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse. El detalle del error es igual a Microsoft.IdentityModel.Tokens.FailedAuthenticationException: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse.. 03/02/2012 09:00:33.46 w3wp.exe (0x2EB4) 0x237C SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (SPSecurityTokenService.Issue). Tiempo de ejecución=4732,44399777067 03/02/2012 09:00:33.48 w3wp.exe (0x2E18) 0x2FC0 SharePoint Foundation Claims Authentication fsq7 High Request for security token failed with exception: System.ServiceModel.FaultException: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse. en Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.ReadResponse(Message response) en Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse& rstr) en Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst) en Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo) eddb7eb9-5c1b-4be3-9831-4bd2db647b2f 03/02/2012 09:00:33.48 w3wp.exe (0x2E18) 0x2FC0 SharePoint Foundation Claims Authentication 8306 Critical An exception occurred when trying to issue security token: El nombre de usuario y la contraseña del token de seguridad no pudieron validarse.. eddb7eb9-5c1b-4be3-9831-4bd2db647b2f 03/02/2012 09:00:33.48 w3wp.exe (0x2E18) 0x2FC0 SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (FormsSignInPage.AuthenticateEventHandler: Retrieve security token and establish session.). Tiempo de ejecución=41109,4497345333 eddb7eb9-5c1b-4be3-9831-4bd2db647b2f

    No tengo ni idea de lo que está ocurriendo.. :P

    Saludos y gracias.

    viernes, 02 de marzo de 2012 8:08
  • Hola,

    la verdad es que con la información que aparece en el log es complicado darte una solución. De todas las veces que he tenido que montar un FBA (tanto para LDAP como para otras fuentes) el 99% de los errores siempre estaban en dos puntos: web.config y certificados digitales. Respecto a los web.config, has modificado los 3 web.config? Yo escribí esto hace mucho pero igual te puede ayudar ahora: http://david-martos.blogspot.com/2010/03/autenticacion-basada-en-notificaciones_04.html

    Respecto a los certificados, si tienes por ahí algo que corra sobre SSL puede ser que estes teniendo algún tipo de problema con el tratamiento de los certificados correspondientes.

    De momento yo te recomendaría comprobar que el people picker te funciona adecuadamente en la administración central de SharePoint para descartar errores en el web.config.

    También puedes echarle un ojo a esto: http://sharepoint.stackexchange.com/questions/21560/code-to-create-a-security-token-isnt-working

    Un saludo,
    David Martos | SharePoint Server MVP | http://david-martos.blogspot.com | @davidmartos

    sábado, 03 de marzo de 2012 1:08
  • Hola David, por lo que me comentas decirte que yo sepa el SSL no está habilitado, desde el people picker puedo hacer búsquedas de usuarios del LDAP eso sí sé que el LDAP en cuestión está algo "tuneado" se han ido añadiento Attributes propios en su base de datos pero por lo demás los errores que me da en el log son en la parte del RolerManager con el filtro de búsqueda que le pongo al sitio que tengo habilitado el FBA, es decir, al buscar me da errores con la ObjectClass que le ponga, pero traerme usuarios me trae, pero siempre da error ese que te comento.

    Mañana si quieres te pongo el Log con los errores que te comento.

    Saludos y gracias.

    domingo, 04 de marzo de 2012 21:49
  • Pues aparentemente, si el people picker te devuele los usuarios es que la configuración está bien hecha. Mira a ver si puedes poner más información sobre los errores.

    De todas maneras, si el error es al hacer login, es posible que no hayas configurado adecuadamente el web.config del STS. Puedes poner también los cambios que has puesto en este fichero?

    Un saludo,
    David Martos | SharePoint Server MVP | http://david-martos.blogspot.com | @davidmartos

    martes, 06 de marzo de 2012 9:14
  • Hola David, me he dado cuenta que el problema es a la hora de hacer búsquedas con el peoplepeacker un usuario LDAP, en ese momento me da los siguientes errores en el LOG, son errores producidos por el RolerManager.

    Por otra parte decirte que me he instalado un LDAP manager para ver que Filtros usa al hacer búsquedas en el LDAP.

    Tengo dos "ramales", "People" y "Groups" cuando hago búsquedas en People me saca los mismos resultados que cuando busco usuarios con el peoplepicker pero siempre dando los errores que te pongo al final del post, lo que me hace pensar que el problema es con el RolerManager, no termino de dar con la configuración para que el filtro de las búsquedas de "Groups" del LDAP lo haga bien al menos saber que filtro pasarle através del web.config al roleManager.

    Errores del LOG al hacer la búsqueda (con cadena *ecm*) con el peoplepicker:

    03/06/2012 12:28:34.07 	w3wp.exe (0x1858)                       	0x2C7C	SharePoint Server             	Shared Services               	olgt	High    	LdapRoleProvider.RoleExists() exception: {0}.System.ArgumentException: El filtro de búsqueda (&(((ObjectClass=group))(cn=\2aecm\2a)) no es válido.     en System.DirectoryServices.SearchResultCollection.ResultsEnumerator.MoveNext()     en System.DirectoryServices.DirectorySearcher.FindOne()     en Microsoft.Office.Server.Security.LDAP.FindOneObject(DirectoryEntry searchRoot, String filter, SearchScope scope, String[] propertiesToLoad, ResultPropertyCollection& entryProperties)     en Microsoft.Office.Server.Security.LdapRoleProvider.RoleExists(String roleName)	e4d93033-0ae0-4784-a9f3-fe4b3b699d73
    03/06/2012 12:28:34.07 	w3wp.exe (0x1858)                       	0x2C7C	SharePoint Foundation         	Claims Authentication         	f8qi	High    	Error searching for *ecm* from role provider LdapRoleProvider: Microsoft.Office.Server.Security.LdapProviderException: Se produjo una excepción inesperada. Póngase en contacto con el administrador para resolver el problema.     en Microsoft.Office.Server.Security.LdapRoleProvider.RoleExists(String roleName)     en Microsoft.SharePoint.Utilities.SPRoleProviderPrincipalResolver.ResolvePrincipal(String input, Boolean inputIsEmailOnly, SPPrincipalType scopes, SPPrincipalSource sources, SPUserCollection usersContainer)     en Microsoft.SharePoint.Utilities.SPRoleProviderPrincipalResolver.SearchPrincipals(String input, SPPrincipalType scopes, SPPrincipalSource sources, SPUserCollection usersContainer, Int32 maxCount, Boolean& bReachMaxCount)     en Microsoft.SharePoint.Administration.Claims.SPFo...	e4d93033-0ae0-4784-a9f3-fe4b3b699d73
    03/06/2012 12:28:34.07*	w3wp.exe (0x1858)                       	0x2C7C	SharePoint Foundation         	Claims Authentication         	f8qi	High    	...rmsClaimProvider.Search(SPPrincipalResolver resolver, SPPrincipalSource pricipalSource, SPPrincipalType pricipalType, String searchPattern, Int32 maxCount, List`1 resolved)     en Microsoft.SharePoint.Administration.Claims.SPFormsClaimProvider.FillSearch(Uri context, Boolean allZones, String[] entityTypes, String searchPattern, Int32 maxCount, SPProviderHierarchyTree searchTree)	e4d93033-0ae0-4784-a9f3-fe4b3b699d73

    Me devuelve usuarios que contienen cadena *ecm* correctamente pero da esos errores.

    Por otro lado está el tema de autenticarse, que para mi los errores que me da tiene que ver con el problema descrito, pero te pongo la config del STS:

     <membership>     
    	<providers>		
    	  <add name="LdapMembershipProvider"  
    		type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"  
    		server="servidor.com"  
    		port="389"
    		useSSL="false"		
    		userDNAttribute="o=dominio.com"
    		userNameAttribute="uid"
    		userContainer="ou=People,o=dominio.com"
    		userObjectClass="person"		
    		userFilter="(&amp;(ObjectClass=person))"
    		scope="Subtree"		
    		connectionUsername="cn=xxxx,o=dominio.com"
    		connectionPassword="pass"
    		otherRequiredUserAttributes="uid,cn" />
          </providers>	  
      </membership> 
      <roleManager enabled="true">
    	<providers>	  
    	  <add name="LdapRoleProvider"  
    		type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"  
    		server="servidor.com"  
    		port="389"  
    		useSSL="false"  
    		groupContainer="ou=Groups,o=dominio.com"  
    		groupNameAttribute="cn"		
    		groupMemberAttribute="member"  
    		userNameAttribute="uid"  
    		dnAttribute="dominio.com"		
    		groupFilter="(&amp;(ObjectClass=group))"
    		scope="Subtree"	/>
         </providers>	  	
      </roleManager> 

    Muchas gracias David.


    • Editado Sergioom martes, 06 de marzo de 2012 9:49
    martes, 06 de marzo de 2012 9:47
  • Buf, si el problema es de la cadena de conexión LDAP creo que tendrás más suerte en foros de AD que en foros de SharePoint. Yo sé que tienes que ir con mucho cuidado a la hora de definir los filtros. Mira por ejemplo aquí:

    http://technet.microsoft.com/en-us/library/ee806890.aspx

    y presta especial atención a las diferencias en el parámetro groupFilter en cada uno de los web.configs. Uno de los errores más comunes es copiar la cadena de conexión de un web.config a otro pero, como verás, hay sutiles diferencias.

    Ahora bien, antes de seguir peleándote con SharePoint yo intentaría comprobar que el LDAP manager te funciona adecuadamente buscando, si la necesitas, ayuda en los foros de AD donde seguro que hay más expertos en este tema que aquí.

    Un saludo,
    David Martos | SharePoint Server MVP | http://david-martos.blogspot.com | @davidmartos

    martes, 06 de marzo de 2012 10:09
  • Hola tengo el mismo problema me da el mismo error.

    yo he seguido los pasos de :

    http://nikspatel.wordpress.com/category/sharepoint-2010/sp2010-admin/sp2010-admin-general/

    mi entorno es sharepoint foundation 2013 con (1 srv bbdd, 1 srv ADLDS + AD, 1 srv con web)

    y tengo el mismo problema.

    Si me orientas, gracias.

    sábado, 10 de noviembre de 2012 10:18