title: Acquiring an Access token by using JWT used for AzureBearerAuthentication
body: <p>I have a WebApi app that is using Windows Azure Active Directory Bearer Authentication to authenticate users.  After the user is authenticated, I want to query Azure's Graph Api to get more information about the user. </p>
  
  <p>I have a solution that works, but seems very hacky.  I read the Authorization header and strip out the bearer part, and then I use AquireToken to get the new token:</p>
  
  <pre><code>var authHeader = HttpContext.Current.Request.Headers["Authorization"];
  var tokenMatch = Regex.Match(authHeader, @"(?&lt;=^\s*bearer\s+).+$", RegexOptions.IgnoreCase);
  
  var result = authInfo.AuthContext.AcquireToken(resourceId, authInfo.Credential, 
      new UserAssertion(tokenMatch.Value));
  
  return result.AccessToken;
  </code></pre>
  
  <p>There has to be a better way, but I've tried AcquireToken many different overloads and this was the only way I could get it to work.  I tried AcquireTokenSilent, which works in my client app because there is a token in the TokenCache, but when I try in the WebApi, there doesn't seem anywhere to implement a TokenCache.</p>