Použití MSAL Node s brokerem v systému macOS

uzel Identity a ověřování Microsoftu (MSAL) může pomocí zprostředkovatele ověřování macOS poskytovat jednotné přihlašování (SSO) a získání zabezpečených tokenů pomocí účtů známých operačnímu systému. Tento článek vysvětluje broker pro macOS a popisuje, jak povolit a používat zprostředkované ověřování v MSAL Node.

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 macOS

V systému macOS je zprostředkovatel ověřování k dispozici prostřednictvím modulu Microsoft Enterprise SSO pro zařízení Apple, který je součástí aplikace Portál společnosti. Broker spravuje procesy ověřování a životní cyklus tokenů pro připojené účty. Mezi klíčové výhody patří:

  • Lepší zabezpečení. Vylepšení zabezpečení se doručují prostřednictvím aktualizací zprostředkovatele bez nutnosti změn kódu aplikace. Obnovovací tokeny jsou vázané na zařízení a jsou chráněné před exfiltrací.
  • Integrace systému. Uživatelé můžou znovu použít existující přihlášené účty z Portál společnosti a snížit tak opětovné zadávání přihlašovacích údajů.
  • Ochrana tokenů. Zprostředkovatel zajišťuje, že obnovovací tokeny jsou svázané s kontextem zařízení.

Podporované platformy a architektury

Součást Podporováno
Architektura ARM64 (Apple Silicon) a x64 (Intel)
Verze macOS macOS 10.15 (Catalina) a novější

Tip

Doporučujeme aktualizovat na nejnovější verzi macOS, abyste zajistili kompatibilitu s nejnovějšími funkcemi zabezpečení a možnostmi zprostředkovatele.

Předpoklady

  • Node.js 18 nebo novější
  • Nainstalujte @azure/msal-node-extensions jako závislost
  • Zařízení musí být zaregistrované prostřednictvím Portál společnosti. Po registraci ověřte, že se ostatní aplikace Microsoft můžou přihlásit prostřednictvím rozšíření jednotného přihlašování (například se můžete přihlásit k Word prostřednictvím Portál společnosti).
  • Zaregistrujte identifikátor URI přesměrování zprostředkovatele v registraci vaší aplikace. Podporované hodnoty identifikátoru URI najdete v části Redirect URI.

Přesměrování URI

Pro toky zprostředkovatele pro macOS musíte na portálu Azure zaregistrovat identifikátor URI přesměrování specifický pro danou platformu v části Mobile and desktop applications.

Pro nepodepsané aplikace (skripty, nástroje rozhraní příkazového řádku):

Pro nepodepsané aplikace, jako jsou skripty a nástroje příkazového řádku, použijte následující identifikátor URI pro přesměrování:

msauth.com.msauth.unsignedapp://auth

Pro podepsané nebo sbalené aplikace:

Pro podepsané nebo sdružené aplikace použijte následující formát identifikátoru URI pro přesměrování:

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

Nahraďte <your-bundle-id> identifikátorem sady Apple vaší aplikace (např msauth.com.example.myapp://auth. ).

Important

Identifikátor URI přesměrování brokeru by se měl používat pouze pro toky brokeru. Pokud vaše aplikace také používá ověřovací toky v prohlížeči, použijte pro ně samostatnou adresu URI pro přesměrování. Zadání identifikátoru URI pro přesměrování zprostředkovatele do toku založeného na prohlížeči povede k chybě.

Povolení funkce

Povolení zprostředkovatele macOS vyžaduje stejnou konfiguraci jako Windows. 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í pouze v prostředích, která podporují zprostředkovatele, aby nedocházelo k 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 macOS:

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 macOS

  • Když zprostředkovatel potřebuje zobrazit výzvu k interakci, zobrazí se nativní dialogové okno pro ověřování macOS. 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 forceRefresh pro acquireTokenSilent není podporován. Token uložený v mezipaměti můžete obdržet od zprostředkovatele bez ohledu na tento příznak.
  • Přístupový token pro ověření vlastnictví (PoP) je podporován prostřednictvím zprostředkovatele.

Omezení

  • Autority Azure AD B2C a Služby Active Directory Federation (AD FS) nejsou prostřednictvím zprostředkovatele v systému macOS podporovány.
  • Poskytovatelé identity od třetích stran (IDP) nejsou podporováni.
  • Portál společnosti musí být nainstalován a zařízení musí být zaregistrované, aby zprostředkovatel fungoval.
  • msal-node nepř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í.