Here is what I have. (ApiVersion is v1.0)
private async Task GetUsersRoles(string accessToken, ClaimsIdentity identity, string userId)
Please take another read of this Microsoft Graph topic on permissions here: https://graph.microsoft.io/en-us/docs/authorization/permission_scopes. There are a couple of concepts here that might help clarify things (although our docs can certainly be improved in this area):
If you always have a signed-in user present (which it looks like), I would strongly recommend that you use delegated permissions over application permissions.
I also noticed that you are creating claims using group display names. The group display name is NOT immutable and can be changed... Not sure if this could lead to some interesting security issues if apps are making authz decisions based on the value of these claims.
Hope this helps,