// <AddGraphInfoToClaimsSnippet>
        private async Task AddGraphInfoToClaims(
            IAccessTokenProviderAccessor accessor,
            ClaimsPrincipal claimsPrincipal)
        {
            var graphClient = clientFactory.GetAuthenticatedClient();

            // Get user profile including mailbox settings
            // GET /me?$select=displayName,mail,mailboxSettings,userPrincipalName
            var user = await graphClient.Me
                       .Request()
                       // Request only the properties used to
                       // set claims
                       .Select(u => new {
                u.DisplayName,
                u.Mail,
                u.MailboxSettings,
                u.UserPrincipalName
            })
                       .GetAsync();

            logger.LogInformation($"Got user: {user.DisplayName}");

            claimsPrincipal.AddUserGraphInfo(user);

            // Get user's photo
            // GET /me/photos/48x48/$value
            var photo = await graphClient.Me
                        .Photos["48x48"] // Smallest standard size
                        .Content
                        .Request()
                        .GetAsync();

            claimsPrincipal.AddUserGraphPhoto(photo);
        }