Partilhar via


Plug-in de identidade do Azure para autenticação de código do Visual Studio

Este pacote fornece um plug-in para a biblioteca de Identidade do Azure para JavaScript (@azure/identity) que habilita a autenticação por meio da extensão "Conta do Azure" para o Visual Studio Code. Este plugin fornece as dependências do VisualStudioCodeCredential em @azure/identity e permite que ele seja usado por conta própria ou como parte de DefaultAzureCredential.

Código fonte | Exemplos

Primeiros passos

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

Pré-requisitos

Instalar o pacote

Este pacote foi projetado para ser usado com o Azure Identity for JavaScript. Instale o @azure/identity e este pacote usando npm:

$ npm install --save @azure/identity
$ npm install --save-dev @azure/identity-vscode

Ambientes suportados

Os plug-ins do Azure Identity para JavaScript suportam versões estáveis (numeradas pares) do Node.js a partir da v12. Embora os plugins possam ser executados em outras versões do Node, nenhum suporte é garantido. @azure/identity-vscode não suporta ambientes de navegadores.

Conceitos-chave

Se esta for a primeira vez que você usa o @azure/identity ou a plataforma de identidade da Microsoft (Azure Ative Directory), recomendamos que você leia Usando @azure/identity com a Microsoft Identity Platform primeiro. Este documento lhe dará uma compreensão mais profunda da plataforma e como configurar sua conta do Azure corretamente.

Plug-ins do Azure Identity

A partir de @azure/identity versão 2.0.0, a biblioteca de cliente Identity para JavaScript inclui uma API de plug-in. Este pacote (@azure/identity-vscode) exporta um objeto de plugin que você deve passar como um argumento para a função de useIdentityPlugin de nível superior do pacote @azure/identity. Habilite a autenticação por meio da extensão "Conta do Azure" para o Visual Studio Code da seguinte maneira:

import { useIdentityPlugin } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

Depois de chamar useIdentityPlugin, o VisualStudioCodeCredential do pacote @azure/identity será habilitado. Se este plugin não for usado, então VisualStudioCodeCredential lançará um CredentialUnavailableError, e ele não estará disponível como parte de DefaultAzureCredential.

Autenticação de código do Visual Studio

VisualStudioCodeCredential usa a sessão de autenticação do extensão "Conta do Azure". Para usar essa credencial, você deve entrar em sua conta do Azure usando a extensão. Para fazer isso, abra o Visual Studio Code, verifique se a extensão está instalada e entre na Paleta de Comandos usando a opção "Azure: Entrar" para abrir uma janela do navegador e entrar no Azure. Como alternativa, você pode selecionar "Azure: Entrar com código de dispositivo" para usar o fluxo de código do dispositivo.

Depois de iniciar sessão, poderá ter de selecionar uma subscrição (por exemplo, se tiver várias subscrições do Azure) e pode alterar a subscrição ativa utilizando o menu para selecionar a entrada "Azure: Selecionar Subscrições".

Exemplos

Uma vez que o plugin é registrado, você pode usáVisualStudioCodeCredential de forma semelhante às outras classes de credenciais em @azure/identity:

import { useIdentityPlugin, VisualStudioCodeCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

async function main() {
  const credential = new VisualStudioCodeCredential();

  // The graph.microsoft.com scope is used as an example
  const scope = "https://graph.microsoft.com/.default";

  // Print out part of the access token
  console.log((await credential.getToken(scope)).token.substr(0, 10), "...");
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

Você também pode usar o DefaultAzureCredential, que tentará autenticar usando a extensão "Conta do Azure" para o Visual Studio Code, se estiver disponível:

import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { vsCodePlugin } from "@azure/identity-vscode";

useIdentityPlugin(vsCodePlugin);

async function main() {
  // With the plugin enabled above, `DefaultAzureCredential` will use
  // Visual Studio Code's "Azure Account" extension to authenticate if
  // it is available.
  const credential = new DefaultAzureCredential();

  // This will print a JWT access_token and its expiration timestamp
  // The graph.microsoft.com scope is used as an example
  console.log("Token:", await credential.getToken("https://graph.microsoft.com/.default"));
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

Solução de problemas

Registo

Habilitar o registro em log pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em tempo de execução chamando setLogLevel no @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Próximos passos

Fornecer comentários

Se você encontrar bugs ou tiver sugestões, por favor, abrir um problema.

Contribuição

Se você quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.

Impressões