I don't know much about MSAL in comparison to ADAL, but I believe one difference is the Azure endpoint. It is now changed to version 2 instead. As recommended by Microsoft, when authenticating users against Azure AD, the suggested approach is to use oauth 2.0 implicit flow. More info can be found here.
Your steps in acquiring token for Microsoft Graph involve a bit of time configuring.
You should register both of your front end and the API in the Azure app registration
Within the front-end app, you enable implicit flow, you give it some permissions to interact with graph api. This is required in order to use your existing token to acquire another token for Microsoft Graph. (And you can do the same thing for any other APIs, eg. CRM API, Sharepoint API)
Once you have this configured, all you need to do is to do another post request(you must include the JWT token you retrieved earlier in the request header) to https://graph.microsoft.com to acquire the token. Depending on how you grant permissions to front-end, the token can be used within a given scope that you set in the app registration.
You maybe wondering why use implicit flow? It’s because every time your front-end app sends requests to the backend API, the JWT token that you retrieved at signed in can be used to authenticate against your API. This way, only your front end can make calls to the api.