public GraphServiceClient GetClientForUser(ClaimsPrincipal user) { var authenticationContext = _adalFactory.GetAuthenticationContextForUser(user); var objectId = user.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; return(new GraphServiceClient(new DelegateAuthenticationProvider(async requestMessage => { var result = await authenticationContext.AcquireTokenSilentAsync(Resource, _clientCredential, new UserIdentifier(objectId, UserIdentifierType.UniqueId)); requestMessage.Headers.Authorization = new AuthenticationHeaderValue(result.AccessTokenType, result.AccessToken); }))); }
public ActiveDirectoryClient GetClientForUser(ClaimsPrincipal user) { var authenticationContext = _adalFactory.GetAuthenticationContextForUser(user); var objectId = user.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value; var tenantId = user.FindFirst("http://schemas.microsoft.com/identity/claims/tenantid").Value; var servicePointUri = new Uri(Resource); var serviceRoot = new Uri(servicePointUri, tenantId); return(new ActiveDirectoryClient(serviceRoot, async() => { var result = await authenticationContext.AcquireTokenSilentAsync(Resource, _clientCredential, new UserIdentifier(objectId, UserIdentifierType.UniqueId)); return result.AccessToken; })); }