Partilhar via


Credenciais

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

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

Observação

Ao usar o Cofre da Chave do Azure, 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) para a aplicação Microsoft Entra ID autorizada a aceder ao seu cofre de chaves. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_CLIENT_SECRET Segredo do cliente para seu aplicativo Microsoft Entra ID. <espaço reservado do segredo do cliente>
PQTEST_AZURE_TENANT_ID ID (GUID) para o locatário que possui o Cofre de Chaves do Azure. a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1
PQTEST_AZURE_KEY_VAULT_URL URL para o cofre de chaves. https://<myvault>.vault.azure.net

Exemplo de utilização da 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 forneça uma extensão , o e as informações da fonte de dados . Se a fonte de dados oferecer 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 template de saída tem valores de espaço reservado identificados pelas chaves $$<>$$, que devem ser substituídos antes de os passar para o comando set-credential.

Por exemplo, MyConnector suporta os 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

Observação

O valor JSON do resultado não contém nenhum valor de espaço reservado, pois o tipo de Anonymous não requer nenhum deles.

{
  "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 valores de espaço reservado $$USERNAME$$ e $$PASSWORD$$.

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

Definir credencial

Use este comando para armazenar credenciais usadas pelos comandos de teste de conexão e de execução de teste. O comando requer que você forneça uma extensão e informações da fonte de dados. As credenciais podem ser definidas de 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 em 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 a partir de stdin por meio de um arquivo.

Veja um exemplo de como definir uma credencial Anonymous canalizando 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"
}

Observação

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

Veja um exemplo de configuração de uma credencial a partir de um arquivo armazenado no 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 Anonymous e Windows sem fornecer um modelo de credencial .

Observação

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

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. Executar o comando neste modo apresenta uma caixa de diálogo OAuth que pode ser usada para testar sua implementação OAuth.

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

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