Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsofts autentiseringsbibliotek (MSAL) Node kan använda Microsoft Single Sign-on för Linux-mäklaren för att erbjuda enkel inloggning (SSO) och säker hämtning av token på Linux-distributioner som stöds. Förmedlaren hanterar autentiseringshandskakningar och tokenens livscykel, vilket gör att användare kan dra nytta av integrering med konton som systemet känner till.
Den här artikeln förklarar vad Linux-brokern är, vilka distributioner den stöder och hur du aktiverar tokenhämtning via broker i en Node.js-app.
En översikt över brokerstöd på alla plattformar finns i Använda MSAL Node med den interna tokenförmedlaren.
Vad är Linux-koordinatorn?
Microsoft enkel inloggning för Linux är en autentiseringskoordinator som levereras oberoende av Linux-distributionen. Installera den med en pakethanterare (sudo apt install microsoft-identity-broker eller sudo dnf install microsoft-identity-broker). Det paketeras också som ett beroende av Microsoft program, till exempel Company Portal.
Viktiga fördelar är:
- Enkel inloggning. Förenklar hur användare autentiserar med Microsoft Entra ID och skyddar uppdateringstoken från exfiltrering och missbruk.
- Förbättrad säkerhet. Säkerhetsförbättringar levereras via uppdateringar av förmedlaren utan att det krävs ändringar i appkoden.
- Tokenskydd. Förmedlaren säkerställer att uppdateringstoken är enhetsbundna.
- Systemintegrering. Program ansluts till den inbyggda kontoväljaren så att användarna snabbt kan välja ett befintligt konto.
Distributioner som stöds
- Ubuntu 22.04 / 24.04 (x64)
- Red Hat Enterprise Linux (RHEL) 8 / 9 / 10 (x64)
Förutsättningar
- Node.js 18 eller senare
- Installera
@azure/msal-node-extensionssom ett beroende -
microsoft-identity-brokermåste vara installerat på enheten - Registrera broker-omdirigerings-URI:n i din appregistrering (se Omdirigerings-URI nedan)
- Installera de systemberoenden som krävs (se Systemberoenden nedan)
URI för omdirigering
För koordinatorflöden i Linux registrerar du följande omdirigerings-URI under plattformen för mobil- och skrivbordsprogram i Azure-portalen:
https://login.microsoftonline.com/common/oauth2/nativeclient
Systemberoenden
Ubuntu 22.04/24.04
sudo apt install libsecret-1-0 libdbus-1-3
- libsecret – lagrar och hämtar autentiseringstoken på ett säkert sätt via systemnyckelringen (GNOME-nyckelring eller KDE-plånbok).
-
dbus – Kommunikation mellan processer med autentiseringskoordinatorn. En D-Bus-sessionsbuss måste köras (standard i skrivbordsmiljöer, huvudlösa servrar kan behöva
dbus-run-sessioneller motsvarande).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
- WebKitGTK – tillhandahåller den inbäddade webbläsaren för det interaktiva inloggningsgränssnittet.
- GTK – Den underliggande verktygslådan för användargränssnittet som krävs av WebKitGTK.
Aktivera funktionen
När du aktiverar Linux-koordinatorn används samma konfiguration som Windows och macOS. Skicka en NativeBrokerPlugin instans i koordinatorkonfigurationen:
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 faller inte tillbaka på ett webbläsarbaserat flöde om brokern inte är tillgänglig. Aktivera endast asynkron autentisering på Linux-enheter som stöds för att undvika oväntade fel.
Hämta token
Anskaffning av interaktiv token
Använd acquireTokenInteractive för att begära en token via Linux-koordinatorn:
const tokenRequest = {
scopes: ["User.Read"],
};
const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);
Tyst tokenförvärv
Efter en första interaktiv inloggning kan efterföljande tokenbegäranden göras tyst:
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);
}
Cachelagring av token
Autentiseringskoordinatorn hanterar cachelagring av uppdaterings- och åtkomsttoken. Token som erhålls via förmedlaren hanteras av förmedlaren själv och är enhetsbundna. Du behöver inte konfigurera anpassad cachelagring när du använder brokern.
Skillnader när du använder Linux-koordinatorn
- När mäklaren behöver fråga efter interaktion visas en intern inloggningsdialogruta (WebKitGTK-baserad). Detta ändrar användarupplevelsen (UX) jämfört med webbläsarbaserad autentisering.
- Parametern
forceRefreshföracquireTokenSilentstöds inte. Du kan få en cachad token från förmedlaren oavsett den här flaggan. - En sessionsbuss för D-Bus måste vara igång för att kommunikation med broker ska fungera.
Limitations
- Azure AD B2C- och Active Directory Federation Services (ADFS)-myndigheter (AD FS) stöds inte via Linux-koordinatorn.
- Identitetsprovidrar från tredje part (IDP:er) stöds inte.
-
microsoft-identity-brokermåste vara installerat på enheten för att mäklaren ska fungera. -
msal-nodegår inte tillbaka till en webbläsare om brokern inte är tillgänglig. Aktivera endast förmedlaren i miljöer som stöder den. - Åtkomsttoken med innehavsbevis (PoP) stöds för närvarande inte via Linux-brokern.