Estoy tratando de acceder a un SharePoint sitio web desde una aplicación Java. El servidor de SharePoint prefiere la autenticación Kerberos. Puede usted por favor proporcione un ejemplo para la realización de la autenticación Kerberos?

OriginalEl autor | 2009-02-26

3 Comentarios

  1. 7

    Tan sólo para ayudarle a ampliar su búsqueda por respuestas un poco, no hay nada de SharePoint específica acerca de la autenticación de Kerberos que se utiliza aquí. De hecho, SharePoint no es propia de los mecanismos de autenticación (al menos suponiendo que estamos hablando de WSS 3/MOSS aquí). Simplemente se basa en el subyacente ASP.NET/IIS capacidades de autenticación.

    Sooo, si está ejecutando la versión de Java ausing un moderno JDK, usted probablemente tendrá un momento fácil. Ver el docs en HTTP mecanismos de autenticación. Hay algunas buenas fragmentos de código en allí. Uno de los que voy a reproducir para referencia aquí. Aunque realmente, revisa el link.

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.Authenticator;
    import java.net.PasswordAuthentication;
    import java.net.URL;
    
    public class RunHttpSpnego {
    
        static final String kuser = "username"; //your account name
        static final String kpass = "password"; //your password for the account
    
        static class MyAuthenticator extends Authenticator {
            public PasswordAuthentication getPasswordAuthentication() {
                //I haven't checked getRequestingScheme() here, since for NTLM
                //and Negotiate, the usrname and password are all the same.
                System.err.println("Feeding username and password for " + getRequestingScheme());
                return (new PasswordAuthentication(kuser, kpass.toCharArray()));
            }
        }
    
        public static void main(String[] args) throws Exception {
            Authenticator.setDefault(new MyAuthenticator());
            URL url = new URL(args[0]);
            InputStream ins = url.openConnection().getInputStream();
            BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
            String str;
            while((str = reader.readLine()) != null)
                System.out.println(str);
        }
    }
    muchas gracias, esta respuesta fue vert útil para mí.

    OriginalEl autor Sam Yates

  2. 5

    He aquí un ejemplo de la documentación de Java de la fuente abierta SPNEGO Servlet HTTP Filtro de biblioteca.

    La biblioteca tiene un cliente que puede conectarse a un servidor web que tiene la autenticación integrada de Windows activado.

    El proyecto también cuenta con ejemplos sobre cómo configurar su entorno para Kerberos/autenticación SPNEGO.

     public static void main(final String[] args) throws Exception {
         System.setProperty("java.security.krb5.conf", "krb5.conf");
         System.setProperty("sun.security.krb5.debug", "true");
         System.setProperty("java.security.auth.login.config", "login.conf");
    
         SpnegoHttpURLConnection spnego = null;
    
         try {
             spnego = new SpnegoHttpURLConnection("spnego-client", "dfelix", "[email protected]");
             spnego.connect(new URL("http://medusa:8080/index.jsp"));
    
             System.out.println(spnego.getResponseCode());
    
         } finally {
             if (null != spnego) {
                 spnego.disconnect();
             }
         }
     }

    OriginalEl autor Pat Gonzalez

  3. 0

    Para Kerberos setup, conozco 3 personas que sabe todo lo que hay que saber sobre el nivel de la Acera: Spence Harbar, Bob Fox y Tom Wisnowski.

    Spence es también de elaboración de la cerveza con una Kerberos asistente para la instalación de Bordillo y exportación de secuencias de comandos de instalación.

    Echa un vistazo a su blog aquí:
    http://www.harbar.net/

    Tom Wiznowski ha enviado un papel blanco.
    http://my/sites/tomwis/Shared%20Documents/Configuring%20Kerberos%20for%20SharePoint.docx

    Joel Olson tiene un buen artículo aquí:
    http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=2

    Pero cuando los de arriba se dijo, SharePoint sólo recomienda el nivel de la Acera para cuando la empresa ya utiliza este. No se debe instalar de Kerberos en la red de su empresa sólo porque de SharePoint. Kerberos es complejo de configurar, y aunque en general se considera más rápido que NTLM, esto es cierto sólo cuando se alcanza un cierto límite de usuarios simultáneos en su sitio. Para una baja de tráfico del sitio, la enorme tokens que Kerberos enviar a través de la red, en realidad hace que sea más lento que el de NTLM.

    Seguro de que hay algunas funciones que sólo funcionará con Kerberos (rss, los cubos de servicios de excel, la autenticación de llamadas de servicio web en el código personalizado debido a la doble saltos), pero confía en mí cuando digo que NTLM va a hacer un muy buen trabajo de la ejecución de la MOSS también.

    Cuando los de arriba se dijo, podría usted por favor, especifique qué tipo de integración que están tratando de lograr a partir de la aplicación de Java?

    Simplemente estás tratando de llamar la web de las capas de servicio de SharePoint?

    hth
    Anders Rask

    Lo que si él sólo estaba tratando de llamar a los servicios web de SharePoint? ¿Qué habría sido diferente? Tengo curiosidad porque me he encontrado con un NTLM problema de ejecución de servicios web, y quisiera saber si debo usar Kerberos.
    Cuando se utiliza NTLM usted no puede tener acceso a los recursos en cualquiera de los servidores de la red. Esto se refiere a menudo como un «doble salto» de la cuestión. Google, que para más info. kerberos en el otro lado puede autenticar a través de la red
    Gracias, ¿te importaría echar un vistazo a esta pregunta? stackoverflow.com/questions/8884152/…. Im miedo puede ser el salto doble problema, pero no estoy seguro.
    Si usted tiene ActiveDirectory, entonces usted tiene Kerberos. «doble saltos» se resuelve gracias a la delegación de Kerberos. Kerberos tokens son enormes, ya que Microsoft ha decidido hacerlo con SPNEGO e incluye Sid de grupo con la identidad del usuario.

    OriginalEl autor Anders Rask

Dejar respuesta

Please enter your comment!
Please enter your name here