Compartilhar via


Credenciais

As credenciais da fonte de dados podem ser armazenadas em cache e reutilizados entre comandos. Por padrão, esse cache é armazenado em um arquivo local em %LOCALAPPDATA%/Microsoft/pqtest e criptografados com a chave de usuário atual.

Como alternativa ao armazenamento de arquivos local, você pode armazenar credenciais em um do Azure Key Vault. Você pode habilitar essa opção usando a opção --keyVault / -kv, fornecendo um nome de cofre de chaves como o argumento de opção e definindo as variáveis de ambiente especificadas na tabela a seguir:

Nota

Ao usar o Azure Key Vault, as credenciais são armazenadas como um único objeto binário, em vez de segredos individuais.

Variável Detalhes Amostra
PQTEST_AZURE_CLIENT_ID ID (GUID) do aplicativo Microsoft Entra ID autorizado a acessar seu cofre de chaves. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_CLIENT_SECRET Segredo do cliente para seu aplicativo do Microsoft Entra ID. <espaço reservado do cliente-segredo>
PQTEST_AZURE_TENANT_ID ID (GUID) para o locatário que possui o Azure Key Vault. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_KEY_VAULT_URL URL para o cofre de chaves. https://<myvault>.vault.azure.net

Exemplo de como usar a opção 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

Modelo de Credencial

Use este comando para gerar um modelo de credencial no formato JSON que pode ser passado para o comando set-credential. O comando exige que você forneça uma extensão e informações da fonte de dados. Se a fonte de dados der suporte a mais de um tipo de autenticação, você precisará especificar qual tipo de autenticação usar com a opção --authenticationKind / -ak.

O modelo de saída tem valores de espaço reservado identificados com um $$<nome de chave>$$ que devem ser substituídos antes de serem transmitidos para o comando set-credential.

Por exemplo, MyConnector dá suporte a tipos de autenticação Anonymous e UsernamePassword.

Para gerar uma credencial Anonymous, o seguinte comando seria usado:

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

Nota

O valor JSON de saída não contém valores de espaço reservado, pois o tipo Anonymous não requer nenhum.

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

O comando a seguir seria usado para gerar uma credencial UsernamePassword para o mesmo conector:

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

O modelo resultante contém os valores de espaço reservado $$USERNAME$$ e $$PASSWORD$$.

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

Set-credential

Use este comando para armazenar as credenciais usadas pelos comandos de conexão de teste e de teste de execução. O comando exige que você forneça uma extensão e informações da fonte de dados. As credenciais podem ser definidas de uma das três maneiras:

  • Usando uma credencial no formato JSON.
  • Credencial automática para tipos de autenticação que não exigem configurações adicionais (Anonymous e Windows).
  • Usando o modo interativo.

Credenciais no formato JSON

Qualquer tipo de credencial pode ser definido usando o formato de credencial JSON. Use o comando credential-template para gerar o JSON de credenciais.

Ao definir uma credencial usando o modelo JSON, a entrada deve ser canalizada para o comando ou fornecida de stdin por meio de um arquivo.

Este é um exemplo de como definir uma credencial Anonymous redirecionando o resultado do comando credential-template para 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

as credenciais Anonymous e Windows podem ser definidas usando credenciais automáticas.

Aqui está um exemplo de como definir uma credencial de um arquivo armazenado em disco (usando entrada redirecionada):

<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"
}

Credenciais automáticas

Você pode definir credenciais de Anonymous e Windows sem fornecer um modelo de credencial .

Nota

As credenciais do Windows definidas dessa forma usam a identidade do usuário atual como padrão. Use o comando credential-template para gerar uma credencial JSON que pode ser modificada para usar credenciais alternativas da conta do Windows.

Para gerar uma credencial Windows, o seguinte comando seria usado:

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

Para gerar uma credencial Anonymous, o seguinte comando seria usado:

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

Modo interativo

As credenciais podem ser definidas usando o modo interativo usando a opção de linha de comando --interactive.

O modo interativo pode ser usado para os tipos de autenticação OAuth e Aad. A execução do comando nesse modo apresenta uma caixa de diálogo OAuth que pode ser usada para testar a implementação do OAuth.

Os fluxos OAuth interativos usam o componente do navegador WebView2 (Microsoft Edge Chromium), que pode precisar ser instalado separadamente. Encontre mais detalhes na documentação do OAuth do Power Query para o Power BI Desktop.

A opção --useLegacyBrowser pode ser usada para forçar uma janela do navegador IE11 integrada.