Saltar al contenido

Sharepoint – Autenticación de API REST de SharePoint Online en POSTMAN

Solución:

Responder a mi propia pregunta en caso de que ayude a alguien.

Como se menciona en el comentario de @SharePointer, debe registrar una aplicación en Azure AD para poder autenticarse en ella. Esa aplicación que registre debe tener permisos para su SharePoint Online.

Inicie sesión en el portal de Azure en https://portal.azure.com que usa su inquilino de O365 donde desea acceder al sitio de SharePoint.

  • Navegue a Azure AD.
  • Busque “Registros de aplicaciones” en el menú.

    ingrese la descripción de la imagen aquí

  • Seleccione “Registro de nueva aplicación”.

  • Déle un nombre como SPO o CARTERO.
  • Seleccione el Tipo de aplicación para que sea “Aplicación web / API” y la URL de inicio de sesión https://www.getpostman.com/oauth2/callback

Una vez registrado, anote el ID de la aplicación y cópielo en el bloc de notas.

  • Vaya a Permisos requeridos en la aplicación que acaba de registrar.
  • Seleccione SharePoint Online en Seleccionar una API en el paso 1.
  • Luego, en 2 Seleccionar permisos, elija “Tener control total de todas las colecciones de sitios”.

Ahora elija la hoja KEYS y agregue una llave. La clave solo se muestra una vez cuando la guarda. Cópialo en el bloc de notas.

  • Vaya a la aplicación POSTMAN en su escritorio.
  • Crea una nueva solicitud. Por ejemplo, https://mytenantname.sharepoint.com/sites/mysitecollection/_api/web/lists
  • Establecer un encabezado de "Accept: application/json; odata=verbose"

  • Vaya a la pestaña Autorización en POSTMAN.

  • Seleccione Oauth 2.0 en el menú desplegable y presione el Obtenga un nuevo token de acceso.

Complete los campos en ese cuadro de diálogo como se muestra a continuación:

Auth URL :           https://login.microsoftonline.com/common/oauth2/authorize?resource=https://mytenantname.sharepoint.com  
Access Token URL :   https://login.microsoftonline.com/common/oauth2/token  
Client ID :          <Application_ID>  
Client Secret :      <KEY>  
Grant Type :         Authorization Code

Haga clic en el botón Solicitar token.

En este punto, debe iniciar sesión con un usuario administrador. También se le pedirá que permita los permisos que estableció en la Aplicación en Azure AD. Es por eso que debe iniciar sesión como una cuenta de administrador. Acepte la solicitud de permisos cuando se le solicite.

Se devuelve el token. Cópielo en el bloc de notas y luego haga clic en el botón “Usar token”. Esto completa el token en el lugar correcto en CARTERA.

Ahora envíe su solicitud y debería tener una lista de listas JSON devuelta con éxito.

[EDIT]

Además de lo anterior, he descubierto que necesito crear un certificado para autenticarme. No bastaba con registrar la aplicación y conceder permisos.

Para hacer esto, consulte el comando makecert en un símbolo del sistema de Visual Studio Developer. Ejemplo a continuación:

makecert -r -pe -n "CN=POSTMAN-TEST" -b 12/15/2014 -e 12/15/2016 -ss POSTMAN-TEST -len 2048
  • Luego ve a mmc.exe y la carpeta Personal en el complemento Certificados.
  • Exporte el certificado que creó con el comando anterior a un archivo .CER.
  • Luego, vaya a Azure Portal y su aplicación registrada que hizo anteriormente.
  • Descarga el archivo de manifiesto.
  • Reemplace la sección de las credenciales clave en el archivo de manifiesto y cárguela de nuevo en el registro de la aplicación en Azure.

Por ejemplo, ponga sus valores de su archivo CER en esta sección:

"keyCredentials": [
{
  "customKeyIdentifier": "$base64Thumbprint_from_above",
  "keyId": "$keyid_from_above",
  "type": "AsymmetricX509Cert",
  "usage": "Verify",
  "value":  "$base64Value_from_above"
 }
],

Solo agrego esto aquí, ya que Azure Portal es ligeramente diferente ahora.

  1. Inicie sesión en Azure Portal en https://portal.azure.com para su inquilino de O365
  2. Utilice la búsqueda en la parte superior de la página para Registros de aplicaciones o seleccione Todos los servicios > Desplácese hacia abajo hasta Identidad y seleccione Registros de aplicaciones
  3. Seleccione Nuevo registro
  4. Dale un nombre, cambia el tipo de cuenta al que prefieras, en este caso acabo de usar Cuentas en este directorio organizativo únicamente
  5. (Opcional) Ingrese una URL de redireccionamiento; utilicé: https://login.microsoftonline.com/common/oauth2/nativeclient
  6. Seleccione Registrarse
  7. Sobre Visión general hoja copia el ID de la aplicación (cliente)
  8. Selecciona el Certificados y secretos espada
  9. Seleccione Nuevo secreto de cliente
  10. Proporcione una descripción y establezca la fecha de vencimiento si es necesario y seleccione Agregar
  11. Después de seleccionar Agregar, asegúrese de copiar el Valor generado en su portapapeles, de lo contrario tendrá que generar uno nuevo.
  12. Establezca los permisos que necesita en las hojas de permisos de la API, aquí acabo de agregar Sharepoint – AllSites. Leer
  13. Ahora puede crear su solicitud REST

Lo logré con éxito usando este tutorial.

Parte de la configuración de Sharepoint

  1. Registre una nueva aplicación por

    • siguiente https://YourTenant.sharepoint.com/_layouts/15/appregnew.aspx Enlace
    • generando Identificación del cliente y valores ** Client Secret **
    • relleno Título, Dominio de la aplicación y Redirigir URI campos (he ingresado localhost.com como en la imagen, funciona)
    • haciendo clic Crear botón
      ingrese la descripción de la imagen aquí
  2. Guarde en algún lugar del archivo los siguientes parámetros:

     The app identifier has been successfully created.
     Client Id:      898c898f-89238-43d0-4b2d-7a64c26f386a
     Client Secret:  4/T+21I1DSoAJdOX9DL1Ne4KssEaP7rqb11gdtskhXn=
     Title:          SomeTitle
     App Domain:     localhost.com
     Redirect URI:   https://localhost.com/default.aspx
    
  3. Aplicar permisos a esta aplicación por

    • siguiente https://YourTennant.sharepoint.com/sites/SharePointRND/_layouts/15/appinv.aspx

    • insertando Identificación del cliente: 898c898f-89238-43d0-4b2d-7a64c26f386a dentro ID de aplicación campo

    • haciendo clic Buscar botón

    • pegar en XML de solicitud de permiso el siguiente código (en mi caso solo necesitaba Read acceso, así que cambié Rights valor de FullControl para Read):

        <AppPermissionRequests AllowAppOnlyPolicy="true">
        <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
      
    • Crear haciendo clic en el botón inferior
      ingrese la descripción de la imagen aquí

    • Confía en ello hacer clic en el botón

Parte de la configuración del cartero

  1. Abra cartero y cree unGET solicitud

    • con un URI similar:

        https://YourTenant.sharepoint.com/_vti_bin/client.svc/
      
    • con el encabezado:

        KEY               VALUE
        Authorization     Bearer
      

Obtendrá un error que debe ignorar:

    <?xml version="1.0" encoding="utf-8"?>
    <m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
        <m:code>-2147024891, System.UnauthorizedAccessException</m:code>
        <m:message xml:lang="en-US">Access denied. You do not have permission to perform this action or access this resource.</m:message>
    </m:error>
  1. Ir a las respuestas Encabezados pestaña y haga clic en el Autenticación WWW valor de la clave

  2. Copie y guarde estos parámetros:

     Bearer realm="a998899-ad83-234a-af83-8238af989898" #SharePoint Online Tennant Id
     client_id="00000003-0000-0ff1-ce00-000000000000"   #Resource information value
    

ingrese la descripción de la imagen aquí

  1. Abra una nueva pestaña de cartero y cree una nueva CORREO una petición de
    • seleccionar CORREO tipo de solicitud

    • pegando URI: https://accounts.accesscontrol.windows.net/"Bearer realm value without double quotes here"/tokens/OAuth/2

    • agregando encabezado (en Encabezados pestaña):

        KEY               VALUE
        Content-Type      application/x-www-form-urlencoded
      
    • agregar parámetros de clave / valor del cuerpo (en Cuerpo pestaña):

        KEY               VALUE
        grant_type        client_credentials
        client_id         ClientID or AppId [email protected] realm value
        client_secret     ClientSecret value
        resource          resource/[email protected] realm value
      
        KEY               VALUE
        grant_type        client_credentials
        client_id         [email protected]8af989898
        client_secret     4/T+21I1DSoAJdOX9DL1Ne4KssEaP7rqb11gdtskhXn=
        resource          00000003-0000-0ff1-ce00-000000000000/[email protected]
      

ingrese la descripción de la imagen aquí

  1. Hacer clic Enviar botón y copia tu access_token en respuesta Cuerpo pestaña.

  2. Abra una nueva pestaña de cartero y cree una nueva OBTENER una petición de

    • pegando URI: https://YourTenant.sharepoint.com/_api/web

    • agregando encabezados en Encabezados pestaña:

        KEY            VALUE
        Authorization  Bearer eyJ0eXAiOiJKV1Q-verylongstring-0GFpSYw
        Accept         application/json;odata=verbose
      
  3. Ejecute esta solicitud y obtenga resultados:

ingrese la descripción de la imagen aquí

Método de recuperación de resultados más automatizado y simple usando bash & curl (Linux)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *