none
FBA contra openLDAP no consigo conectar RRS feed

  • Pregunta

  • Buenos días gente, el caso es que llevo un par de días intentando configurar un site para usar FBA con un membership/role provider a una máquina openLDAP y tras ver muchos ejemplos de configuración de los providers en el web.config del site de la aplicación STS y del administrador central, lo curioso es que en ninguna parte he visto que a dicha configuración se le metan algún tipo de credenciales para autenticarse contra la máquina LDAP como es mi caso, tampoco conozco demasiado LDAP por lo que probablemente tenga mal algún parámetro :)

    La configuración es la misma para los 3 web.configs y el bloque está ubicado dentro de los tags  <system.web>  </system.web>.

    He usado un programita en Java desde el servidor dónde tenemos sharepoint llamado "ldapbrwser" y se conecta sin problemas, eso si en la configuración se le mete un User DN y un password, es decir que problema de firewall no es.

    ¿ es que el provider de sharepoint no soporta credenciales como en mi caso necesito ?

    También he quitado las entradas de los defaults providers que tenían los web.config y cobnfigurado el sitio dónde indica el membership provider y el rolemanager que defino en los ficheros web.config.

    Otra particularidad es que se ha añadido las siguientes líneas dentro del web.config

        <PeoplePickerWildcards>
          <clear />
          <add key="AspNetSqlMembershipProvider" value="%" />
    	   <!-- Para LDAP -->
    	  <add key="LdapMembershipProvider" value="*"/>
    	  <add key="LdapRoleProvider" value="*"/>	  
    	  <!-- FIN LDAP -->
        </PeoplePickerWildcards>

    Bloque de configuración del web.config.

    <system.web>
        <!-- De aquí en adelante es para el provider de LDAP -->
        <membership>
          <providers>
            <!--  PROVIDER LDAP-->
            <add name="LdapMembershipProvider" 
    		type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" 
    		server="ipdelservidor" 
    		port="389" 
    		useSSL="false" 
    		useDNAttribute="false"		
    		userNameAttribute="uid" 
    		userContainer="ou=People,cn=Directory Manager,o=dominio.com" 
    		userObjectClass="person" 
    		userFilter="(ObjectClass=person)"
    		scope="Subtree" 
    		otherRequiredUserAttributes="uid,cn" />
            <!-- FIN PROVIDER LDAP -->
          </providers>
        </membership>
        <roleManager defaultProvider="LdapRoleProvider" enabled="true" cacheRolesInCookie="false">
          <providers>
            <!--  PROVIDER LDAP-->
            <add name="LdapRoleProvider" 
    		type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" 
    		server="ipdelservidor" 
    		port="389" 
    		useSSL="false" 
    		groupContainer="o=dominiosinpuntocom" 
    		groupNameAttribute="cn" 
    		groupMemberAttribute="member" 
    		userNameAttribute="uid" 
    		dnAttribute="uid" 
    		groupFilter="(ObjectClass=group)" 
    		scope="Subtree" />
            <!-- FIN PROVIDER LDAP -->
          </providers>
        </roleManager>


    Al ir al Sitio y intentar añadir  un usuario no busca nada, no conecta al LDAP no hace nada, eso si en el log muestra un error que no me dice demasiado..

    <html> <head> <title>Error en el servidor remoto: (500) Error interno del servidor.</title> <style> body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;} p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px} b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px} H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red } H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon } pre {font-family:"Lucida Console";font-size: .9em} .marker {font-weight: bold; color: black;text-decoration: none;} .version {color: gray;} .error {margin-bottom: 10px;} .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; } </style> </head> <body bgcolor="white"> <span><H1>Error de servidor en la aplicación '/'.<hr width=100% size=1 color=silver></H1> <h2> <i>Error en el servidor remoto: (500) Error interno del servidor.</i> </h2></span> <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "> <b> Descripción: </b>Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código. <br><br> <b> Detalles de la excepción: </b>System.Net.WebException: Error en el servidor remoto: (500) Error interno del servidor.<br><br> <b>Error de código fuente:</b> <br><br> <table width=100% bgcolor="#ffffcc"> <tr> <td> <code> Se ha generado una excepci&#243;n no controlada durante la ejecuci&#243;n de la solicitud Web actual. La informaci&#243;n sobre el origen y la ubicaci&#243;n de la excepci&#243;n pueden identificarse utilizando la excepci&#243;n del seguimiento de la pila siguiente.</code> </td> </tr> </table> <br> <b>Seguimiento de la pila:</b> <br><br> <table width=100% bgcolor="#ffffcc"> <tr> <td> <code><pre> [WebException: Error en el servidor remoto: (500) Error interno del servidor.] System.Net.HttpWebRequest.GetResponse() +1126 System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +81 [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&#250;rese de que el m&#233;todo IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt; &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;head&gt; &lt;title&gt;Error detallado de IIS 7.5 - 500.19 - Internal Server Error&lt;/title&gt; &lt;style type=&quot;text/css&quot;&gt; &lt;!-- 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;} .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.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +10259322 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type) +539 Microsoft.IdentityModel.Protocols.WSTrust.IWSTrustContract.Issue(Message message) +0 Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst, RequestSecurityTokenResponse&amp; rstr) +61 Microsoft.IdentityModel.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst) +36 Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo) +26406689 Microsoft.SharePoint.SPSecurityContext.SecurityTokenForFormsAuthentication(Uri context, String membershipProviderName, String roleProviderName, String username, String password, Boolean isPersistent) +183 Microsoft.SharePoint.IdentityModel.Pages.FormsSignInPage.GetSecurityToken(Login formsSignInControl) +210 Microsoft.SharePoint.IdentityModel.Pages.FormsSignInPage.AuthenticateEventHandler(Object sender, AuthenticateEventArgs formAuthenticateEvent) +123 System.Web.UI.WebControls.Login.AttemptLogin() +152 System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +124 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +70 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981 </pre></code> </td> </tr> </table> <br> <hr width=100% size=1 color=silver> <b>Información de versión:</b>&nbsp;Versión de Microsoft .NET Framework:2.0.50727.5448; Versión ASP.NET:2.0.50727.5420 </font> </body> </html> <!-- [WebException]: Error en el servidor remoto: (500) Error interno del servidor. en System.Net.HttpWebRequest.GetResponse() en System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) [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&#250;rese de que el m&#233;todo IsContentTypeSupported se implemente correctamente. Los primeros 1024 bytes de la respuesta fueron: '&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt; &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; &lt;head&gt; &lt;title&gt;Error detallado de IIS 7.5 - 500.19 - Internal Server Error&lt;/title&gt; &lt;style type=&quot;text/css&quot;&gt; &lt;!-- 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;} .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'. 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, 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.Protocols.WSTrust.WSTrustChannel.Issue(RequestSecurityToken rst) en Microsoft.SharePoint.SPSecurityContext.SecurityTokenForContext(Uri context, Boolean bearerToken, SecurityToken onBehalfOf, SecurityToken actAs, SecurityToken delegateTo) en Microsoft.SharePoint.SPSecurityContext.SecurityTokenForFormsAuthentication(Uri context, String membershipProviderName, String roleProviderName, String username, String password, Boolean isPersistent) en Microsoft.SharePoint.IdentityModel.Pages.FormsSignInPage.GetSecurityToken(Login formsSignInControl) en Microsoft.SharePoint.IdentityModel.Pages.FormsSignInPage.AuthenticateEventHandler(Object sender, AuthenticateEventArgs formAuthenticateEvent) en System.Web.UI.WebControls.Login.AttemptLogin() en System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) en System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) en System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) en System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException]: Se produjo una excepci&#243;n de tipo 'System.Web.HttpUnhandledException'. en System.Web.UI.Page.HandleError(Exception e) en System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) en System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) en System.Web.UI.Page.ProcessRequest() en System.Web.UI.Page.ProcessRequest(HttpContext context) en ASP._forms_default_aspx.ProcessRequest(HttpContext context) en System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() en System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

     

    Perdonar por el "tocho" pero es que ando un poco desorientado..

    Saludos y muchas gracias!.

    miércoles, 29 de febrero de 2012 12:29

Todas las respuestas

  • Hola,

    revisa el log de SharePoint a ver si tienes más información, aún así, piensa que puedes crearte tu propio proveedor de autenticación con tu código de autenticación para OpenLDAP


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server

    miércoles, 29 de febrero de 2012 18:05
  • Hola,

    ¿Qué versión de SharePoint estás usando: Server o Foundation? En el caso de Server, tienes un proveedor de LDAP de serie por lo que sólo tienes que realizar las configuraciones necesarias. En el caso de Foundation, este proveedor no está disponible pero puedes usar el proveedor de AD para atacar el LDAP sin problemas: http://geeks.ms/blogs/ciin/archive/2011/10/02/sharepoint-2010-autenticaci-243-n-por-formularios-contra-un-ldap-en-sharepoint-foundation.aspx

    Saludos


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    miércoles, 29 de febrero de 2012 18:25
  • Hola Juan Carlos, si tengo la Server y creo que el que uso es el de serie pero no veo la forma de configurarlo.

    Saludos y gracias.

    miércoles, 29 de febrero de 2012 20:51
  • Si eso me temo Alberto pero no encuentro un ejemplo más o menos claro..

    Saludos.

    miércoles, 29 de febrero de 2012 20:52
  • Hola, Esto es lo que he sacado del LOG:

    03/01/2012 09:45:46.01  w3wp.exe (0x27B0)                        0x1FF8 SharePoint Foundation          General                        72e7 Medium   Error in searching user 's*' : System.ComponentModel.Win32Exception: No se puede poner en contacto con el servidor de catálogos globales     en Microsoft.SharePoint.Utilities.SPActiveDirectoryDomain.GetDirectorySearcher()     en Microsoft.SharePoint.WebControls.PeopleEditor.SearchFromGC(SPActiveDirectoryDomain domain, String strFilter, String[] rgstrProp, Int32 nTimeout, Int32 nSizeLimit, SPUserCollection spUsers, ArrayList& rgResults)     en Microsoft.SharePoint.Utilities.SPUserUtility.SearchAgainstAD(String input, SPActiveDirectoryDomain domainController, SPPrincipalType scopes, SPUserCollection usersContainer, Int32 maxCount, String customQuery, String customFilter, TimeSpan searchTimeout, Boolean& reachMaxCount)     en Microsoft.SharePoint.Utilities.SPActiveDirectoryPrincipalResolver.S... 97161c6a-334a-4ea8-8129-3d63970bdbac

    No saco ninguna conclusión de la entrada del log ¿ vosotros veis algo ?

    Saludos.


    • Editado Sergioom jueves, 1 de marzo de 2012 8:53
    jueves, 1 de marzo de 2012 8:53
  • Hola

    revisa la configuración de DNS de tu servidor, parece que no puede contactar con el Global Catalog, que es el servidor que da servicios de autenticación en un LDAP.


    Alberto Diaz Martin twitter://@adiazcan | http://geeks.ms/blogs/adiazmartin | MVP SharePoint Server

    jueves, 1 de marzo de 2012 17:09
  • Gracias Alberto, el problema de este hilo ya lo he solucionado, era por una mala configuración del LDAP, ahora tengo otro diferente que puse en otro hilo :)

    jueves, 1 de marzo de 2012 19:52