Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
MSAL Node může pomocí zprostředkovatele Microsoft Single Sign-on pro Linux umožnit jednotné přihlašování (SSO) a bezpečné získávání tokenů v podporovaných distribucích Linuxu. Zprostředkovatel spravuje ověřovací handshaky a životní cyklus tokenů, takže uživatelům umožňuje využívat integraci s účty, které systém zná.
Tento článek vysvětluje, co je zprostředkovatel Linuxu, jeho distribuce a jak povolit získání zprostředkovaného tokenu v aplikaci Node.js.
Přehled podpory zprostředkovatele na všech platformách najdete v tématu Použití uzlu MSAL s nativním zprostředkovatele tokenů.
Co je zprostředkovatel Linuxu
Microsoft Single Sign-On pro Linux je zprostředkovatel autentizace distribuovaný nezávisle na linuxové distribuci. Nainstalujte ho pomocí správce balíčků (sudo apt install microsoft-identity-broker nebo sudo dnf install microsoft-identity-broker). Je také dodáván jako závislost aplikací Microsoftu, jako je Portál společnosti.
Mezi klíčové výhody patří:
- Jednotné přihlašování. Zjednodušuje ověřování uživatelů pomocí Microsoft Entra ID a chrání obnovovací tokeny před exfiltrací a zneužitím.
- Lepší zabezpečení. Vylepšení zabezpečení se doručují prostřednictvím aktualizací zprostředkovatele bez nutnosti změn kódu aplikace.
- Ochrana tokenů. Zprostředkovatel zajišťuje, že obnovovací tokeny jsou vázané na zařízení.
- Integrace systému. Aplikace se napojují na integrovaný výběr účtů, který uživatelům umožňuje rychle vybrat některý ze stávajících účtů.
Podporované distribuce
- Ubuntu 22.04 / 24.04 (x64)
- Red Hat Enterprise Linux (RHEL) 8 / 9 / 10 (x64)
Předpoklady
- Node.js 18 nebo novější
- Nainstalujte
@azure/msal-node-extensionsjako závislost -
microsoft-identity-brokermusí být na zařízení nainstalováno. - Zaregistrujte identifikátor URI přesměrování zprostředkovatele v registraci vaší aplikace (viz níže uvedený identifikátor URI přesměrování)
- Nainstalujte požadované systémové závislosti (viz níže systémové závislosti ).
Přesměrování URI
Pro toky zprostředkovatele pro Linux zaregistrujte na portálu Azure následující identifikátor URI přesměrování v části platformy Mobilní a desktopové aplikace:
https://login.microsoftonline.com/common/oauth2/nativeclient
Systémové závislosti
Ubuntu 22.04/24.04
sudo apt install libsecret-1-0 libdbus-1-3
- libsecret — bezpečně ukládá a načítá autentizační tokeny pomocí systémové klíčenky (GNOME Keyring nebo KDE Wallet).
-
dbus – Komunikace mezi procesy s zprostředkovatelem ověřování. Sběrnice relace D-Bus musí být spuštěna (ve desktopových prostředích je to standard; bezobslužné servery mohou vyžadovat
dbus-run-sessionnebo ekvivalent).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
- WebKitGTK – poskytuje vložený prohlížeč pro interaktivní přihlašovací uživatelské rozhraní.
- GTK – Základní sada nástrojů uživatelského rozhraní vyžadovaná webKitGTK.
Povolení funkce
Při povolení zprostředkovatele pro Linux se používá stejná konfigurace jako ve Windows a macOS. Předejte instanci NativeBrokerPlugin v konfiguraci brokeru:
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 pokud není zprostředkovatel dostupný, nepřepadá zpět do toku založeného na prohlížeči. Povolte zprostředkované ověřování jenom na podporovaných zařízeních s Linuxem, abyste se vyhnuli neočekávaným chybám.
Získávání tokenů
Interaktivní získání tokenu
Slouží acquireTokenInteractive k vyžádání tokenu prostřednictvím zprostředkovatele Linuxu:
const tokenRequest = {
scopes: ["User.Read"],
};
const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);
Získání tichého tokenu
Po počátečním interaktivním přihlášení se následné žádosti o tokeny dají bezobslužně provádět:
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);
}
Ukládání tokenů do mezipaměti
Zprostředkovatel ověřování zpracovává ukládání do mezipaměti obnovovacího a přístupového tokenu. Tokeny získané prostřednictvím zprostředkovatele jsou spravovány samotným zprostředkovatelem a jsou vázané na zařízení. Při použití zprostředkovatele nemusíte nastavovat vlastní ukládání do mezipaměti.
Rozdíly při použití zprostředkovatele Linuxu
- Když zprostředkovatel potřebuje zobrazit výzvu k interakci, zobrazí se nativní přihlašovací dialogové okno (založené na WebKitGTK). Tím se změní uživatelské prostředí (UX) v porovnání s ověřováním na základě prohlížeče.
- Parametr
forceRefreshproacquireTokenSilentnení podporován. Token uložený v mezipaměti můžete obdržet od zprostředkovatele bez ohledu na tento příznak. - Aby komunikace zprostředkovatele fungovala, musí být spuštěná sběrnice relací D-Bus.
Omezení
- Autority Azure AD B2C a Služby Active Directory Federation (AD FS) nejsou prostřednictvím linuxového zprostředkovatele podporovány.
- Poskytovatelé identity od třetích stran (IDP) nejsou podporováni.
-
microsoft-identity-brokermusí být nainstalován na zařízení, aby zprostředkovatel fungoval. -
msal-nodenepřechází zpět do prohlížeče, pokud zprostředkovatel není k dispozici. Povolte zprostředkovatele pouze v prostředích, která ho podporují. - Přístupový token typu proof-of-possession (PoP) není v současné době podporován prostřednictvím zprostředkovatele pro Linux.