Openbare en vertrouwelijke clienttoepassingen

Met de Microsoft Authentication Library (MSAL) worden twee typen clients gedefinieerd: openbare clients en vertrouwelijke clients. De twee clienttypen worden onderscheiden door hun mogelijkheid om veilig te verifiëren met de autorisatieserver en de vertrouwelijkheid van hun clientreferenties te behouden.

  • Vertrouwelijke clienttoepassingen zijn apps die worden uitgevoerd op servers (web-apps, web-API-apps of zelfs service-/daemon-apps). Ze worden als moeilijk toegankelijk beschouwd en kunnen daarom een toepassingsgeheim bewaren. Vertrouwelijke clients kunnen configuratietijdgeheimen bevatten. Elk exemplaar van de client heeft een afzonderlijke configuratie (inclusief client-id en clientgeheim). Deze waarden kunnen moeilijk door eindgebruikers worden geëxtraheerd. Een web-app is de meest voorkomende vertrouwelijke client. De client-id wordt weergegeven via de webbrowser, maar het geheim wordt alleen doorgegeven in het Upstream-kanaal en wordt nooit rechtstreeks weergegeven.

    Vertrouwelijke client-apps:

    Web-appWeb-APIDaemon/service

  • Openbare clienttoepassingen zijn apps die worden uitgevoerd op apparaten of desktopcomputers of in een webbrowser. Deze worden niet vertrouwd om toepassingsgeheimen veilig te bewaren, zodat ze alleen toegang hebben tot web-API's namens de gebruiker. (Ze ondersteunen alleen openbare-clientstromen.) Openbare clients kunnen geen configuratietijdgeheimen bevatten, zodat ze geen clientgeheimen hebben.

    Openbare client-apps:

    Desktop-appBrowserloze APIMobiele app

In MSAL.js is er geen scheiding van openbare en vertrouwelijke client-apps. MSAL.js vertegenwoordigt client-apps als op gebruikersagents gebaseerde apps, openbare clients waarin de clientcode wordt uitgevoerd in een gebruikersagent zoals een webbrowser. Deze clients slaan geen geheimen op omdat de browsercontext openbaar toegankelijk is.

De clienttypen vergelijken

Hier volgen enkele overeenkomsten en verschillen tussen openbare en vertrouwelijke client-apps:

  • Beide soorten apps onderhouden een gebruikerstokencache en kunnen een token op de achtergrond verkrijgen (wanneer het token zich al in de tokencache bevindt). Vertrouwelijke client-apps hebben ook een app-tokencache voor tokens die voor de app zelf bestemd zijn.
  • Beide app-typen beheren gebruikersaccounts en kunnen een account ophalen uit de gebruikerstokencache, een account ophalen uit de id of een account verwijderen.
  • Openbare client-apps kennen vier manieren om een token te verkrijgen (vier verificatiestromen). Vertrouwelijke client-apps kennen drie manieren om een token te verkrijgen (en één manier om de URL van het eindpunt van de id-provider voor autorisatie te berekenen). Zie Tokens verkrijgen voor meer informatie.

In MSAL wordt de client-id (ook wel de toepassings-id of app-id genoemd) eenmaal doorgegeven bij de constructie van de toepassing. Deze hoeft niet opnieuw te worden doorgegeven wanneer de app een token verkrijgt. Dit geldt voor zowel openbare als vertrouwelijke client-apps. Aan constructors van vertrouwelijke client-apps worden ook clientreferenties doorgegeven: het geheim dat ze delen met de id-provider.

Volgende stappen

Zie voor meer informatie over toepassingsconfiguratie en het maken van instanties: