MSAL Node gebruiken met de Linux Broker

Microsoft Authentication Library (MSAL) Node kan de Microsoft Single Sign-on for Linux Broker gebruiken om eenmalige aanmelding (SSO) en veilige tokenovername op ondersteunde Linux-distributies te bieden. De broker beheert verificatiehandhakes en tokenlevenscyclus, zodat gebruikers kunnen profiteren van integratie met accounts die bekend zijn bij het systeem.

In dit artikel wordt uitgelegd wat de Linux-broker is, distributies die worden ondersteund en hoe u brokered tokenverwerving kunt inschakelen in een Node.js-app.

Zie MSAL Node gebruiken met de systeemeigen tokenbroker voor een overzicht van brokerondersteuning op alle platforms.

Wat is de Linux-broker?

De Microsoft Eenmalige aanmelding voor Linux is een verificatiebroker die onafhankelijk van de Linux-distributie wordt verzonden. Installeer het met een pakketbeheerder (sudo apt install microsoft-identity-broker of sudo dnf install microsoft-identity-broker). Het is ook gebundeld als een afhankelijkheid van Microsoft toepassingen zoals Bedrijfsportal.

Belangrijke voordelen zijn onder andere:

  • Eenmalige aanmelding. Vereenvoudigt de verificatie van gebruikers met Microsoft Entra ID en beschermt vernieuwingstokens tegen exfiltratie en misbruik.
  • Verbeterde beveiliging. Beveiligingsverbeteringen worden geleverd via broker-updates zonder dat er app-codewijzigingen nodig zijn.
  • Tokenbeveiliging. De broker zorgt ervoor dat vernieuwingstokens apparaatgebonden zijn.
  • Systeemintegratie. Toepassingen kunnen worden aangesloten op de ingebouwde accountkiezer, zodat gebruikers snel een bestaand account kunnen selecteren.

Ondersteunde distributies

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

Prerequisites

  • Node.js 18 of hoger
  • Installeer @azure/msal-node-extensions als afhankelijkheid
  • microsoft-identity-broker moet op het apparaat zijn geïnstalleerd
  • Registreer de omleidings-URI van de broker bij uw app-registratie (zie omleidings-URI hieronder)
  • Installeer de vereiste systeemafhankelijkheden (zie systeemafhankelijkheden hieronder)

Omleidings-URL

Registreer voor Linux Broker-stromen de volgende omleidings-URI onder het platform voor mobiele toepassingen en desktoptoepassingen in de Azure-portal:

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

Systeemafhankelijkheden

Ubuntu 22.04/24.04

sudo apt install libsecret-1-0 libdbus-1-3
  • libsecret — Slaat authenticatietokens veilig op en haalt deze op via de systeemsleutelhanger (GNOME Keyring of KDE Wallet).
  • dbus — Communicatie tussen processen met de verificatiebroker. Een D-Bus-sessiebus moet worden uitgevoerd (standaard in bureaubladomgevingen; hoofdloze servers hebben mogelijk behoefte dbus-run-session aan of gelijkwaardig).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
  • WebKitGTK — verzorgt de geïntegreerde browser voor de interactieve aanmeldingsinterface.
  • GTK : de onderliggende UI-toolkit die is vereist voor WebKitGTK.

De functie inschakelen

Als u de Linux-broker inschakelt, wordt dezelfde configuratie gebruikt als Windows en macOS. Geef een NativeBrokerPlugin exemplaar door in de brokerconfiguratie:

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 valt niet terug op een browsergebaseerde stroom als de broker niet beschikbaar is. Schakel brokered authenticatie alleen in op ondersteunde Linux-apparaten om onverwachte fouten te voorkomen.

Tokens verkrijgen

Interactieve tokenverwerving

Gebruik acquireTokenInteractive dit om een token aan te vragen via de Linux-broker:

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

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

Token ophalen zonder gebruikersinteractie

Na een initiële interactieve aanmelding kunnen daaropvolgende tokenaanvragen zonder tussenkomst van de gebruiker worden gedaan:

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-caching

De verificatiebroker verwerkt het vernieuwen en opslaan van toegangstokens. Tokens die via de broker worden verkregen, worden beheerd door de broker zelf en zijn apparaatgebonden. U hoeft geen aangepaste caching in te stellen wanneer u de broker gebruikt.

Verschillen bij het gebruik van de Linux-broker

  • Wanneer de broker om interactie moet vragen, wordt er een systeemeigen aanmeldingsdialoogvenster (op basis van WebKitGTK) weergegeven. Hierdoor wordt de gebruikerservaring (UX) gewijzigd in vergelijking met verificatie op basis van een browser.
  • De forceRefresh parameter voor acquireTokenSilent wordt niet ondersteund. Mogelijk ontvangt u een token in de cache van de broker, ongeacht deze vlag.
  • Er moet een D-Bus-sessiebus actief zijn om communicatie met de broker te laten werken.

Limitations

  • Azure AD B2C- en Active Directory Federation Services -autoriteiten (AD FS) worden niet ondersteund via de Linux-broker.
  • Id-providers (IDP's) van derden worden niet ondersteund.
  • microsoft-identity-broker moet op het apparaat zijn geïnstalleerd om de broker te laten functioneren.
  • msal-node valt niet terug naar een browser als de broker niet beschikbaar is. Schakel de broker alleen in in omgevingen die deze ondersteunen.
  • Toegangstokenbewijs (PoP) wordt momenteel niet ondersteund via de Linux-broker.