Använda MSAL Node med macOS Broker

Microsofts autentiseringsbibliotek nod (MSAL) kan använda macOS-autentiseringskoordinatorn för att tillhandahålla enkel inloggning (SSO) och säker tokenanskaffning med hjälp av konton som är kända för operativsystemet. Den här artikeln förklarar macOS-brokern och hur du aktiverar och använder brokerbaserad autentisering i MSAL Node.

En översikt över brokerstöd på alla plattformar finns i Använda MSAL Node med den interna tokenförmedlaren.

Vad är macOS-koordinatorn

I macOS tillhandahålls autentiseringskoordinatorn av plugin-programmet Microsoft Enterprise SSO för Apple-enheter, som levereras med Company Portal-appen. Förmedlaren hanterar autentiseringsutbyten och livscykeln för token för anslutna konton. Viktiga fördelar är:

  • Förbättrad säkerhet. Säkerhetsförbättringar levereras via uppdateringar av förmedlaren utan att det krävs ändringar i appkoden. Uppdateringstoken är enhetsbundna och skyddade från exfiltrering.
  • Systemintegrering. Användare kan återanvända befintliga inloggade konton från Company Portal, vilket minskar återinmatningen av autentiseringsuppgifter.
  • Tokenskydd. Förmedlaren ser till att uppdateringstoken är knutna till enhetskontexten.

Plattformar och arkitekturer som stöds

Component Stöds
Arkitektur ARM64 (Apple Silicon) och x64 (Intel)
macOS-version macOS 10.15 (Catalina) och senare

Tip

Vi rekommenderar att du uppdaterar till den senaste macOS-versionen för att säkerställa kompatibilitet med de senaste säkerhetsfunktionerna och koordinatorfunktionerna.

Förutsättningar

  • Node.js 18 eller senare
  • Installera @azure/msal-node-extensions som ett beroende
  • Enheten måste registreras via Company Portal. Efter registreringen kontrollerar du att andra Microsoft appar kan logga in via SSO-tillägget (du kan till exempel logga in på Word via Company Portal).
  • Registrera brokerns omdirigerings-URI i din appregistrering. De URI-värden som stöds finns i Omdirigerings-URI.

URI för omdirigering

För koordinatorflöden för macOS måste du registrera en plattformsspecifik omdirigerings-URI under plattformen för mobil- och skrivbordsprogram i Azure portalen.

För osignerade program (skript, CLI-verktyg):

Använd följande omdirigerings-URI för osignerade program, till exempel skript och CLI-verktyg:

msauth.com.msauth.unsignedapp://auth

För signerade/paketerade program:

Använd följande omdirigerings-URI-format för signerade eller paketerade program:

msauth.<your-bundle-id>://auth

Ersätt <your-bundle-id> med programmets Apple-paketidentifierare (t.ex. msauth.com.example.myapp://auth).

Important

brokerns omdirigerings-URI ska endast användas för brokerflöden. Om ditt program också använder webbläsarbaserade autentiseringsflöden använder du en separat omdirigerings-URI för dessa. Att ange brokerns omdirigerings-URI till ett webbläsarbaserat flöde leder till ett fel.

Aktivera funktionen

Att aktivera broker i macOS kräver samma konfiguration som i Windows. 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 mäklarbaserad autentisering i miljöer som stöder mäklaren 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 macOS-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 cache när du använder mäklaren.

Skillnader vid användning av macOS-koordinatorn

  • När brokern behöver begära användarinteraktion visas en inbyggd autentiseringsdialogruta i macOS. Detta ändrar användarupplevelsen (UX) jämfört med webbläsarbaserad autentisering.
  • Parametern forceRefresh för acquireTokenSilent stöds inte. Du kan få en cachad token från förmedlaren oavsett den här flaggan.
  • Åtkomsttoken av typen proof-of-possession (PoP) stöds via förmedlaren.

Limitations

  • Azure AD B2C- och Active Directory Federation Services (ADFS)-auktoriteter (AD FS) stöds inte via macOS-brokern.
  • Identitetsprovidrar från tredje part (IDP:er) stöds inte.
  • Company Portal måste vara installerad och enheten måste vara registrerad för att brokern ska fungera.
  • msal-node går inte tillbaka till en webbläsare om brokern inte är tillgänglig. Aktivera endast förmedlaren i miljöer som stöder den.