Compartir a través de


Credenciales

Las credenciales del origen de datos se pueden almacenar en caché y reutilizarse entre comandos. De forma predeterminada, esta caché se almacena en un archivo local en %LOCALAPPDATA%/Microsoft/pqtest y cifradas con la clave de usuario actual.

Como alternativa al almacenamiento de archivos local, puede almacenar credenciales en una Azure Key Vault. Puede habilitar esta opción mediante la opción --keyVault / -kv, proporcionando un nombre de almacén de claves como argumento de opción y estableciendo las variables de entorno especificadas en la tabla siguiente:

Nota

Al usar Azure Key Vault, las credenciales se almacenan como un único objeto binario, en lugar de secretos individuales.

Variable Detalles Ejemplo
PQTEST_AZURE_CLIENT_ID Id. (GUID) para la aplicación de Microsoft Entra ID autorizada para acceder al almacén de claves. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_CLIENT_SECRET Secreto de cliente para la aplicación de Microsoft Entra ID. <client-secret-placeholder>
PQTEST_AZURE_TENANT_ID Id. (GUID) del inquilino que posee Azure Key Vault. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_KEY_VAULT_URL Dirección URL del almacén de claves. https://<myvault>.vault.azure.net

Ejemplo de uso de la opción en keyVault :

set PQTEST_AZURE_CLIENT_ID="a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
set PQTEST_AZURE_CLIENT_SECRET="<client-secret-placeholder>"
set PQTEST_AZURE_TENANT_ID="a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
set PQTEST_AZURE_KEY_VAULT_URL="https://myvault.vault.azure.net"

<Path to PQTest.exe>.\PQTest.exe list-credential --keyVault secretName

Plantilla de credenciales

Use este comando para generar una plantilla de credencial en formato JSON que se puede pasar al comando set-credential. El comando requiere que proporcione una extensión y la información del origen de datos . Si el origen de datos admite más de un tipo de autenticación, debe especificar qué tipo de autenticación usar con la opción --authenticationKind / -ak.

La plantilla de salida tiene valores de marcador de posición identificados con un nombre de clave $$<>$$ que deben ser reemplazados antes de pasarlos al comando set-credential.

Por ejemplo, MyConnector admite los tipos de autenticación Anonymous y UsernamePassword.

Para generar una credencial de Anonymous, se usaría el siguiente comando:

<Path to PQTest.exe>.\PQTest.exe credential-template --extension MyConnector.mez --queryFile MyConnectorQuery.m --prettyPrint --authenticationKind Anonymous

Nota

El valor JSON de salida no contiene ningún valor de marcador de posición, ya que el tipo Anonymous no requiere ninguno.

{
  "AuthenticationKind": "Anonymous",
  "AuthenticationProperties": {},
  "PrivacySetting": "None",
  "Permissions": []
}

El siguiente comando se usaría para generar una credencial UsernamePassword para el mismo conector:

<Path to PQTest.exe>.\PQTest.exe credential-template --extension MyConnector.mez --queryFile MyConnectorQuery.m --prettyPrint --authenticationKind UsernamePassword

La plantilla resultante contiene los valores de marcador $$USERNAME$$ y $$PASSWORD$$.

{
  "AuthenticationKind": "UsernamePassword",
  "AuthenticationProperties": {
    "Username": "$$USERNAME$$",
    "Password": "$$PASSWORD$$"
  },
  "PrivacySetting": "None",
  "Permissions": []
}

Set-credential

Use este comando para almacenar las credenciales que usan los comandos test-connection y run-test. Para el comando es necesario que proporcione uan extensión e información del origen de datos. Las credenciales se pueden establecer de una de estas tres maneras:

  • Uso de una credencial en formato JSON.
  • Credencial automática para los tipos de autenticación que no requieren configuración adicional (Anonymous y Windows).
  • Uso del modo interactivo.

Credenciales en formato JSON

Cualquier tipo de credencial se puede establecer con el formato de credencial JSON. Use el comando credential-template para generar el JSON de credenciales.

Al establecer una credencial mediante la plantilla JSON, la entrada debe canalizarse al comando o proporcionarse desde stdin a través de un archivo.

Este es un ejemplo de cómo establecer una credencial Anonymous mediante la canalización del resultado del comando credential-template en set-credential:

<Path to PQTest.exe>.\PQTest.exe credential-template -e MyConnector.mez -q MyConnectorQuery.m -p -ak Anonymous | pqtest set-credential -e MyConnector.mez -q MyConnectorQuery.m -p
{
  "Details": {
    "Kind": "MyConnector",
    "Path": "MyConnector",
    "NormalizedPath": "MyConnector",
    "IsDefaultForKind": false
  },
  "Message": "Successfully set credential",
  "Status": "Success"
}

Nota

Las credenciales Anonymous y Windows pueden establecerse mediante las credenciales automáticas .

Este es un ejemplo de cómo establecer una credencial desde un archivo almacenado en el disco (mediante la entrada redirigida):

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p < mySavedCredential.json
{
  "Details": {
    "Kind": "MyConnector",
    "Path": "MyConnector",
    "NormalizedPath": "MyConnector",
    "IsDefaultForKind": false
  },
  "Message": "Successfully set credential",
  "Status": "Success"
}

Credenciales automáticas

Puede establecer credenciales de Anonymous y Windows sin proporcionar una plantilla de credenciales .

Nota

Windows las credenciales establecidas de esta manera usan por defecto la identidad del usuario actual. Use el comando credential-template para generar una credencial JSON que se pueda modificar para usar una cuenta de Windows alternativa.

Para generar una credencial de Windows, se usaría el siguiente comando:

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p --authenticationKind windows

Para generar una credencial de Anonymous, se usaría el siguiente comando:

<Path to PQTest.exe>.\PQTest.exe set-credential -e MyConnector.mez -q MyConnectorQuery.m -p --authenticationKind anonymous

Modo interactivo

Las credenciales se pueden establecer mediante el modo interactivo mediante la opción --interactive línea de comandos.

El modo interactivo se puede usar para los tipos de autenticación OAuth y Aad. Al ejecutar el comando en este modo se presenta un cuadro de diálogo de OAuth que se puede usar para probar la implementación de OAuth.

Los flujos de OAuth interactivos usan el componente del explorador WebView2 (Microsoft Edge Chromium), que puede que deba instalarse por separado. Puede encontrar más detalles en la documentación de OAuth de Power Query para Power BI Desktop.

La opción --useLegacyBrowser se puede usar para forzar una ventana del explorador insertado IE11.