MSAL Node gebruiken met de macOS Broker

Microsoft Authentication Library (MSAL) Node kan de macOS-verificatiebroker gebruiken om eenmalige aanmelding (SSO) en veilige tokenovername te bieden met behulp van accounts die bekend zijn bij het besturingssysteem. In dit artikel wordt de macOS-broker uitgelegd en wordt uitgelegd hoe u brokered-verificatie inschakelt en gebruikt in MSAL Node.

Zie MSAL Node gebruiken met de systeemeigen tokenbroker voor een overzicht van brokerondersteuning op alle platforms.

Wat is de macOS-broker?

In macOS wordt de verificatiebroker geleverd door de Microsoft Enterprise SSO-invoegtoepassing voor Apple-apparaten die worden geleverd met de Bedrijfsportal-app. De broker beheert verificatiehandhakes en tokenlevenscyclus voor verbonden accounts. Belangrijke voordelen zijn onder andere:

  • Verbeterde beveiliging. Beveiligingsverbeteringen worden geleverd via broker-updates zonder dat er app-codewijzigingen nodig zijn. Refresh-tokens zijn apparaatgebonden en beschermd tegen gegevensdiefstal.
  • Systeemintegratie. Gebruikers kunnen bestaande aangemelde accounts opnieuw gebruiken vanuit Bedrijfsportal, waardoor het opnieuw invoeren van referenties wordt verminderd.
  • Tokenbeveiliging. De broker zorgt ervoor dat refresh tokens worden gekoppeld aan de context van het apparaat.

Ondersteunde platforms en architecturen

Onderdeel Supported
Architectuur ARM64 (Apple Silicon) en x64 (Intel)
macOS-versie macOS 10.15 (Catalina) en hoger

Tip

We raden u aan om bij te werken naar de nieuwste macOS-versie om compatibiliteit met de nieuwste beveiligingsfuncties en brokermogelijkheden te garanderen.

Prerequisites

  • Node.js 18 of hoger
  • Installeer @azure/msal-node-extensions als afhankelijkheid
  • Het apparaat moet worden ingeschreven via Bedrijfsportal. Controleer na de inschrijving of andere Microsoft-apps zich kunnen aanmelden via de SSO-extensie (u kunt zich bijvoorbeeld aanmelden bij Word via Bedrijfsportal).
  • Registreer de omleidings-URI van de broker bij de registratie van uw app. Zie Omleidings-URI voor de ondersteunde URI-waarden.

Omleidings-URL

Voor macOS-brokerstromen moet u een platformspecifieke omleidings-URI registreren onder het platform voor mobiele toepassingen en desktoptoepassingen in de Azure-portal.

Voor niet-ondertekende toepassingen (scripts, CLI-hulpprogramma's):

Gebruik de volgende omleidings-URI voor niet-ondertekende toepassingen, zoals scripts en CLI-hulpprogramma's:

msauth.com.msauth.unsignedapp://auth

Voor ondertekende/gebundelde toepassingen:

Gebruik de volgende omleidings-URI-indeling voor ondertekende of gebundelde toepassingen:

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

Vervang door <your-bundle-id> de Apple-bundel-id van uw toepassing (bijvoorbeeld msauth.com.example.myapp://auth).

Important

De omleidings-URI van de broker mag alleen worden gebruikt voor brokerstromen. Als uw toepassing ook gebruikmaakt van op browsers gebaseerde verificatiestromen, gebruikt u een afzonderlijke omleidings-URI voor deze stromen. Het opgeven van de omleidings-URI van de broker naar een browserstroom leidt tot een fout.

De functie inschakelen

Voor het inschakelen van de macOS-broker is dezelfde configuratie vereist als Windows. Geef een NativeBrokerPlugin exemplaar door in de brokerconfiguratie:

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 valt niet terug op een browsergebaseerde stroom als de broker niet beschikbaar is. Schakel brokered verificatie alleen in in omgevingen die ondersteuning bieden voor de broker om onverwachte fouten te voorkomen.

Tokens verkrijgen

Interactieve tokenverwerving

Gebruik acquireTokenInteractive dit om een token aan te vragen via de macOS-broker:

const tokenRequest = {
    scopes: ["User.Read"],
};

const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);

Token ophalen zonder gebruikersinteractie

Na een initiële interactieve aanmelding kunnen daaropvolgende tokenaanvragen zonder tussenkomst van de gebruiker worden gedaan:

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);
}

Token-caching

De verificatiebroker verwerkt het vernieuwen en opslaan van toegangstokens. Tokens die via de broker worden verkregen, worden beheerd door de broker zelf en zijn apparaatgebonden. U hoeft geen aangepaste caching in te stellen wanneer u de broker gebruikt.

Verschillen bij het gebruik van de macOS-broker

  • Wanneer de broker om interactie moet vragen, wordt er een systeemeigen macOS-verificatiedialoogvenster weergegeven. Hierdoor wordt de gebruikerservaring (UX) gewijzigd in vergelijking met verificatie op basis van een browser.
  • De forceRefresh parameter voor acquireTokenSilent wordt niet ondersteund. Mogelijk ontvangt u een token in de cache van de broker, ongeacht deze vlag.
  • Toegangstoken proof-of-possession (PoP) wordt ondersteund via de broker.

Limitations

  • Azure AD B2C- en Active Directory Federation Services -autoriteiten (AD FS) worden niet ondersteund via de macOS-broker.
  • Id-providers (IDP's) van derden worden niet ondersteund.
  • Bedrijfsportal moet worden geïnstalleerd en het apparaat moet worden ingeschreven om de broker te laten functioneren.
  • msal-node valt niet terug naar een browser als de broker niet beschikbaar is. Schakel de broker alleen in in omgevingen die deze ondersteunen.