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 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-extensionssom 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
forceRefreshföracquireTokenSilentstö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-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.