c# - Autorización para Office 365/Sharepoint en línea
authentication sharepoint-2013 (6)
Estoy escribiendo un servicio WCF alojado en Azure como (PaaS). El servicio a su vez necesita hablar con Sharepoint 2013 en línea / Office 365.
Estaba buscando utilizar el modelo de objetos de Sharepoint Client para hablar con él, pero sigo recibiendo el siguiente error: "El servidor remoto devolvió un error: (403) Prohibido" Cuando iniciamos sesión para acceder a la instancia de SharePoint a través de un navegador, generalmente lo lleva a https://login.microsoftonline.com/login.srf para que pueda iniciar sesión con un Live Id. El problema es que estamos usando una cuenta federada y no un Live ID, y por lo tanto, redirigimos de nuevo a un sitio adfs para iniciar sesión. He visto un ejemplo de código en http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx que usa autenticación basada en notificaciones , pero esto siempre falla con un mensaje de "Error de autenticación" cuando se intenta recuperar Saml Token.
Si entiendo esto correctamente Una forma de hacerlo es obtener el Saml Token, pasarlo a SPO, que a su vez devolverá dos cookies que debo incluir en las solicitudes realizadas con el modelo de objetos del Cliente. El problema es que no encuentro ejemplos adecuados sobre cómo autenticar usando la cuenta federada en C #.
¿Alguien puede indicarme en la dirección correcta cómo puedo autorizar mi servicio WCF para hablar con SharePoint?
Lo siento si esto está en el foro equivocado. No estoy exactamente seguro de si se trata de un problema de Azure o solo de SharePoint, ya que soy bastante nuevo en ambas tecnologías.
¿Ha intentado tomar el código de muestra de Wictor y simplemente reemplazar el URL de login.srf con su punto de inicio de sesión de ADFS?
Mantenga el violín abierto mientras prueba esto, e inspeccione las solicitudes / respuestas cada vez, probablemente verá más detalles sobre por qué las cosas no funcionan dentro del cuerpo de respuesta que C # oculta en su modelo de objetos.
Echa un vistazo a esta publicación de blog también, sobre cómo obtener el token de autenticación de ADFS usando cualquier cosa donde puedas crear un sobre de SOAP:
Estaba obteniendo un 403 mientras trataba de hacer algo similar con el modelo de objetos de SharePoint. Todo lo que tuve que hacer para rectificarlo fue incluir al agente de usuario.
Responda aquí usando WebRequest para obtener cookies para iniciar sesión automáticamente en Sharepoint Online, obteniendo varios errores
Espero que sea de alguna ayuda.
Hola, en caso de que nos hayamos registrado como revendedores de Office365 hace unos días tuve que aprender una lesión dolorosa: la autenticación. ¡la ficha que obtienes de sharepoint solo es válida durante 2 horas! Quizás eso cambie en Sharepoint 15 quién sabe ...
Pensé que esto podría ser una pista valiosa porque no hay solución conocida ...
Sé que esta es una publicación anterior, pero el uso de SharePoint en línea a través de una aplicación sin utilizar una aplicación principal puede ser una violación de su contrato de licencia. Debería utilizar True OAuth y la clase TokenHelper que es parte del SDK para usar el modelo de la aplicación correctamente.
Utilice un sitio de Office 365 SharePoint para crear un entorno donde pueda usar ACS para establecer la confianza entre una aplicación alojada por el proveedor y una granja de SharePoint 2013 local, tal como lo haría si estuviera desarrollando aplicaciones para un sitio de Office 365 SharePoint. Puede visitar el siguiente enlace para obtener más información: http://msdn.microsoft.com/en-us/library/office/dn155905(v=office.15).aspx
Pruebe el siguiente artículo de blog. La capacidad de acceder a la 365 API
Office 365 API
se acaba de anunciar el mes pasado y la posibilidad de llamar a este desde su servicio web es bastante nueva. Este artículo es un buen tutorial sobre el tema.