Megosztás a következőn keresztül:


Azure Identity beépülő modul közvetítőalapú hitelesítéshez

Ez a csomag egy beépülő modult biztosít az Azure Identity Library for JavaScripthez (@azure/identity), amely lehetővé teszi egy hitelesítési közvetítő, például WAMhasználatát.

A hitelesítési közvetítő egy olyan alkalmazás, amely egy felhasználó gépén fut, amely kezeli a csatlakoztatott fiókok hitelesítési kézfogásait és tokenkarbantartását. Jelenleg csak a Windows hitelesítési közvetítő, a Web Account Manager (WAM) támogatott.

forráskód | minták | API-referenciadokumentáció | [A Microsoft Entra ID dokumentációja] (https://learn.microsoft.com/entra/identity/)

Kezdetekhez

import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

Előfeltételek

Megjegyzés: A helyi fejlesztéshez a következővel @azure/identity-brokerlehet, hogy további eszközöket kell telepítenie. A node-gyp a rendszer API-k eléréséhez szükséges kiegészítők összeállítására szolgál. A telepítési követelményeket a node-gyp README tartalmazza.

Linuxon a könyvtár használja libsecret , ezért előfordulhat, hogy telepítenie kell. A disztribúciótól függően a következő parancsot kell futtatnia:

  • Debian/Ubuntu: sudo apt-get install libsecret-1-dev
  • Red Hat alapú: sudo yum install libsecret-devel
  • Arch Linux: sudo pacman -S libsecret

Megjegyzés:

A közvetített hitelesítés jelenleg csak Windows és Linux rendszeren támogatott. A macOS még nem támogatott.

A csomag telepítése

Ez a csomag a JavaScripthez készült Azure Identity-hez készült. Telepítse @azure/identity és ezt a csomagot is a npm:

npm install --save @azure/identity
npm install --save @azure/identity-broker

Támogatott környezetek

A JavaScripthez készült Azure Identity beépülő modulok a 20-as verziótól kezdve támogatják a Node.js stabil (páros számozású) verzióit. Bár a beépülő modulok más Node.js verziókban is futhatnak, nem garantált a támogatás. @azure/identity-broker nem támogatja a böngészőkörnyezeteket.

Főbb fogalmak

Ha először használja @azure/identity vagy Microsoft Entra-azonosítót, javasoljuk, hogy először olvassa el A @azure/identity használata a Microsoft Entra-azonosítóval című cikket. Ez a dokumentum részletesebb ismereteket nyújt a platformról és az Azure-fiók helyes konfigurálásáról.

Szülőablak fogópontjai

Ha InteractiveBrowserCredentialkeresztül hitelesíti a közvetítőt, egy szülőablak-leíró szükséges annak biztosításához, hogy a hitelesítési párbeszédpanel megfelelően jelenjen meg a kérelmező ablakban. Az eszközök grafikus felhasználói felületeinek kontextusában az ablakfogópont egy egyedi azonosító, amelyet az operációs rendszer minden egyes ablakhoz hozzárendel. A Windows operációs rendszer esetében ez a leíró egy egész szám, amely egy adott ablakra mutató hivatkozásként szolgál.

Microsoft-fiók (MSA) átengedés

A Microsoft-fiókok (MSA) a felhasználók által a Microsoft-szolgáltatások eléréséhez létrehozott személyes fiókok. Az MSA-átengedés egy örökölt konfiguráció, amely lehetővé teszi a felhasználók számára, hogy jogkivonatokat szerezzenek azokhoz az erőforrásokhoz, amelyek általában nem fogadják el az MSA-bejelentkezéseket. Ez a funkció csak belső alkalmazások számára érhető el. Az MSA-átengedés használatára konfigurált alkalmazással hitelesítő felhasználók beállíthatják, hogy legacyEnableMsaPassthroughtrueInteractiveBrowserCredentialNodeOptions.brokerOptions belül, hogy lehetővé tegyék ezeknek a személyes fiókoknak a WAM általi listázását.

Átirányítási URI-k

A Microsoft Entra-alkalmazások átirányítási URI-kra támaszkodnak annak meghatározásához, hogy hová küldjék a hitelesítési választ, miután egy felhasználó bejelentkezett. A WAM-alapú közvetítőalapú hitelesítés engedélyezéséhez az alábbi mintának megfelelő átirányítási URI-t kell regisztrálni az alkalmazáshoz:

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

Azure Identity beépülő modulok

@azure/identity 2.0.0-s verziójától a JavaScript identitásügyfél-kódtára tartalmaz egy beépülő modul API-t. Ez a csomag (@azure/identity-broker) exportál egy beépülő modulobjektumot, amelyet argumentumként kell átadnia a legfelső szintű useIdentityPlugin függvénynek a @azure/identity csomagból. Engedélyezze a natív közvetítőt a programban az alábbiak szerint:

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

A useIdentityPluginhívása után a natív közvetítő beépülő modul regisztrálva lesz a @azure/identity csomagban, és elérhető lesz a WAM-közvetítő hitelesítését támogató InteractiveBrowserCredential. Ez a hitelesítő adat brokerOptions a konstruktor beállításai között.

Megjegyzések: A @azure/identity 4.11.0-beta.1 DefaultAzureCredential verziótól kezdve támogatja a Windows Web Account Manager használatával történő bejelentkezést. Engedélyezze a natív közvetítőt a programban az alábbiak szerint:

import { useIdentityPlugin, DefaultAzureCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new DefaultAzureCredential();

Példák

A beépülő modul regisztrálása után engedélyezheti a WAM-közvetítő hitelesítését úgy, hogy egy hitelesítőadat-konstruktornak brokerOptionsenabled tulajdonsággal továbbítja true. Az alábbi példában a InteractiveBrowserCredentialhasználjuk.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";

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

Az ablakfogópont beolvasására szolgáló Electron-alkalmazás teljes példáját a minta című témakörben talál.

Az alapértelmezett fiók használata bejelentkezéshez

Ha a useDefaultBrokerAccount beállítás trueértékre van állítva, a hitelesítő adatok megkísérlik csendben használni az alapértelmezett közvetítőfiókot. Ha az alapértelmezett fiók használata sikertelen, a hitelesítő adatok visszaállnak az interaktív hitelesítésre.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    useDefaultBrokerAccount: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

// We'll use the Microsoft Graph scope 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), "...");

Hibaelhárítás

A különböző hibaforgatókönyvek diagnosztizálásával kapcsolatos részletekért tekintse meg az Azure Identity [hibaelhárítási útmutatóját][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.3.0/sdk/identity/identity/TROUBLESHOOTING.md].

Fakitermelés

A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a AZURE_LOG_LEVEL környezeti változót info. Másik lehetőségként a naplózás futásidőben is engedélyezhető a setLogLevel meghívásával a @azure/logger:

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

setLogLevel("info");

Következő lépések

Visszajelzés küldése

Ha hibákat tapasztal, vagy javaslatai vannak, kérjük, nyisson meg egy problémát.

Hozzájárulás

Ha hozzá szeretne járulni ehhez a kódtárhoz, tekintse meg a közreműködői útmutatót, további információt a kód összeállításáról és teszteléséről.