Udostępnij za pośrednictwem


Wtyczka tożsamości platformy Azure na potrzeby uwierzytelniania Visual Studio Code

Ten pakiet udostępnia wtyczkę do biblioteki tożsamości platformy Azure dla języka JavaScript (@azure/identity), która umożliwia uwierzytelnianie za pomocą rozszerzenia "Konto platformy Azure" dla Visual Studio Code. Ta wtyczka udostępnia zależności VisualStudioCodeCredential elementu in @azure/identity i umożliwia jego użycie samodzielnie lub w ramach elementu DefaultAzureCredential.

Kod | źródłowy Próbki

Wprowadzenie

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

useIdentityPlugin(vsCodePlugin);

Wymagania wstępne

Instalowanie pakietu

Ten pakiet jest przeznaczony do użycia z usługą Azure Identity dla języka JavaScript. Zainstaluj zarówno pakiet, jak @azure/identity i ten przy użyciu polecenia npm:

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

Obsługiwane środowiska

Wtyczki tożsamości platformy Azure dla języka JavaScript obsługują stabilne (parzysty) wersje Node.js począwszy od wersji 12. Chociaż wtyczki mogą być uruchamiane w innych wersjach środowiska Node, nie ma gwarantowanej obsługi. @azure/identity-vscode nie obsługuje środowisk przeglądarki.

Kluczowe pojęcia

Jeśli po raz pierwszy używasz @azure/identity usługi lub Platforma tożsamości Microsoft (Azure Active Directory), najpierw zalecamy przeczytanie artykułu Using with Microsoft Identity Platform (Korzystanie @azure/identity z platformy tożsamości microsoft). Ten dokument zawiera bardziej szczegółowe informacje na temat platformy i sposobu prawidłowego konfigurowania konta platformy Azure.

Wtyczki tożsamości platformy Azure

@azure/identity Od wersji 2.0.0 biblioteka klienta identity dla języka JavaScript zawiera interfejs API wtyczki. Ten pakiet (@azure/identity-vscode) eksportuje obiekt wtyczki, który należy przekazać jako argument do funkcji najwyższego @azure/identity poziomu useIdentityPlugin z pakietu. Włącz uwierzytelnianie za pomocą rozszerzenia "Konto platformy Azure" dla Visual Studio Code w następujący sposób:

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

useIdentityPlugin(vsCodePlugin);

Po wywołaniu useIdentityPluginVisualStudioCodeCredential polecenia element z @azure/identity pakietu zostanie włączony. Jeśli ta wtyczka nie jest używana, VisualStudioCodeCredential wyrzuci element CredentialUnavailableErrori nie będzie dostępny jako część .DefaultAzureCredential

Uwierzytelnianie Visual Studio Code

VisualStudioCodeCredentialużywa sesji uwierzytelniania z rozszerzenia "Konto platformy Azure". Aby użyć tego poświadczenia, musisz zalogować się do konta platformy Azure przy użyciu rozszerzenia . W tym celu otwórz Visual Studio Code, upewnij się, że rozszerzenie jest zainstalowane, a następnie zaloguj się z palety poleceń przy użyciu opcji "Azure: Sign In", aby otworzyć okno przeglądarki i zalogować się do platformy Azure. Alternatywnie możesz wybrać pozycję "Azure: Zaloguj się przy użyciu kodu urządzenia", aby użyć przepływu kodu urządzenia.

Po zalogowaniu może być konieczne wybranie subskrypcji (na przykład jeśli masz wiele subskrypcji platformy Azure) i zmianę aktywnej subskrypcji przy użyciu menu, aby wybrać wpis "Azure: Wybierz subskrypcje".

Przykłady

Po zarejestrowaniu wtyczki można użyć VisualStudioCodeCredential jej w podobny sposób do innych klas poświadczeń w programie @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);
});

Można również użyć polecenia DefaultAzureCredential, który podejmie próbę uwierzytelnienia przy użyciu rozszerzenia "Konto platformy Azure" dla Visual Studio Code, jeśli jest dostępny:

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);
});

Rozwiązywanie problemów

Rejestrowanie

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną AZURE_LOG_LEVEL środowiskową na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel polecenie w pliku @azure/logger:

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

setLogLevel("info");

Następne kroki

Przekazywanie opinii

Jeśli napotkasz usterki lub masz sugestie, otwórz problem.

Współtworzenie

Jeśli chcesz współtworzyć tę bibliotekę, przeczytaj przewodnik współtworzenia , aby dowiedzieć się więcej na temat tworzenia i testowania kodu.

Wrażenia