我正在编写一个C#.NET应用程序。它连接到我们在配置为使用AAD的Azure上的服务。反过来,我们的服务尝试通过EWS拨打电话给Exchange。调用AuthenticationContext.AcquireToken导致“注册多因素身份验证”异常
所有这一切对我来说都很好。但是,我刚刚收到一个新的开发框,现在完全相同的客户端/服务代码无法正确认证。
一切似乎运行良好,直到我们的服务调用AuthenticationContext.AcquireToken。此时,AdalException引发此消息:
AADSTS50079:由于您的管理员进行了配置更改,或者因为您搬到新位置,您必须注册多因素身份验证才能访问“00000002- 0000-0ff1-ce00-000000000000' 。 跟踪ID:1bf25608-ed26-477b-a2b4-379e20705260 相关ID:449b5dce-dcb0-4d6a-83f2-dc906bbfd7c7 时间戳:2016年11月4日22:48:08Z
我不知道是什么是关于使用这台引起错误发生的新机器。我如何“注册多重身份验证”?为什么在这台机器上运行我的应用程序时只需要执行此操作?
谢谢!
这里是一些授权码我梳理出我们的应用程序的给正在发生的事情的一个更好的画面:
var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;
var upn = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Upn);
var email = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email);
var userName = upn != null ? upn.Value : email?.Value;
accessToken = bootstrapContext.Token;
ClientCredential clientCred = new ClientCredential("514b1e66-32af-4e11-a9d4-f9f1f4529dc0", appKey);
UserAssertion assertion = new UserAssertion(_accessToken, "urn:ietf:params:oauth:grant-type:jwt-bearer", userName);
AuthResult = authContext.AcquireToken("https://outlook.office365.com", clientCred, assertion);
你可以分享你用来获取访问令牌的代码吗? –
我添加了一些我上面提到的原始问题的代码。这是你寻找的东西吗? –