Offentliga klientprogram och konfidentiella klientprogram

Microsoft Authentication Library (MSAL) definierar två typer av klienter: offentliga klienter och konfidentiella klienter. De två klienttyperna särskiljs genom att de kan autentiseras på ett säkert sätt med auktoriseringsservern och upprätthålla konfidentialiteten för sina klientautentiseringsuppgifter.

  • Konfidentiella klientprogram är appar som körs på servrar (webbappar, webb-API-appar eller till och med tjänst-/daemon-appar). De anses vara svåra att komma åt och kan därför hålla ett program hemligt. Konfidentiella klienter kan lagra konfigurationstidshemligheter. Varje instans av klienten har en distinkt konfiguration (inklusive klient-ID och klienthemlighet). Dessa värden är svåra för slutanvändare att extrahera. En webbapp är den vanligaste konfidentiella klienten. Klient-ID:t exponeras via webbläsaren, men hemligheten skickas endast i den bakre kanalen och exponeras aldrig direkt.

    Konfidentiella klientappar:

    Web appWeb APIDaemon/service

  • Offentliga klientprogram är appar som körs på enheter eller stationära datorer eller i en webbläsare. De är inte betrodda att på ett säkert sätt behålla programhemligheter, så de får bara åtkomst till webb-API:er för användarens räkning. (De stöder endast offentliga klientflöden.) Offentliga klienter kan inte lagra konfigurationstidshemligheter, så de har inte klienthemligheter.

    Offentliga klientappar:

    Desktop appBrowserless APIMobile app

I MSAL.js finns det ingen uppdelning av offentliga och konfidentiella klientappar. MSAL.js representerar klientappar som användaragentbaserade appar, offentliga klienter där klientkoden körs i en användaragent som en webbläsare. Dessa klienter lagrar inte hemligheter eftersom webbläsarkontexten är öppet tillgänglig.

Jämföra klienttyperna

Här följer några likheter och skillnader mellan offentliga och konfidentiella klientappar:

  • Båda typerna av appar underhåller en cache för användartoken och kan hämta en token tyst (när token redan finns i tokencachen). Konfidentiella klientappar har också en apptokencache för token som är till för själva appen.
  • Båda apptyperna hanterar användarkonton och kan hämta ett konto från cacheminnet för användartoken, hämta ett konto från dess identifierare eller ta bort ett konto.
  • Offentliga klientappar har fyra sätt att hämta en token (fyra autentiseringsflöden). Konfidentiella klientappar har tre sätt att hämta en token (och ett sätt att beräkna URL:en för identitetsprovidern auktorisera slutpunkten). Mer information finns i Hämta token.

I MSAL skickas klient-ID :t (kallas även program-ID eller app-ID) en gång när programmet byggs. Den behöver inte skickas igen när appen hämtar en token. Detta gäller både för offentliga och konfidentiella klientappar. Konstruktorer av konfidentiella klientappar skickas också klientautentiseringsuppgifter: hemligheten de delar med identitetsprovidern.

Nästa steg

Mer information om programkonfiguration och instansiering finns i: