MSAL-csomópont használata a Linux Brokerrel

Microsoft Authentication Library (MSAL) csomópont az Microsoft Egyszeri bejelentkezés Linux-közvetítővel biztosít egyszeri bejelentkezést (SSO) és biztonságos jogkivonat-beszerzést a támogatott Linux-disztribúciókon. A közvetítő kezeli a hitelesítési kézfogásokat és a jogkivonatok életciklusát, így a felhasználók kihasználhatják a rendszer által ismert fiókokkal való integráció előnyeit.

Ez a cikk bemutatja, hogy mi a Linux-közvetítő, milyen disztribúciókat támogat, és hogyan engedélyezheti a közvetített jogkivonatok beszerzését egy Node.js-alkalmazásban.

Az összes platform közvetítői támogatásának áttekintéséért lásd: MSAL-csomópont használata a natív jogkivonat-közvetítővel.

Mi a Linux-közvetítő?

A Microsoft Linuxhoz készült egyszeri bejelentkezési megoldása a Linux-disztribúciótól függetlenül szállított hitelesítési közvetítő. Telepítse egy csomagkezelővel (sudo apt install microsoft-identity-broker vagy sudo dnf install microsoft-identity-broker). Emellett Microsoft alkalmazások, például Céges portál függőségeként is csomagban van.

A legfontosabb előnyök a következők:

  • Egyszeri bejelentkezés. Leegyszerűsíti a felhasználók Microsoft Entra ID való hitelesítését, és védi a frissítési jogkivonatokat a kiszivárgástól és a visszaéléstől.
  • Fokozott biztonság. A biztonsági fejlesztések az alkalmazáskód módosítása nélkül, közvetítői frissítéseken keresztül érhetők el.
  • Tokenvédelem. A közvetítő szolgáltatás biztosítja, hogy a frissítési tokenek az eszközhöz legyenek kötve.
  • Rendszerintegráció. Az alkalmazások a beépített fiókválasztóhoz csatlakoznak, így a felhasználók gyorsan kiválaszthatják a meglévő fiókokat.

Támogatott disztribúciók

  • Ubuntu 22.04 / 24.04 (x64)
  • Red Hat Enterprise Linux (RHEL) 8 / 9 / 10 (x64)

Prerequisites

  • Node.js 18 vagy újabb
  • Telepítse a(z) @azure/msal-node-extensions elemet függőségként
  • microsoft-identity-broker telepítve kell lennie az eszközön
  • Regisztrálja a közvetítő átirányítási URI-ját az alkalmazásregisztrációban (lásd alább az átirányítási URI-t )
  • Telepítse a szükséges rendszerfüggőségeket (lásd az alábbi rendszerfüggőségeket )

Átirányítási URI

Linux-közvetítőfolyamatok esetén regisztrálja a következő átirányítási URI-t a Mobil és asztali alkalmazások platformon a Azure portálon:

https://login.microsoftonline.com/common/oauth2/nativeclient

Rendszerfüggőségek

Ubuntu 22.04/24.04

sudo apt install libsecret-1-0 libdbus-1-3
  • libsecret — Biztonságosan tárolja és visszakeresi a hitelesítési tokeneket a rendszer kulcstartóján keresztül (GNOME Keyring vagy KDE Wallet).
  • dbus – Folyamatközi kommunikáció a hitelesítési közvetítővel. A D-Bus munkamenetbusznak futnia kell (asztali környezetekben ez alapértelmezett; a fej nélküli kiszolgálók esetén szükség lehet a dbus-run-session vagy annak megfelelőjére).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
  • WebKitGTK – Az interaktív bejelentkezési felhasználói felület beágyazott böngészője.
  • GTK – A WebKitGTK által igényelt mögöttes felhasználói felületi eszközkészlet.

A funkció engedélyezése

A Linux-közvetítő engedélyezése ugyanazt a konfigurációt használja, mint a Windows és a macOS. Adjon át egy NativeBrokerPlugin példányt a közvetítő konfigurációjában:

import { PublicClientApplication, Configuration } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";

const msalConfig: Configuration = {
    auth: {
        clientId: "your-client-id",
    },
    broker: {
        nativeBrokerPlugin: new NativeBrokerPlugin(),
    },
};

const pca = new PublicClientApplication(msalConfig);

Note

msal-node nem kerül vissza böngészőalapú folyamatba, ha a közvetítő nem érhető el. A váratlan hibák elkerülése érdekében csak a támogatott Linux-eszközökön engedélyezze a közvetítőalapú hitelesítést.

Tokenek beszerzése

Interaktív tokenbeszerzés

Használja a(z) acquireTokenInteractive elemet token igényléséhez a Linux-közvetítőn keresztül:

const tokenRequest = {
    scopes: ["User.Read"],
};

const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);

Csendes jogkivonat beszerzése

A kezdeti interaktív bejelentkezés után a további tokenkérelmek némán is indíthatók:

const accounts = await pca.getAllAccounts();

if (accounts.length > 0) {
    const silentRequest = {
        scopes: ["User.Read"],
        account: accounts[0],
    };

    const result = await pca.acquireTokenSilent(silentRequest);
    console.log("Access token (silent):", result.accessToken);
}

Token gyorsítótárazása

A hitelesítési közvetítő kezeli a frissítési és hozzáférési jogkivonat gyorsítótárazását. A közvetítőn keresztül szerzett tokeneket magát a közvetítő kezeli, és eszközhöz kötöttek. A bróker használatakor nem kell egyéni gyorsítótár-beállításokat megadnia.

Különbségek a Linux-közvetítő használatakor

  • Amikor a közvetítőnek interakciót kell kérnie, megjelenik egy natív bejelentkezési párbeszédpanel (WebKitGTK-alapú). Ez megváltoztatja a felhasználói élményt (UX) a böngészőalapú hitelesítéshez képest.
  • A(z) forceRefresh esetén a(z) acquireTokenSilent paraméter nem támogatott. Ettől a jelölőtől függetlenül kaphat gyorsítótárazott tokent a brokertől.
  • A közvetítői kommunikáció működéséhez D-Bus munkamenetbusznak kell futnia.

Limitations

  • Az Azure AD B2C- és az Active Directory összevonási szolgáltatások (AD FS)- (AD FS-) végpontok Linux brokeren keresztül nem támogatottak.
  • A külső identitásszolgáltatók (IDP-k) nem támogatottak.
  • A közvetítő működéséhez telepíteni kell a(z) microsoft-identity-broker elemet az eszközre.
  • msal-node nem kerül vissza a böngészőbe, ha a közvetítő nem érhető el. Csak az azt támogató környezetekben engedélyezze a közvetítőt.
  • Az access token proof-of-possession (PoP) jelenleg nem támogatott a Linux-közvetítőn keresztül.