在Azure移動應用程序的後端,我使用Azure的內置身份驗證服務在用戶登錄到我的應用程序時獲取訪問令牌通過Microsoft帳戶。我正在成功獲取該令牌。通過Azure的內置應用服務身份驗證獲得的令牌與Microsoft Graph無效的身份驗證令牌錯誤
但是,我然後嘗試呼叫Microsoft Graph以獲取經過身份驗證的用戶的姓名,電子郵件和ID。 Azure的日誌流顯示我這個錯誤:
MicrosoftGraphServiceException:
Code: InvalidAuthenticationToken
Message: CompactToken parsing failed with error code: 8004920A
這裏是適用的代碼:
[MobileAppController]
public class MicrosoftAccountController : ApiController
{
MicrosoftAccountCredentials credentials;
// GET api/<controller>
public async Task<DataObjects.User> Get()
{
if (credentials == null)
{
credentials =
await this.User.GetAppServiceIdentityAsync<MicrosoftAccountCredentials>(this.Request);
var accessToken = credentials.AccessToken;
}
GraphServiceClient graphClient =
new Microsoft.Graph.GraphServiceClient(new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
return Task.FromResult(0);
}));
Microsoft.Graph.User graphuser = await graphClient.Me.Request().GetAsync();
}
感謝您的幫助!
從您的問題中不清楚您要求的範圍。你可以添加一個你回來的JWT令牌的例子嗎? –
我在診斷日誌流中顯示:2017-11-19T22:34:03 PID [11148]詳細調用外部HTTP端點GET https://apis.live.net/v5.0/me。 2017-11-19T22:34:04 PID [11148]信息登錄已完成'我刪除了用戶的電子郵件'。提供者:'microsoftaccount'。 2017-11-19T22:34:04 PID [11148]爲站點'mattsapp.azurewebsites.net'詳細寫'AppServiceAuthSession'cookie。長度:492. – Matt
https://mattsapp.azurewebsites.net/.auth/login/done#token= – Matt