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
eWindows
). - 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.