Pregunta

Tengo dos aplicaciones de SharePoint en la misma granja.

El 1er está usando clásico Autenticación de Windows con NTLM Proveedor.

El 2nd está usando Autenticación de reclamaciones , con solo el proveedor de autenticación de Windows ( NTLM también).

También estamos construyendo una solicitud de Java (en realidad un complemento de salvamento, pero eso está fuera de alcance).Esta aplicación tiene que tomar contenido de la aplicación SharePoint.

Esto funciona para la primera aplicación, pero no para el segundo (el que está con reclamaciones ).

Entonces, mi pregunta es: cuando se usa la autenticación de reclamaciones, con el proveedor de autenticación NTLM, ¿cuáles son los requisitos previos de cualquier aplicación de consumo?

¿Fue útil?

Solución

Finalmente encontramos una solución, que consistió en cambiar la biblioteca del cliente.

Nosotros, especialmente usamos el componente descrito aquí: Soporte paraNTLMV2 con Apache httpclient usando JCIFS .

Un código de muestra que utilizamos:

QueryServiceStub queryServiceStub = new QueryServiceStub("SHARE_POINT_ASMX_URL");
List authPrefs = new ArrayList(1);
authPrefs.add(AuthPolicy.NTLM);
AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, JCIFS_NTLMScheme.class);
HttpTransportProperties.Authenticator auth = new HttpTransportProperties.Authenticator();
List<String> authScheme = new ArrayList<String>();
authScheme.add(HttpTransportProperties.Authenticator.NTLM);
auth.setUsername("USERNAME");
auth.setPassword("PASSWORD");
auth.setDomain("DOMAIN");
auth.setHost("SHAREPOINT_HOSTNAME");
auth.setAuthSchemes(authScheme);
queryServiceStub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, "true");
queryServiceStub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTHENTICATE, auth);
List<Header> headers = new ArrayList<Header>();
Header header = new Header();
header.setName("X-FORMS_BASED_AUTH_ACCEPTED");
header.setValue("f");
headers.add(header);
queryServiceStub._getServiceClient().getOptions().setProperty(HTTPConstants.HTTP_HEADERS, headers);

Licenciado bajo: CC-BY-SA con atribución
scroll top