Actualización de las credenciales del conjunto de datos OAuth2 a través de la API REST

Un usuario Pregunto ✅

RemyBosman

Hola a todos,

Me encuentro con un problema que me mantiene ocupado durante bastante tiempo. Mi objetivo es actualizar las credenciales de la fuente de datos a través de PowerShell. Ahora lo estoy probando a través del panel de prueba de API REST de MS. Mi código de Powershell se encuentra exactamente con el mismo problema.

RemyBosman_0-1626437603689.png

Guión:
Conjunto de datos con dos conexiones: 1 conexión a SharePoint, 1 conexión a SQL.
La actualización de las conexiones SQL funciona bien, estoy usando el cuerpo de solicitud básico como se describe aquí.

La realización de la misma actualización en la conexión de SharePoint con el cuerpo de OAUth2 falla. Debajo del cuerpo que estoy usando (obviamente con otro valor de accesstoken.
RemyBosman_0-1626436915230.png

Probé varios métodos para recuperar el token de acceso, y no tengo idea de qué forma de recuperarlo es correcta …
Método 1: Recuperarlo a través de Get-PowerBIAccesToken
Método 2: a través de mi aplicación registrada en SharePoint con permiso FullControl en el sitio correspondiente.

RemyBosman_2-1626437162921.png

La respuesta de error es. ¡Cualquier ayuda sería muy apreciada! 🙂
RemyBosman_3-1626437264714.png

RemyBosman

Ok, me di cuenta de este. Parece que solicitar un token de acceso por ‘grant_type’ = ‘contraseña’ hace el trabajo, mientras que solicitarlo a través de ‘grant_type’ = ‘client_credentials’ no lo hace.

Debajo del primer escenario que funciona, la respuesta incluye un token de actualización.
El segundo escenario no funciona.

RemyBosman_0-1627022053297.png

RemyBosman_2-1627022122594.png

RemyBosman_1-1627022087119.png

RemyBosman_3-1627022140388.png

Hola @RemyBosman

Su solicitud proviene de este ejemplo de credenciales OAuth2 de blog, debe ser correcta.

API de descanso:

PATCH https://api.powerbi.com/v1.0/myorg/gateways/{gatewayId}/datasources/{datasourceId}

Cuerpo:

{
  "credentialDetails": {
    "credentialType": "OAuth2",
    "credentials": "{"credentialData":[{"name":"accessToken", "value":"eyJ0....fwtQ"}]}",
    "encryptedConnection": "Encrypted",
    "encryptionAlgorithm": "None",
    "privacyLevel": "None"
  }
}

Pruebe los pasos que se indican a continuación para obtener el token de acceso de sharepoint correcto.

Para referencia:

https://stackoverflow.com/questions/63321532/sharepoint-rest-api-how-to-get-access-token

https://anexinet.com/blog/getting-an-access-token-for-sharepoint-online/

Atentamente,

Rico Zhou

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.

RemyBosman

En respuesta a RicoZhou

@RicoS Gracias por tu respuesta.
Probé ambos escenarios (el registro de la aplicación en SP y el registro de la aplicación en Azure AD). Ambas situaciones me dan un token de acceso. Ambos tokens de acceso no son aceptados por la solicitud que estoy enviando al punto final a continuación.

PATCH https://api.powerbi.com/v1.0/myorg/gateways/{gatewayId}/datasources/{datasourceId}

¿Es posible que lo pruebes tú mismo? Realmente me gustaría saber si esto es solo que yo no puedo hacer esto, o que la API no funciona correctamente.

Deja un comentario

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